718bd7efbc0d959d0b9050c34be2fd639a1f74b6..62dbd8169d8cad03e7a06f9b53b0a1928caf732f
2025-03-06 liusheng
代码提交
62dbd8 对比 | 目录
2025-03-06 liusheng
代码提交
d9a919 对比 | 目录
2025-03-06 liusheng
代码提交
7aa87d 对比 | 目录
2025-03-06 liusheng
代码提交
55aeb4 对比 | 目录
2025-03-05 liusheng
代码提交
bb14a4 对比 | 目录
2025-03-03 liusheng
代码提交
88c506 对比 | 目录
2025-02-27 liusheng
代码提交
e00ef9 对比 | 目录
已添加3个文件
已修改39个文件
1201 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskdiagController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskoperController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-druid.yml 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPasswordService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/ruoyi-generator.iml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/java/controller.java.vm 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalDiagnosisInfo.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalDiseaseInfo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalInHospPatientInfo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalJZInfo.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalWZInfo.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/Icd10.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceOutPath.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ThiedInhospInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskdiagMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskoperMapper.xml 326 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -290,6 +290,7 @@
                        try {
                            String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
                            String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
                            SendMagParam sendMagParam = new SendMagParam();
                            sendMagParam.setType("4");
                            if (type == 1) {
@@ -297,6 +298,7 @@
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
                                serviceOutPath.setParam1(taskId);
                                serviceOutPath.setParam2(patid);
                                serviceOutPath.setParam6(subId);
                                serviceOutPath.setCreateTime(new Date());
                                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
//                                sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
@@ -313,6 +315,7 @@
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
                                serviceOutPath.setParam1(taskId);
                                serviceOutPath.setParam2(patid);
                                serviceOutPath.setParam6(subId);
//                                serviceOutPath.setParam3(URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()));
                                serviceOutPath.setParam3(ivrTask1.getTaskName());
                                serviceOutPath.setCreateTime(new Date());
@@ -330,6 +333,7 @@
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
                                serviceOutPath.setParam1(taskId);
                                serviceOutPath.setParam2(patid);
                                serviceOutPath.setParam6(subId);
//                                serviceOutPath.setParam3(URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()));
                                serviceOutPath.setParam3(ivrTask1.getTaskName());
                                serviceOutPath.setCreateTime(new Date());
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
@@ -168,4 +168,15 @@
        return getDataTable(patMedInhospService.getDocAndPat(patMedInhosp));
    }
//    /**
//     * åŒ»æŠ¤ä¸Žæ‚£è€…关联关系
//     *
//     * @return
//     */
//    @ApiOperation("医护与患者关联关系")
//    @GetMapping("/test")
//    public void test() {
//        patMedInhospService.dealOutHospInfo();
//    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java
@@ -107,6 +107,7 @@
    @ApiOperation("患者问题结果记录(外链)")
    @PostMapping("/saveQuestionAnswer")
    public AjaxResult saveQuestionAnswer(@RequestBody ServiceSubTaskAnswerReq serviceSubTaskAnswerReq) {
        log.error("-----saveQuestionAnswer方法的入参为:{}", serviceSubTaskAnswerReq);
        return toAjax(serviceSubtaskAnswerService.saveQuestionAnswer(serviceSubTaskAnswerReq, 0L));
    }
@@ -121,6 +122,7 @@
    @ApiOperation("患者问题结果记录(小程充外链)")
    @PostMapping("/saveQuestionAnswerXCH")
    public AjaxResult saveQuestionAnswerXCH(@RequestBody ServiceSubTaskAnswerReq serviceSubTaskAnswerReq) {
        log.error("-------saveQuestionAnswerXCH的入参的值为:{}", serviceSubTaskAnswerReq);
        return toAjax(serviceSubtaskAnswerService.saveQuestionAnswer(serviceSubTaskAnswerReq, 1L));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
@@ -84,7 +84,6 @@
        if (CollectionUtils.isNotEmpty(serviceTaskVOS)) {
            for (ServiceTaskVO ServiceTaskVO : serviceTaskVOS) {
                if (serviceTask.getAppltype().equals("1") || serviceTask.getAppltype().equals("2")) {
                    ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
                    serviceSubtaskVO.setTaskid(ServiceTaskVO.getTaskid());
                    serviceSubtaskVO.setStartOutHospTime(serviceTask.getStartOutHospTime());
@@ -98,19 +97,7 @@
                        ServiceTaskVO.setYfs(yfs);
                        ServiceTaskVO.setWfs(wfs);
                    }
                } else if (serviceTask.getAppltype().equals("3") || serviceTask.getAppltype().equals("4")) {
                    ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
                    serviceSubtaskVO.setTaskid(ServiceTaskVO.getTaskid());
                    List<ServiceSubtask> ServiceTaskcalls = iServiceTaskCallService.selectServiceSubtaskList(serviceSubtaskVO);
                    if (CollectionUtils.isNotEmpty(ServiceTaskcalls)) {
                        //已发送
                        long yfs = ServiceTaskcalls.stream().filter(serviceTaskcall1 -> serviceTaskcall1.getSendstate() != null && serviceTaskcall1.getSendstate() == 3L).collect(Collectors.toList()).stream().count();
                        //未发送
                        long wfs = ServiceTaskcalls.stream().filter(serviceTaskcall1 -> serviceTaskcall1.getSendstate() != null && serviceTaskcall1.getSendstate() == 2L).collect(Collectors.toList()).stream().count();
                        ServiceTaskVO.setYfs(yfs);
                        ServiceTaskVO.setWfs(wfs);
                    }
                }
            }
            //获取total
            long total = PageUtils.count(new ISelect() {
@@ -118,7 +105,7 @@
                public void doSelect() {
                    serviceTask.setPageNum(null);
                    serviceTask.setPageSize(null);
                    serviceTaskService.selectServiceTaskList(serviceTask);
                    serviceTaskService.selectServiceTaskAndtaskDeptList(serviceTask);
                }
            });
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskdiagController.java
@@ -42,8 +42,8 @@
     */
    @ApiOperation("查询模板科室关联列表")
    //@PreAuthorize("@ss.hasPermi('smartor:taskdiag:list')")
    @GetMapping("/list")
    public TableDataInfo list(ServiceTaskdiag serviceTaskdiag)
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody ServiceTaskdiag serviceTaskdiag)
    {
        startPage();
        List<ServiceTaskdiag> list = serviceTaskdiagService.selectServiceTaskdiagList(serviceTaskdiag);
@@ -105,9 +105,9 @@
    @ApiOperation("删除模板科室关联")
    //@PreAuthorize("@ss.hasPermi('smartor:taskdiag:remove')")
    @Log(title = "模板科室关联", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    @GetMapping("/remove/{id}")
    public AjaxResult remove(@PathVariable Long id)
    {
        return toAjax(serviceTaskdiagService.deleteServiceTaskdiagByIds(ids));
        return toAjax(serviceTaskdiagService.deleteServiceTaskdiagById(id));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskoperController.java
@@ -42,8 +42,8 @@
     */
    @ApiOperation("查询模板科室关联列表")
    //@PreAuthorize("@ss.hasPermi('smartor:taskoper:list')")
    @GetMapping("/list")
    public TableDataInfo list(ServiceTaskoper serviceTaskoper)
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody ServiceTaskoper serviceTaskoper)
    {
        startPage();
        List<ServiceTaskoper> list = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper);
@@ -105,9 +105,9 @@
    @ApiOperation("删除模板科室关联")
    //@PreAuthorize("@ss.hasPermi('smartor:taskoper:remove')")
    @Log(title = "模板科室关联", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    @GetMapping("/remove/{id}")
    public AjaxResult remove(@PathVariable Long id)
    {
        return toAjax(serviceTaskoperService.deleteServiceTaskoperByIds(ids));
        return toAjax(serviceTaskoperService.deleteServiceTaskoperById(id));
    }
}
ruoyi-admin/src/main/resources/application-druid.yml
@@ -13,22 +13,23 @@
        #        å…¬å¸
        #        url: jdbc:mysql://192.168.2.9:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        #        ä¸½æ°´
#        url: jdbc:mysql://127.0.0.1:3308/smartor-lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#        username: smartor
#        password: Smartor.2023
#        driverClassName: com.mysql.cj.jdbc.Driver
        # æ–°åŽ
#        url: jdbc:mysql://192.168.191.181:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#        username: smartor
#        password: Smartor.2023
#        driverClassName: com.mysql.cj.jdbc.Driver
        #        å…¬å¸äº‘
        url: jdbc:mysql://116.62.18.175:6002/smartor_lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: hxsoft
        password: Hxerp2000
        #        url: jdbc:mysql://127.0.0.1:3308/smartor-lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        #        username: smartor
        #        password: Smartor.2023
        #        driverClassName: com.mysql.cj.jdbc.Driver
        #        #        # æ–°åŽ
        url: jdbc:mysql://192.168.191.181:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: smartor
        password: Smartor.2023
        driverClassName: com.mysql.cj.jdbc.Driver
        #        #  å…¬å¸äº‘
      #        url: jdbc:mysql://116.62.18.175:6002/smartor_lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
      #        username: hxsoft
      #        password: Hxerp2000
      #        driverClassName: com.mysql.cj.jdbc.Driver
      # ä»Žåº“数据源
      slave:
      # ä»Žæ•°æ®æºå¼€å…³/默认关闭(公司)
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
@@ -72,13 +72,7 @@
     * @return ä¿®æ”¹åŽçš„ SQL
     */
    private String modifySqlWithorgidId(String originalSql, String orgid) {
        if (originalSql.contains("insert into")
                || originalSql.contains("INSERT INTO")
                || originalSql.contains("from sys_menu")
                || originalSql.contains("update sys_menu")
                || originalSql.contains("information_schema.tables")
                || originalSql.contains("information_schema.columns")
                || originalSql.contains("gen_table")) {
        if (originalSql.contains("insert into") || originalSql.contains("INSERT INTO") || originalSql.contains("from sys_menu") || originalSql.contains("update sys_menu") || originalSql.contains("information_schema.tables") || originalSql.contains("information_schema.columns") || originalSql.contains("gen_table")) {
            return originalSql;
        }
        // æå– orgid çš„ WHERE å­å¥
@@ -106,6 +100,18 @@
        // ä¿®æ”¹ SQL
        if (originalSql.toUpperCase().contains("WHERE")) {
            // åœ¨å·²æœ‰ WHERE åŽæ·»åŠ  orgid æ¡ä»¶
            if (originalSql.toUpperCase().contains("(SELECT")) {
                int i = originalSql.toUpperCase().lastIndexOf("WHERE");
                if (i != -1) { // ç¡®ä¿æ‰¾åˆ°äº†åŒ¹é…é¡¹
                    // åˆ†å‰²å­—符串
                    String before = originalSql.substring(0, i);
                    String after = originalSql.substring(i + "WHERE".length());
                    // é‡æ–°ç»„合字符串
                    String newString = before + "WHERE " + whereClause + " AND " + after;
                    return newString;
                }
            }
            return originalSql.replaceFirst("(?i)WHERE", "WHERE " + whereClause + " AND ");
        } else {
            // å¦‚果没有 WHERE,检查是否有 ORDER BY æˆ– LIMIT
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPasswordService.java
@@ -1,6 +1,7 @@
package com.ruoyi.framework.web.service;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.Authentication;
@@ -19,12 +20,11 @@
/**
 * ç™»å½•密码方法
 *
 *
 * @author ruoyi
 */
@Component
public class SysPasswordService
{
public class SysPasswordService {
    @Autowired
    private RedisCache redisCache;
@@ -36,58 +36,46 @@
    /**
     * ç™»å½•账户密码错误次数缓存键名
     *
     *
     * @param username ç”¨æˆ·å
     * @return ç¼“存键key
     */
    private String getCacheKey(String username)
    {
    private String getCacheKey(String username) {
        return CacheConstants.PWD_ERR_CNT_KEY + username;
    }
    public void validate(SysUser user)
    {
    public void validate(SysUser user) {
        Authentication usernamePasswordAuthenticationToken = AuthenticationContextHolder.getContext();
        String username = usernamePasswordAuthenticationToken.getName();
        String password = usernamePasswordAuthenticationToken.getCredentials().toString();
        Integer retryCount = redisCache.getCacheObject(getCacheKey(username));
        if (retryCount == null)
        {
        if (retryCount == null) {
            retryCount = 0;
        }
        if (retryCount >= Integer.valueOf(maxRetryCount).intValue())
        {
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL,
                    MessageUtils.message("user.password.retry.limit.exceed", maxRetryCount, lockTime)));
        if (retryCount >= Integer.valueOf(maxRetryCount).intValue()) {
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.retry.limit.exceed", maxRetryCount, lockTime)));
            throw new UserPasswordRetryLimitExceedException(maxRetryCount, lockTime);
        }
        if (!matches(user, password))
        {
        if (!matches(user, password)) {
            retryCount = retryCount + 1;
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL,
                    MessageUtils.message("user.password.retry.limit.count", retryCount)));
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.retry.limit.count", retryCount)));
            redisCache.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES);
            throw new UserPasswordNotMatchException();
        }
        else
        {
        } else {
            clearLoginRecordCache(username);
        }
    }
    public boolean matches(SysUser user, String rawPassword)
    {
    public boolean matches(SysUser user, String rawPassword) {
        return SecurityUtils.matchesPassword(rawPassword, user.getPassword());
    }
    public void clearLoginRecordCache(String loginName)
    {
        if (redisCache.hasKey(getCacheKey(loginName)))
        {
    public void clearLoginRecordCache(String loginName) {
        if (redisCache.hasKey(getCacheKey(loginName))) {
            redisCache.deleteObject(getCacheKey(loginName));
        }
    }
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
@@ -37,7 +37,7 @@
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
    {
        String[] split = username.split("&");
        SysUser user = userService.selectUserByUserName(split[0]);
        SysUser user = userService.selectUserByUserName2(username);
        if (StringUtils.isNull(user))
        {
            log.info("登录用户:{} ä¸å­˜åœ¨.", username);
ruoyi-generator/ruoyi-generator.iml
@@ -98,6 +98,7 @@
    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.36" level="project" />
    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.9" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.11.0" level="project" />
    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
@@ -154,10 +155,9 @@
    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.3.20" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.15" level="project" />
    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.13" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.41" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-test:5.3.20" level="project" />
  </component>
</module>
</module>
ruoyi-generator/src/main/resources/vm/java/controller.java.vm
@@ -45,9 +45,9 @@
     */
    @ApiOperation("查询${functionName}列表")
    //@PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')")
    @GetMapping("/list")
    @PostMapping("/list")
#if($table.crud || $table.sub)
    public TableDataInfo list(${ClassName} ${className})
    public TableDataInfo list(@RequestBody ${ClassName} ${className})
    {
        startPage();
        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm
@@ -32,6 +32,7 @@
            resultMap="${ClassName}Result">
        <include refid="select${ClassName}Vo"/>
        <where>
            del_flag=0
            #foreach($column in $columns)
                #set($queryType=$column.queryType)
                #set($javaField=$column.javaField)
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -22,6 +22,7 @@
import com.smartor.mapper.ServiceTaskMapper;
import com.smartor.mapper.SysUserImportMapper;
import com.smartor.service.*;
import com.sun.org.apache.bcel.internal.generic.NEW;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -69,6 +70,9 @@
    @Autowired
    private IPatMedInhospService iPatMedInhospService;
    @Autowired
    private IPatMedOperationService iPatMedOperationService;
    @Autowired
    private IServiceSubtaskService iServiceSubtaskService;
@@ -243,7 +247,7 @@
     * å¤„理手术信息,进入子任务表
     */
    public void dealOperationInfo() {
        iPatMedInhospService.dealOutHospInfo();
        iPatMedOperationService.dealOperationInfo();
    }
    /**
@@ -366,7 +370,8 @@
                    //纸质
                } else if (descByCode.equals("微信小程序")) {
                    //微信小程序
                    if (ivrTask1.getPatCycle() == 1) {
                    log.error("ivrTask1的值为:{}", ivrTask1);
                    if (ObjectUtils.isNotEmpty(ivrTask1) && ivrTask1.getPatCycle() == 1) {
                        //说明该任务的患者是循环执行的
                        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
                        serviceSubtaskVO.setTaskid(ivrTask1.getTaskid());
@@ -386,9 +391,22 @@
                            //将子任务ID删除 ã€sendstate改成3
                            serviceSubtask.setSendstate(3L);
                            serviceSubtask.setId(null);
                            serviceSubtask.setFinishtime(null);
                            serviceSubtask.setCreateTime(new Date());
                            serviceSubtask.setUpdateTime(new Date());
                            serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                            //处理重复新增问题,先查一下今天是不是有新增过,新增过就不新增了
                            ServiceSubtaskVO ssvo = new ServiceSubtaskVO();
                            LocalDate today = LocalDate.now();
                            LocalTime startOfDay = LocalTime.of(0, 0, 0);
                            LocalTime endOfDay = LocalTime.of(23, 59, 59);
                            Date startOfDayDate = Date.from(today.atTime(startOfDay).atZone(ZoneId.systemDefault()).toInstant());
                            Date endOfDayDate = Date.from(today.atTime(endOfDay).atZone(ZoneId.systemDefault()).toInstant());
                            ssvo.setCreateStartTime(startOfDayDate);
                            ssvo.setCreateEndTime(endOfDayDate);
                            ssvo.setCreateBy(serviceSubtask.getCreateBy());
                            List<ServiceSubtask> serviceSubtaskListByCreateTime = serviceSubtaskMapper.selectServiceSubtaskListByCreateTime(ssvo);
                            if (CollectionUtils.isEmpty(serviceSubtaskListByCreateTime))
                                serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                        }
                    }
                } else if (descByCode.equals("短信")) {
@@ -411,12 +429,14 @@
                                    continue;
                                }
                                String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
                                String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
                                SendMagParam sendMagParam = new SendMagParam();
                                sendMagParam.setType("4");
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
                                serviceOutPath.setParam1(taskId);
                                serviceOutPath.setParam2(patid);
                                serviceOutPath.setParam3(ivrTask1.getTaskName());
                                serviceOutPath.setParam6(subId);
                                serviceOutPath.setCreateTime(new Date());
                                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
                                String format = String.format("%03X", serviceOutPath.getId());
@@ -620,7 +640,7 @@
                    patArchive.setSex(thiedInhospInfo.getPatiRecordGender().equals("男") ? 1L : 2L);
                    patArchive.setNation(thiedInhospInfo.getPatiNation());
                    patArchive.setNativePlace(thiedInhospInfo.getPatiNationality());
                    patArchive.setPlaceOfResidence(thiedInhospInfo.getPatiHomeAddr());
                    patArchive.setPlaceOfResidence(StringUtils.isNotEmpty(thiedInhospInfo.getPatiHomeAddr()) ? thiedInhospInfo.getPatiHomeAddr().replace("null", "") : "");
                    try {
                        if (StringUtils.isNotEmpty(thiedInhospInfo.getPatiBirthday()))
                            patArchive.setBirthdate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(thiedInhospInfo.getPatiBirthday()));
@@ -695,6 +715,7 @@
                patMedInhosp.setLeavehospitaldistrictcode(thiedInhospInfo.getCurrWardId());
                patMedInhosp.setLeavehospitaldistrictname(thiedInhospInfo.getCurrWardName());
                patMedInhosp.setLeaveldeptid(thiedInhospInfo.getCurrDeptCode());
                patMedInhosp.setOrgid("1");
                //如果是出院,先通过患者编号和流水号去查一下,患者是否存在,如果存在,则进行修改
                PatMedInhosp inhosp = new PatMedInhosp();
                inhosp.setPatno(patArchive.getPatientno());
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -44,6 +44,13 @@
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByUserName(String userName);
    /**
     * é€šè¿‡ç”¨æˆ·åæŸ¥è¯¢ç”¨æˆ·
     *
     * @param userName ç”¨æˆ·å
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByUserNameByCondition(@Param("userName") String userName, @Param("orgid") String orgid);
    /**
     * é€šè¿‡ç”¨æˆ·ID查询用户
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -41,6 +41,13 @@
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByUserName(String userName);
    /**
     * é€šè¿‡ç”¨æˆ·åæŸ¥è¯¢ç”¨æˆ·
     *
     * @param userName ç”¨æˆ·å
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByUserName2(String userName);
    /**
     * é€šè¿‡ç”¨æˆ·ID查询用户
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -157,6 +157,96 @@
        return sysUser;
    }
    @Override
    public SysUser selectUserByUserName2(String userName) {
        String[] split = userName.split("&");
        SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1]);
        List<SysDept> sysDepts = null;
        if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
            SysDept dept = new SysDept();
            dept.setOrgid(split[1]);
            sysDepts = sysDeptMapper.selectDeptList(dept);
        } else {
            sysDepts = sysUserDeptMapper.selectDeptListByUserId(sysUser.getUserId());
        }
        List<Long> deptIds = new ArrayList<>();
        for (SysDept sysDept : sysDepts) {
            deptIds.add(sysDept.getDeptId());
        }
        SysUserDept sysUserDept = new SysUserDept();
        sysUserDept.setUserId(sysUser.getUserId());
        sysUserDept.setDeptType(sysUser.getSearchscope());
        List<SysUserDept> sysUserDeptKSs = null;
        List<SysUserDept> sysUserDeptBQs = null;
        if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) {
            if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
                sysUserDept.setUserId(null);
            }
            sysUserDept.setDeptType("1");
            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
            sysUserDept.setDeptType("2");
            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
            //如果是admin,需要对sysUserDeptBQs,sysUserDeptBQs去重
            if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
                List<SysUserDept> distinctUserDepts = new ArrayList<>();
                Set<String> uniqueDeptCodes = new HashSet<>();
                for (SysUserDept userDept : sysUserDeptKSs) {
                    String deptCode = userDept.getDeptCode();
                    if (!uniqueDeptCodes.contains(deptCode)) {
                        distinctUserDepts.add(userDept);
                        uniqueDeptCodes.add(deptCode);
                    }
                }
                List<SysUserDept> distinctUserBQs = new ArrayList<>();
                Set<String> uniqueBQCodes = new HashSet<>();
                for (SysUserDept userDept : sysUserDeptBQs) {
                    String deptCode = userDept.getDeptCode();
                    if (!uniqueBQCodes.contains(deptCode)) {
                        distinctUserBQs.add(userDept);
                        uniqueBQCodes.add(deptCode);
                    }
                }
                sysUserDeptKSs = distinctUserDepts;
                sysUserDeptBQs = distinctUserBQs;
            }
        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) {
            sysUserDept.setDeptType("1");
            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) {
            sysUserDept.setDeptType("2");
            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
        }
        sysUser.setDepts(deptIds);
        if (!CollectionUtils.isEmpty(sysUserDeptBQs)) {
            List<Map<String, Object>> list = new ArrayList<>();
            for (SysUserDept sud : sysUserDeptBQs) {
                Map<String, Object> map = new HashMap<>();
                map.put("districtCode", "");
                if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("districtCode", sud.getDeptCode());
                map.put("districtName", "");
                if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("districtName", sud.getDeptName());
                list.add(map);
            }
            sysUser.setBelongWards(list);
        }
        if (!CollectionUtils.isEmpty(sysUserDeptKSs)) {
            List<Map<String, Object>> list = new ArrayList<>();
            for (SysUserDept sud : sysUserDeptKSs) {
                Map<String, Object> map = new HashMap<>();
                map.put("deptCode", "");
                if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("deptCode", sud.getDeptCode());
                map.put("deptName", "");
                if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName());
                list.add(map);
            }
            sysUser.setBelongDepts(list);
        }
        return sysUser;
    }
    /**
     * é€šè¿‡ç”¨æˆ·ID查询用户
     *
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -107,7 +107,7 @@
               d.email,
               d.status,
               d.his_dept_id,
               d.his_parent_id
               d.his_parent_id,
               (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
        from sys_dept d
        where d.dept_id = #{deptId}
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -225,6 +225,19 @@
        where u.user_name = #{userName} and u.del_flag = '0'
    </select>
    <select id="selectUserByUserNameByCondition" parameterType="String" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        <where>
            u.del_flag = '0'
            <if test="userName != null and userName != ''">
                AND u.user_name = #{userName}
            </if>
            <if test="orgid != null and orgid != ''">
                AND u.orgid = #{orgid}
            </if>
        </where>
    </select>
    <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.user_id = #{userId}
smartor/src/main/java/com/smartor/domain/ExternalDiagnosisInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.smartor.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author æŽ¥æ”¶ç¬¬ä¸‰æ–¹æ‚£è€…诊断信息
 * @date 2024-12-13
 */
@Data
@ApiModel(value = "ExternalInHospPatientInfo", description = "接收第三方患者诊断信息")
public class ExternalDiagnosisInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "诊断类别代码")
    private String ZhenDuanLBDM;
    @ApiModelProperty(value = "诊断类别名称")
    private String ZhenDuanLBMC;
    @ApiModelProperty(value = "中医诊断标志")
    private String ZhongYiZDBZ;
    @ApiModelProperty(value = "中医症侯 ID")
    private String ZhongYiZHID;
    @ApiModelProperty(value = "中医症侯名称")
    private String ZhongYiZHMC;
    @ApiModelProperty(value = "诊断医生 ID")
    private String ZhenDuanYSID;
    @ApiModelProperty(value = "诊断医生姓名")
    private String ZhenDuanYSXM;
    @ApiModelProperty(value = "诊断时间")
    private Date ZhenDuanSJ;
    @ApiModelProperty(value = "发病日期")
    private Date FaBingRQ;
    @ApiModelProperty(value = "诊断 ID")
    private String ZhenDuanID;
    @ApiModelProperty(value = "诊断名称")
    private String ZhenDuanMC;
}
smartor/src/main/java/com/smartor/domain/ExternalDiseaseInfo.java
@@ -51,10 +51,10 @@
    private String FUJIBMC;
    @ApiModelProperty(value = "ICD9")
    private String ICD9;
    private String IcD9;
    @ApiModelProperty(value = "ICD9")
    private String ICD10;
    @ApiModelProperty(value = "IcD10")
    private String IcD10;
    @ApiModelProperty(value = "疾病分类代码")
    private String JiBingFLDM;
smartor/src/main/java/com/smartor/domain/ExternalInHospPatientInfo.java
@@ -114,6 +114,9 @@
    @ApiModelProperty(value = "联系电话")
    private String LianXiDH;
    @ApiModelProperty(value = "联系人电话")
    private String LianXiRDH;
    @ApiModelProperty(value = "单位电话")
    private String DanWeiDH;
smartor/src/main/java/com/smartor/domain/ExternalJZInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.smartor.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author æŽ¥æ”¶ç¬¬ä¸‰æ–¹æ‚£è€…就诊信息
 * @date 2024-12-13
 */
@Data
@ApiModel(value = "ExternalInHospPatientInfo", description = "接收第三方患者诊断信息")
public class ExternalJZInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "就诊科室 ID")
    private String JiuZhenKSID;
    @ApiModelProperty(value = "就诊科室名称")
    private String JiuZhenKSMC;
    @ApiModelProperty(value = "就诊医生 ID")
    private String JiuZhenYSID;
    @ApiModelProperty(value = "就诊医生名称")
    private String JiuZhenYSMC;
    @ApiModelProperty(value = "就诊日期")
    private Date JiuZhenRQ;
    @ApiModelProperty(value = "患者去向代码")
    private String HuanZheQXDM;
    @ApiModelProperty(value = "患者去向名称")
    private String HuanZheQXMC;
}
smartor/src/main/java/com/smartor/domain/ExternalWZInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.smartor.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author æŽ¥æ”¶ç¬¬ä¸‰æ–¹æ‚£è€…问诊信息
 * @date 2024-12-13
 */
@Data
@ApiModel(value = "ExternalWZInfo", description = "接收第三方患者问诊信息")
public class ExternalWZInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "问诊类型代码")
    private String WenZhenLXDM;
    @ApiModelProperty(value = "问诊类型名称")
    private String WenZhenLXMC;
    @ApiModelProperty(value = "内容")
    private String NeiRong;
    @ApiModelProperty(value = "问诊时间")
    private Date WenZhenSJ;
    @ApiModelProperty(value = "问诊医生ID")
    private Date WenZhenYSID;
    @ApiModelProperty(value = "问诊医生姓名")
    private String WenZhenYSXM;
    @ApiModelProperty(value = "问诊科室ID")
    private String WenZhenKSID;
    @ApiModelProperty(value = "问诊科室名称")
    private String WenZhenKSMC;
}
smartor/src/main/java/com/smartor/domain/Icd10.java
@@ -33,6 +33,13 @@
    private String icdcode;
    /**
     * HIS的icd10id
     */
    @ApiModelProperty("HIS的icd10id")
    @Excel(name = "HIS的icd10id")
    private String hisIcdid;
    /**
     * icd10名称
     */
    @ApiModelProperty("icd10名称")
smartor/src/main/java/com/smartor/domain/ServiceOutPath.java
@@ -38,6 +38,13 @@
    private String param2;
    /**
     * å­ä»»åŠ¡ID
     */
    @ApiModelProperty("子任务ID")
    private String param6;
    /**
     * task_name
     */
    @ApiModelProperty("task_name")
smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
@@ -619,5 +619,22 @@
    @ApiModelProperty(value = "结束出院日期")
    private Date endOutHospTime;
    /**
     * ç§‘室与病区的查询是or还是and:   1:and(默认)     2:or
     */
    @ApiModelProperty(value = "科室与病区的查询是or还是and:   1:and(默认)     2:or  ")
    private String deptOrDistrict = "1";
    /**
     * åˆ›å»ºå¼€å§‹æ—¶é—´
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createStartTime;
    /**
     * åˆ›å»ºç»“束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createEndTime;
}
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -40,6 +40,13 @@
    private Long taskid;
    /**
     * å‘送天数
     */
    @Excel(name = "发送天数")
    @ApiModelProperty(value = "发送天数")
    private Long sendDay;
    /**
     *
     */
    @Excel(name = "  ")
smartor/src/main/java/com/smartor/domain/ThiedInhospInfo.java
@@ -406,11 +406,13 @@
    @ApiModelProperty("联系电话")
    @Excel(name = "联系电话")
    private String companyTelNum;
    /**
     * æ•°æ®ç±»åž‹
     */
    @ApiModelProperty("出生日期")
    @Excel(name = "出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String patiBirthday;
    /**
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -33,6 +33,8 @@
     */
    public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskVO serviceSubtaskVO);
    public List<ServiceSubtask> selectServiceSubtaskListByCreateTime(ServiceSubtaskVO serviceSubtaskVO);
    /**
     * æ–°å¢žå•一任务(随访)
     *
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -215,6 +215,12 @@
            List<ServiceCheck> serviceChecks = serviceCheckMapper.selectServiceCheckList(serviceCheck);
            //获取患者信息
            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
            if (Objects.isNull(patArchive)) {
                patMedInhosp1.setCheckFlag("2");
                patMedInhosp1.setLongTaskReason("患者基本信息为空");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                continue;
            }
            try {
                if (CollectionUtils.isEmpty(serviceChecks) || serviceChecks != null && serviceChecks.get(0).getCheckVisitFlag() == 1 || serviceChecks != null && serviceChecks.get(0).getCheckVisitFlag() == 3) {
                    //根据患者所在科室,获取该科室的长期任务
@@ -395,6 +401,8 @@
                        i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                    }
                }
            } else {
                i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
            }
        } else {
            i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -50,6 +50,8 @@
    private PatMedOperationItemMapper patMedOperationItemMapper;
    @Autowired
    private Icd10Mapper icd10Mapper;
    @Autowired
    private PatMedOuthospMapper patMedOuthospMapper;
    @Value("${defaultPwd}")
    private String defaultPwd;
@@ -263,7 +265,41 @@
        log.error("ServiceExternalServiceImpl---addOutHospInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = (Map<String, Object>) yeWuXX.get("BingRenXX");
        List<HashMap<String, Object>> epai = (List<HashMap<String, Object>>) yeWuXX.get("DiZhiXXList");
        List<HashMap<String, Object>> epli = (List<HashMap<String, Object>>) yeWuXX.get("LianXiRList");
        ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
        ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo = null;
        ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo = null;
        List<ExternalInHospPatientAddrInfo> epai2 = epai.stream().map(map -> {
            ExternalInHospPatientAddrInfo info = new ExternalInHospPatientAddrInfo();
            info.setDiZhiLX((String) map.get("DiZhiLX")); // å‡è®¾å­—段类型是 Integer
            info.setDiZhiXX((String) map.get("DiZhiXX"));
            info.setShengFenDM((String) map.get("ShengFenDM"));
            info.setShengFenMC((String) map.get("ShengFenMC"));
            info.setShiDiQDM((String) map.get("ShiDiQDM"));
            info.setShiDiQMC((String) map.get("ShiDiQMC"));
            info.setXianQuDM((String) map.get("XianQuDM"));
            info.setXianQuMC((String) map.get("XianQuMC"));
            info.setXiangZhenDM((String) map.get("XiangZhenDM"));
            info.setXiangZhenMC((String) map.get("XiangZhenMC"));
            info.setCunJiDM((String) map.get("CunJiDM"));
            info.setQiTaXX((String) map.get("QiTaXX"));
            info.setYouBian((String) map.get("YouBian"));
            return info;
        }).collect(Collectors.toList());
        List<ExternalInHospPatientLiaisonInfo> epli2 = epli.stream().map(map -> {
            ExternalInHospPatientLiaisonInfo info = new ExternalInHospPatientLiaisonInfo();
            info.setLianXiRXM((String) map.get("LianXiRXM"));
            info.setLianXiRDH((String) map.get("LianXiRDH"));
            info.setGuanXiDM((String) map.get("GuanXiDM"));
            info.setGuanXiMC((String) map.get("GuanXiMC"));
            return info;
        }).collect(Collectors.toList());
        if (CollectionUtils.isNotEmpty(epai)) externalInHospPatientAddrInfo = epai2.get(0);
        if (CollectionUtils.isNotEmpty(epli)) externalInHospPatientLiaisonInfo = epli2.get(0);
        //新增患者基本信息新增或修改
        addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo);
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setInhospno(externalInHospPatientInfo.getZhuYuanHao());
@@ -295,7 +331,7 @@
            }).collect(Collectors.toList());
            patMedInhosp1.setLeaveicd10code(StringUtils.isNotEmpty(patMedInhosp1.getLeaveicd10code()) ? patMedInhosp1.getLeaveicd10code() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanID() : hospPatientDiagnoseInfos2.get(0).getZhenDuanID());
            patMedInhosp1.setLeavediagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
            patMedInhosp1.setInhospstate("1");
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
@@ -326,24 +362,89 @@
    @Override
    public Boolean addFinshJZInfo(Map dataMap) {
        //这个先等等
        log.error("ServiceExternalServiceImpl---addFinshJZInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = (Map<String, Object>) yeWuXX.get("BingRenXX");
        Map<String, Object> JiuZhenXX = (Map<String, Object>) yeWuXX.get("JiuZhenXX");
        List<HashMap<String, Object>> ZhenDuanList = (List<HashMap<String, Object>>) yeWuXX.get("ZhenDuanList");
        List<HashMap<String, Object>> externalWZInfos = (List<HashMap<String, Object>>) yeWuXX.get("WenZhenList");
        ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
        ExternalJZInfo externalJZInfo = BeanUtil.mapToBean(JiuZhenXX, ExternalJZInfo.class, true);
        List<ExternalDiagnosisInfo> externalDiagnosisInfoList = ZhenDuanList.stream().map(map -> {
            ExternalDiagnosisInfo info = new ExternalDiagnosisInfo();
            info.setZhenDuanYSID((String) map.get("ZhenDuanYSID"));
            info.setZhenDuanYSXM((String) map.get("ZhenDuanYSXM"));
            info.setZhenDuanID((String) map.get("ZhenDuanID"));
            info.setZhenDuanMC((String) map.get("ZhenDuanMC"));
            info.setZhenDuanLBDM((String) map.get("ZhenDuanLBDM"));
            info.setZhenDuanLBMC((String) map.get("ZhenDuanLBMC"));
            return info;
        }).collect(Collectors.toList());
        return null;
        List<ExternalWZInfo> ExternalWZInfoList = externalWZInfos.stream().map(map -> {
            ExternalWZInfo info = new ExternalWZInfo();
            info.setWenZhenLXMC((String) map.get("WenZhenLXMC"));
            info.setNeiRong((String) map.get("NeiRong"));
            return info;
        }).collect(Collectors.toList());
        PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null);
        PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
        patMedOuthosp.setOuthospno(externalInHospPatientInfo.getBingAnHao());
        patMedOuthosp.setSerialnum(externalInHospPatientInfo.getBingAnHao());
        patMedOuthosp.setPatid(patArchive.getId());
        patMedOuthosp.setPatname(externalInHospPatientInfo.getXingMing());
        patMedOuthosp.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC());
        patMedOuthosp.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID());
        patMedOuthosp.setDeptname(externalJZInfo.getJiuZhenKSMC());
        patMedOuthosp.setDeptcode(externalJZInfo.getJiuZhenKSID());
        patMedOuthosp.setAdmitdate(externalJZInfo.getJiuZhenRQ());
        Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
        String FaSongJGID = XiaoXiTou.get("FaSongJGID").toString();
        patMedOuthosp.setOrgid(FaSongJGID);
        for (ExternalDiagnosisInfo externalDiagnosisInfo : externalDiagnosisInfoList) {
            if (externalDiagnosisInfo.getZhenDuanLBMC().equals("主诊断")) {
                patMedOuthosp.setDiagname(externalDiagnosisInfo.getZhenDuanMC());
                patMedOuthosp.setIcd10code(externalDiagnosisInfo.getZhenDuanID());
                patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID());
                patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM());
            }
        }
        for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) {
            if (externalWZInfo.getWenZhenLXMC().equals("现病史")) {
                patMedOuthosp.setHpi(externalWZInfo.getNeiRong());
            }
            if (externalWZInfo.getWenZhenLXMC().equals("主诉")) {
                patMedOuthosp.setMainsuit(externalWZInfo.getNeiRong());
            }
        }
        int i = patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp);
        if (i > 0) {
            return true;
        }
        return false;
    }
    @Override
    public Boolean addDiseaseInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addDiseaseInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> JiBing = (Map<String, Object>) yeWuXX.get("JiBing");
        Map<String, Object> JiBing = (Map<String, Object>) yeWuXX.get("JiBingMLXX");
        ExternalDiseaseInfo externalDiseaseInfo = BeanUtil.mapToBean(JiBing, ExternalDiseaseInfo.class, true);
        Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
        String FaSongJGID = XiaoXiTou.get("FaSongJGID").toString();
        Icd10 icd10 = new Icd10();
        icd10.setIcdcode(externalDiseaseInfo.getJiBingID());
        icd10.setIcdcode(externalDiseaseInfo.getIcD10());
        icd10.setHisIcdid(externalDiseaseInfo.getJiBingID());
        icd10.setIcdname(externalDiseaseInfo.getJiBingMC());
        icd10.setGuid(externalDiseaseInfo.getZuZhiJGID());
        icd10.setOrgid(externalDiseaseInfo.getZuZhiJGID());
        icd10.setLastflag(externalDiseaseInfo.getMOJIBZ());
        icd10.setChimedflag("" + externalDiseaseInfo.getZhongYiZDBZ());
        icd10.setOrgid(FaSongJGID);
//        icd10Association.setIcd10AssortName(externalDiseaseInfo.getJiBingFLMC());
//        icd10Association.setChineseMedicineDiagnoseSign(externalDiseaseInfo.getZhongYiZDBZ());
//        icd10Association.setChineseMedicineDiagnoseAssortCode(externalDiseaseInfo.getZhongYiZDFLDM());
@@ -519,8 +620,10 @@
    private PatArchive addPatArchive(ExternalInHospPatientInfo externalInHospPatientInfo, ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo, ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo) {
        PatArchive patArchive = new PatArchive();
        patArchive.setIdcardno(externalInHospPatientInfo.getZhengJianHM());
        patArchive.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
        List<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(patArchive);
        patArchive.setPatientno(externalInHospPatientInfo.getJiuZhenKH());
        patArchive.setBirthdate(externalInHospPatientInfo.getChuShengRQ());
        patArchive.setPatidHis(externalInHospPatientInfo.getBingRenID());
        patArchive.setSourcefrom(1);
        patArchive.setPattype("2");
@@ -530,26 +633,35 @@
        patArchive.setNation(externalInHospPatientInfo.getMinZuMC());
        patArchive.setNativePlace(externalInHospPatientInfo.getGuoJiMC());
        if (ObjectUtils.isNotEmpty(externalInHospPatientAddrInfo)) {
            patArchive.setPlaceOfResidence(externalInHospPatientAddrInfo.getShengFenMC() + externalInHospPatientAddrInfo.getShiDiQMC() + externalInHospPatientAddrInfo.getXianQuMC() + externalInHospPatientAddrInfo.getXiangZhenMC() + externalInHospPatientAddrInfo.getCunJiMC() + externalInHospPatientAddrInfo.getQiTaXX());
            patArchive.setBirthplace(externalInHospPatientAddrInfo.getShengFenMC() + externalInHospPatientAddrInfo.getShiDiQMC() + externalInHospPatientAddrInfo.getXianQuMC() + externalInHospPatientAddrInfo.getXiangZhenMC() + externalInHospPatientAddrInfo.getCunJiMC() + externalInHospPatientAddrInfo.getQiTaXX());
            String por = null;
            if (StringUtils.isNotEmpty(externalInHospPatientAddrInfo.getDiZhiXX())) {
                por = externalInHospPatientAddrInfo.getDiZhiXX();
            } else {
                por = externalInHospPatientAddrInfo.getShengFenMC() + externalInHospPatientAddrInfo.getShiDiQMC() + externalInHospPatientAddrInfo.getXianQuMC() + externalInHospPatientAddrInfo.getXiangZhenMC() + externalInHospPatientAddrInfo.getCunJiMC() + externalInHospPatientAddrInfo.getQiTaXX();
            }
            patArchive.setPlaceOfResidence(por.replace("null", ""));
            patArchive.setBirthplace(por.replace("null", ""));
        }
        patArchive.setBirthdate(externalInHospPatientInfo.getChuShengRQ());
        patArchive.setAge(externalInHospPatientInfo.getNianLing());
        patArchive.setAgeUnit(externalInHospPatientInfo.getNianLingDW());
        patArchive.setTelcode(externalInHospPatientInfo.getLianXiDH());
        if (StringUtils.isEmpty(externalInHospPatientInfo.getLianXiDH()))
            patArchive.setTelcode(externalInHospPatientInfo.getLianXiRDH());
        patArchive.setRelativetelcode(externalInHospPatientInfo.getLianXiRDH());
        patArchive.setGuid(externalInHospPatientInfo.getZuZhiJGID());
        patArchive.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
        if (ObjectUtils.isNotEmpty(externalInHospPatientLiaisonInfo))
            patArchive.setRelativetelcode(externalInHospPatientLiaisonInfo.getLianXiRDH());
        patArchive.setInhospno(externalInHospPatientInfo.getZhuYuanHao());
        patArchive.setCreateTime(new Date());
        patArchive.setIdcardtype(externalInHospPatientInfo.getZhengJianLXMC());
        if (CollectionUtils.isNotEmpty(patArchives)) {
            //如果不为空,直接将查询出来的对象返回
            PatArchive patArchive1 = patArchives.get(0);
            String orgid = patArchive1.getOrgid();
            if (StringUtils.isNotEmpty(orgid)) {
                orgid = orgid + "," + externalInHospPatientInfo.getZuZhiJGID();
                patArchive.setOrgid(orgid);
//                orgid = orgid + "," + externalInHospPatientInfo.getZuZhiJGID();
//                patArchive.setOrgid(orgid);
                patArchive.setId(patArchive1.getId());
                patArchiveMapper.updatePatArchive(patArchive);
                return patArchive;
@@ -583,6 +695,8 @@
            patMedInhosp.setLeavehospitaldistrictcode(externalInHospPatientInfo.getDangQianBQID());
            patMedInhosp.setHospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC());
            patMedInhosp.setLeavehospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC());
            patMedInhosp.setTelcode(patArchive.getTelcode());
            patMedInhosp.setDrname("");
        }
        if (ObjectUtils.isNotEmpty(externalInHospPatientDiagnoseInfo)) {
            patMedInhosp.setIcd10code(StringUtils.isNotEmpty(patMedInhosp.getIcd10code()) ? patMedInhosp.getIcd10code() + "," + externalInHospPatientDiagnoseInfo.getZhenDuanID() : externalInHospPatientDiagnoseInfo.getZhenDuanID());
@@ -593,7 +707,7 @@
            patMedInhosp.setPatid(patArchive.getId());
            patMedInhosp.setPatno(patArchive.getPatientno());
            patMedInhosp.setPatname(patArchive.getName());
            patMedInhosp.setDrname("");
            patMedInhosp.setSchemestatus(1L);
            patMedInhosp.setCreateTime(new Date());
        }
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -236,6 +236,8 @@
                        }
                    }
                }
            } else {
                continue;
            }
            //将该key和value从redis中,删除
            redisCache.deleteObject(key);
@@ -246,6 +248,8 @@
            serviceSubtask.setSendstate(6L);
            serviceSubtask.setExcep(serviceSubTaskAnswerReq.getExcep());
            serviceSubtask.setFinishtime(new Date());
            serviceSubtask.setUpdateTime(new Date());
            log.error("将该key和value从redis中,serviceSubtask的值为--------:{}", serviceSubtask);
            if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score));
            serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
        }
@@ -307,7 +311,10 @@
        if (flag == 0L) {
            tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
            pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
            subId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
            //这个是有问题的,先这样,合并代码的时候没有把param6合进来
            if (StringUtils.isNotEmpty(serviceSubTaskCacheReq.getParam6())) {
                subId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
            }
        } else if (flag == 1L) {
            tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
            pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
@@ -342,7 +349,7 @@
        Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom());
        if (ObjectUtils.isNotEmpty(scriptInfoByCondition) && ObjectUtils.isNotEmpty(scriptInfoByCondition.get("script"))) {
            log.error("-----------scriptInfoByCondition的值为:{}",scriptInfoByCondition);
            log.error("-----------scriptInfoByCondition的值为:{}", scriptInfoByCondition);
            if (scriptInfoByCondition.get("type").equals("1")) {
                List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = (List) scriptInfoByCondition.get("script");
                for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOList) {
@@ -360,7 +367,8 @@
                for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOList) {
                    Map<String, String> scriptResult = getScriptResult(serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid(), svyLibTemplateScriptVO.getId());
                    if (ObjectUtils.isNotEmpty(scriptResult)) {
                        svyLibTemplateScriptVO.setScriptResult(scriptResult.get("asrtext"));
                        if (StringUtils.isNotEmpty(scriptResult.get("asrtext")))
                            svyLibTemplateScriptVO.setScriptResult(StringUtils.isNotEmpty(scriptResult.get("asrtext")) ? scriptResult.get("asrtext").replaceAll("^(\"|')(.*)\\1$", "$2") : "");
                        svyLibTemplateScriptVO.setScriptResultId(scriptResult.get("asrtextId"));
                    }
                }
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -399,7 +399,13 @@
                    serviceTaskdiag.setOrgid(serviceTask.getOrgid());
                    serviceTaskdiag.setCreateTime(new Date());
                    log.error("----serviceTaskdiag的值为:{}", serviceTaskdiag);
                    serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
                    if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
                        String[] Icd10codes = serviceTaskVO.getIcd10code().split(",");
                        for (String icd10code : Icd10codes) {
                            serviceTaskdiag.setIcd10code(icd10code);
                            serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
                        }
                    }
                } else if (serviceTaskVO.getAppltype().equals("4")) {
                    ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
                    serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
@@ -407,12 +413,19 @@
                    serviceTaskoper.setTaskId(serviceTask.getTaskid());
                    serviceTaskoper.setTaskName(serviceTask.getTaskName());
                    serviceTaskoper.setLongtask(0L);
                    if (serviceTaskVO.getLongTask() == 1) serviceTaskoper.setLongtask(1L);
                    serviceTaskoper.setGuid(serviceTask.getGuid());
                    serviceTaskoper.setOrgid(serviceTask.getOrgid());
                    serviceTaskoper.setCreateTime(new Date());
                    log.error("----serviceTaskoper的值为:{}", serviceTaskoper);
                    serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
                    if (serviceTaskVO.getLongTask() == 1) serviceTaskoper.setLongtask(1L);
                    if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
                        String[] opcodes = serviceTaskVO.getOpcode().split(",");
                        for (String opcode : opcodes) {
                            serviceTaskoper.setOpcode(opcode);
                            log.error("----serviceTaskoper的值为:{}", serviceTaskoper);
                            serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
                        }
                    }
                } else {
                    ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                    serviceTaskdept.setTaskId(serviceTask.getTaskid());
@@ -503,6 +516,7 @@
                serviceTaskdept.setTaskId(serviceTask.getTaskid());
                serviceTaskdept.setTaskName(serviceTask.getTaskName());
                serviceTaskdept.setLongtask(0L);
                serviceTaskdept.setOrgid(serviceTaskVO.getOrgid());
                if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
                if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
                    String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
@@ -546,42 +560,66 @@
                if (StringUtils.isEmpty(serviceTaskVO.getIcd10code())) {
                    throw new BaseException("疾病编码为空");
                }
                serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code());
                List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagService.selectServiceTaskdiagList(serviceTaskdiag);
//                serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code());
                serviceTaskdiag.setLongtask(1L);
                serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name());
                serviceTaskdiag.setGuid(serviceTask.getGuid());
                serviceTaskdiag.setOrgid(serviceTask.getOrgid());
                serviceTaskdiag.setUpdateTime(new Date());
                log.error("----serviceTaskdiag更新的值为:{}", serviceTaskdiag);
                if (CollectionUtils.isNotEmpty(serviceTaskdiags)) {
                    serviceTaskdiag.setId(serviceTaskdiags.get(0).getId());
                    serviceTaskdiagService.updateServiceTaskdiag(serviceTaskdiag);
                } else {
                    serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
                if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
                    String[] icd10codes = serviceTaskVO.getIcd10code().split(",");
                    for (String icdcode : icd10codes) {
                        //先查询一下是否存在
                        ServiceTaskdiag serviceTaskdiag2 = new ServiceTaskdiag();
                        serviceTaskdiag2.setTaskId(serviceTaskVO.getTaskid());
                        serviceTaskdiag2.setIcd10code(icdcode);
                        List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagService.selectServiceTaskdiagList(serviceTaskdiag2);
                        serviceTaskdiag.setIcd10code(icdcode);
                        log.error("----serviceTaskdiag更新的值为:{}", serviceTaskdiag);
                        if (CollectionUtils.isNotEmpty(serviceTaskdiags)) {
                            serviceTaskdiag.setId(serviceTaskdiags.get(0).getId());
                            serviceTaskdiagService.updateServiceTaskdiag(serviceTaskdiag);
                        } else {
                            serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
                        }
                    }
                }
            } else if (serviceTaskVO.getAppltype().equals("4")) {
                ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
                if (StringUtils.isEmpty(serviceTaskVO.getOpcode())) {
                    throw new BaseException("手术编码为空");
                }
                serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
//                serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
                serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
                serviceTaskoper.setTaskId(serviceTask.getTaskid());
                List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper);
                serviceTaskoper.setTaskName(serviceTask.getTaskName());
                serviceTaskoper.setLongtask(1L);
                serviceTaskoper.setGuid(serviceTask.getGuid());
                serviceTaskoper.setOrgid(serviceTask.getOrgid());
                serviceTaskoper.setCreateTime(new Date());
                log.error("----serviceTaskoper的值为:{}", serviceTaskoper);
                if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
                    serviceTaskoper.setId(serviceTaskopers.get(0).getId());
                    serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
                } else {
                    serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
                if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
                    String[] opcodes = serviceTaskVO.getOpcode().split(",");
                    for (String opcode : opcodes) {
                        //先查询一下是否存在
                        ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
                        serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
                        serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode());
                        List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
                        serviceTaskoper.setOpcode(opcode);
                        log.error("----serviceTaskoper的值为:{}", serviceTaskoper);
                        if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
                            serviceTaskoper.setId(serviceTaskopers.get(0).getId());
                            serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
                        } else {
                            serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
                        }
                    }
                }
            }
            if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
                IvrTaskTemplate ivrTaskTemplate = new IvrTaskTemplate();
@@ -1044,6 +1082,8 @@
                double score = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "SCORE");
                serviceSubtask.setScore(BigDecimal.valueOf(score));
                serviceSubtask.setFinishtime(new Date());
                serviceSubtask.setUpdateTime(new Date());
                log.error("先更新一下分数,电话的serviceSubtask的值为:{}", serviceSubtask);
                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                Map<String, String> map = delRedisValue(null, id.toString());
                if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val"));
@@ -1569,7 +1609,7 @@
            }
        }
        if (existList.size() != 0) redisCache.setCacheListRight("cache-exist", existList);
        log.error("-----------实际拉取的电话数据量:{}", pullTaskVOList.size());
        log.error("-----------实际拉取的电话数据量:{}", CollectionUtils.isNotEmpty(pullTaskVOList) ? pullTaskVOList.size() : null);
        return pullTaskVOList;
    }
@@ -1608,7 +1648,10 @@
                    }
                }
                //如果ivrTaskTemplateScript为空,也就没有往下执行的必要了
                if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) return null;
                if (ObjectUtils.isEmpty(ivrTaskTemplateScript)) {
                    log.error("---------这个ivrTaskTemplate.getId()的问题为空:{}", ivrTaskTemplate.getId());
                    continue;
                }
                //获取通配符匹配过后的问题
                String scrContent = getObject(serviceSubtask, ivrTaskTemplateScript.getIvrtext());
                String kcb = serviceTask.getKcb() + "," + scrContent;
@@ -1948,6 +1991,8 @@
            serviceSubtask.setSendstate(6L);
            serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid()));
            serviceSubtask.setFinishtime(new Date());
            serviceSubtask.setUpdateTime(new Date());
            log.error("电话拨打已完成serviceSubtask的值为:{}", serviceSubtask);
            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
            //下载文件
            ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
@@ -2066,12 +2111,12 @@
                serviceSubtaskStatistic.setYczs(serviceSubtaskStatistic.getYczs() + 1L);
            }
        }
        //随访完成率=已发送/随访数
        if (serviceSubtaskStatistic.getYfsCount() == 0 || CollectionUtils.isEmpty(serviceSubtaskList)) {
        //随访完成率=已完成/应随访量
        if (serviceSubtaskStatistic.getYwcCount() == 0 || CollectionUtils.isEmpty(serviceSubtaskList)) {
            serviceSubtaskStatistic.setSfwcl("0");
        } else {
//            BigDecimal multiply = BigDecimal.valueOf(serviceSubtaskStatistic.getYfsCount()).divide(BigDecimal.valueOf(serviceSubtaskList.size()), 2, BigDecimal.ROUND_HALF_UP);
            BigDecimal multiply = new BigDecimal(serviceSubtaskStatistic.getYfsCount().toString()).divide(new BigDecimal(serviceSubtaskList.size() + ""), 2, BigDecimal.ROUND_HALF_UP);
            BigDecimal multiply = new BigDecimal(serviceSubtaskStatistic.getYwcCount().toString()).divide(new BigDecimal(serviceSubtaskStatistic.getYsfCount().toString()), 2, BigDecimal.ROUND_HALF_UP);
            serviceSubtaskStatistic.setSfwcl(multiply.toString());
        }
@@ -2139,10 +2184,12 @@
        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
        String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key);
        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
        String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
        ServiceOutPath serviceOutPath = new ServiceOutPath();
        serviceOutPath.setParam1(taskId);
        serviceOutPath.setParam2(patid);
        serviceOutPath.setCreateTime(new Date());
        serviceOutPath.setParam6(subId);
        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
        //转成16进制
        String format = String.format("%03X", serviceOutPath.getId());
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import com.smartor.domain.*;
import com.smartor.mapper.*;
@@ -353,7 +354,7 @@
                }
                //替换患者个人信息数据
                log.error("问题id:{},   é—®é¢˜å†…容:{}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent());
                if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) {
                if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
@@ -376,6 +377,8 @@
            serviceSubtask.setPatid(patid);
            serviceSubtask.setResult("完成");
            serviceSubtask.setFinishtime(new Date());
            serviceSubtask.setUpdateTime(new Date());
            log.error("serviceSubtask---xjInfo-的修改数据:{}", serviceSubtask);
            serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
        }
        HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(Long.valueOf(templateId));
smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml
@@ -20,11 +20,13 @@
        <result property="guid" column="guid"/>
        <result property="lastflag" column="lastflag"/>
        <result property="chimedflag" column="chimedflag"/>
        <result property="hisIcdid" column="his_icdid"/>
    </resultMap>
    <sql id="selectIcd10Vo">
        select icdid,
               icdcode,
               his_icdid,
               lastflag,
               chimedflag,
               icdname,
@@ -44,6 +46,7 @@
    <select id="selectIcd10List" parameterType="com.smartor.domain.Icd10" resultMap="Icd10Result">
        <include refid="selectIcd10Vo"/>
        <where>
            del_flag=0
            <if test="icdcode != null  and icdcode != ''">and icdcode = #{icdcode}</if>
            <if test="lastflag != null  and lastflag != ''">and lastflag = #{lastflag}</if>
            <if test="chimedflag != null  and chimedflag != ''">and chimedflag = #{chimedflag}</if>
@@ -53,6 +56,7 @@
            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
            <if test="pid != null ">and pid = #{pid}</if>
            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
            <if test="hisIcdid != null  and hisIcdid != ''">and his_icdid = #{hisIcdid}</if>
        </where>
    </select>
@@ -78,6 +82,7 @@
            <if test="guid != null">guid,</if>
            <if test="lastflag != null  and lastflag != ''">lastflag,</if>
            <if test="chimedflag != null  and chimedflag != ''">chimedflag,</if>
            <if test="hisIcdid != null  and hisIcdid != ''">his_icdid,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="icdcode != null">#{icdcode},</if>
@@ -94,6 +99,7 @@
            <if test="guid != null">#{guid},</if>
            <if test="lastflag != null  and lastflag != ''">#{lastflag},</if>
            <if test="chimedflag != null  and chimedflag != ''">#{chimedflag},</if>
            <if test="hisIcdid != null  and hisIcdid != ''">#{hisIcdid},</if>
        </trim>
    </insert>
@@ -114,6 +120,7 @@
            <if test="guid != null">guid = #{guid},</if>
            <if test="lastflag != null  and lastflag != ''">lastflag = #{lastflag},</if>
            <if test="chimedflag != null  and chimedflag != ''">chimedflag = #{chimedflag},</if>
            <if test="hisIcdid != null  and hisIcdid != ''">his_icdid = #{hisIcdid},</if>
        </trim>
        where icdid = #{icdid}
    </update>
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -59,11 +59,13 @@
        <result property="guid" column="guid"/>
        <result property="operator" column="operator"/>
        <result property="operatorId" column="operator_id"/>
        <result property="remark" column="remark"/>
    </resultMap>
    <sql id="selectPatMedInhospVo">
        select inhospid,
               patname,
               remark,
               guid,
               operator,
               operator_id,
@@ -122,6 +124,7 @@
        a.sex,
        b.guid,
        b.operator,
        b.remark,
        b.operator_id,
        b.inhospid,
        b.nurse_id,
@@ -253,6 +256,7 @@
        b.patname,
        b.operator_id,
        b.operator,
        b.remark,
        b.out_way_id,
        b.out_way_name,
        b.nurse_id,
@@ -403,6 +407,7 @@
            <if test="operator != null ">operator,</if>
            <if test="operatorId != null ">operator_id,</if>
            <if test="inhospno != null ">inhospno,</if>
            <if test="remark != null ">remark,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="serialnum != null">#{serialnum},</if>
@@ -455,6 +460,7 @@
            <if test="operator != null ">#{operator},</if>
            <if test="operatorId != null ">#{operatorId},</if>
            <if test="inhospno != null ">#{inhospno},</if>
            <if test="remark != null ">#{remark},</if>
        </trim>
    </insert>
@@ -510,6 +516,7 @@
            <if test="guid != null ">guid = #{guid},</if>
            <if test="operator != null ">operator = #{operator},</if>
            <if test="operatorId != null ">operator_id = #{operatorId},</if>
            <if test="remark != null ">remark = #{remark},</if>
        </trim>
        where inhospid = #{inhospid}
    </update>
smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
@@ -80,13 +80,11 @@
            </if>
            <if test="param5 != null">param5,
            </if>
            <if test="param6 != null">param6,
            </if>
            <if test="radix != null">radix,
            </if>
            <if test="createTime != null">create_time,
            </if>
            <if test="guid != null">guid,
            </if>
            <if test="orgid != null">orgid,
            </if>
        </trim>
@@ -99,13 +97,11 @@
            </if>
            <if test="param5 != null">#{param5},
            </if>
            <if test="param6 != null">#{param6},
            </if>
            <if test="radix != null">#{radix},
            </if>
            <if test="createTime != null">#{createTime},
            </if>
            <if test="guid != null">#{guid},
            </if>
            <if test="orgid != null">#{orgid},
            </if>
        </trim>
    </insert>
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -198,19 +198,39 @@
            <if test="longSendTime != null">
                AND date_format(long_send_time,'%y%m%d') &lt;= date_format(#{longSendTime},'%y%m%d')
            </if>
            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
                AND leavehospitaldistrictcode IN
                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
                         close=")">
                    #{leavehospitaldistrictcode}
                </foreach>
            <if test="deptOrDistrict==1">
                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
                    AND leavehospitaldistrictcode IN
                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
                             separator=","
                             close=")">
                        #{leavehospitaldistrictcode}
                    </foreach>
                </if>
                <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
                    AND deptcode IN
                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                             close=")">
                        #{leaveldeptcode}
                    </foreach>
                </if>
            </if>
            <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
                AND deptcode IN
                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                         close=")">
                    #{leaveldeptcode}
                </foreach>
            <if test="deptOrDistrict==2">
                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
                    AND leavehospitaldistrictcode IN
                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
                             separator=","
                             close=")">
                        #{leavehospitaldistrictcode}
                    </foreach>
                </if>
                <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
                    OR deptcode IN
                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                             close=")">
                        #{leaveldeptcode}
                    </foreach>
                </if>
            </if>
            <if test="senddate != null ">and senddate = #{senddate}</if>
@@ -260,6 +280,17 @@
        <if test="serviceType != null  and serviceType != ''and serviceType == '2'">order by endtime desc</if>
        <if test="serviceType != null  and serviceType != ''and serviceType == '3'">order by admindate desc</if>
        <!-- order by update_time desc,id desc -->
    </select>
    <select id="selectServiceSubtaskListByCreateTime" parameterType="com.smartor.domain.ServiceSubtaskVO"
            resultMap="ServiceSubtaskResult">
        <include refid="selectServiceSubtaskVo"/>
        <where>
            del_flag=0
            <if test="createStartTime != null  and createEndTime != null">create_time BETWEEN #{createStartTime} AND #{createEndTime}</if>
            <if test="createBy != null ">and create_by = #{createBy}</if>
        </where>
    </select>
    <select id="selectServiceSubtaskById" parameterType="Long" resultMap="ServiceSubtaskResult">
@@ -575,8 +606,10 @@
            <if test="patfrom != null ">patfrom=#{patfrom},</if>
            <if test="taskGuid != null ">taskGuid=#{taskGuid},</if>
        </trim>
        <if test="patid != null ">and patid = #{patid}</if>
        <if test="taskid != null ">and taskid = #{taskid}</if>
        <where>
            <if test="patid != null ">and patid = #{patid}</if>
            <if test="taskid != null ">and taskid = #{taskid}</if>
        </where>
    </update>
    <update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask">
smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
@@ -58,11 +58,13 @@
        <result property="nexttaskid" column="nexttaskid"/>
        <result property="nexttaskname" column="nexttaskname"/>
        <result property="appltype" column="appltype"/>
        <result property="patCycle" column="pat_cycle"/>
    </resultMap>
    <sql id="selectServiceTaskVo">
        select taskid,
               task_name,
               pat_cycle,
               appltype,
               send_day,
               long_task,
@@ -248,18 +250,18 @@
        service_task.orgid from service_task
        <where>
            service_task.del_flag=0
            and taskid in (
            select task_id from service_taskdept
            <where>
                <if test="leaveldeptcodes != null and leaveldeptcodes.size()>0">
                    dept_code in
                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                             close=")">
                        #{leaveldeptcode}
                    </foreach>
                </if>
            </where>
            )
            <!--            and taskid in (-->
            <!--            select task_id from service_taskdept-->
            <!--            <where>-->
            <!--                <if test="leaveldeptcodes != null and leaveldeptcodes.size()>0">-->
            <!--                    dept_code in-->
            <!--                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","-->
            <!--                             close=")">-->
            <!--                        #{leaveldeptcode}-->
            <!--                    </foreach>-->
            <!--                </if>-->
            <!--            </where>-->
            <!--            )-->
            <if test="taskName != null  and taskName != ''">and service_task.task_name like concat('%', #{taskName},
                '%')
            </if>
@@ -385,6 +387,7 @@
            <if test="compensateDate != null  and compensateDate != ''">compensate_date,</if>
            <if test="sendDay != null  ">send_day,</if>
            <if test="appltype != null  ">appltype,</if>
            <if test="patCycle != null  ">pat_cycle,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="taskName != null">#{taskName},</if>
@@ -438,6 +441,7 @@
            <if test="compensateDate != null  and compensateDate != ''">#{compensateDate}</if>
            <if test="sendDay != null  ">#{sendDay},</if>
            <if test="appltype != null  ">#{appltype},</if>
            <if test="patCycle != null  ">#{patCycle},</if>
        </trim>
    </insert>
@@ -494,9 +498,10 @@
            </if>
            <if test="leavehospitaldistrictcode != null  ">leavehospitaldistrictcode = #{leavehospitaldistrictcode},
            </if>
            <if test="compensateDate != null  and compensateDate != ''">compensate_date = #{compensateDate}</if>
            <if test="sendDay != null  ">send_day = #{sendDay}</if>
            <if test="appltype != null  ">appltype = #{appltype}</if>
            <if test="compensateDate != null  and compensateDate != ''">compensate_date = #{compensateDate},</if>
            <if test="sendDay != null  ">send_day = #{sendDay},</if>
            <if test="appltype != null  ">appltype = #{appltype},</if>
            <if test="patCycle != null  ">pat_cycle = #{patCycle},</if>
        </trim>
        where taskid = #{taskid}
    </update>
smartor/src/main/resources/mapper/smartor/ServiceTaskdiagMapper.xml
@@ -45,6 +45,7 @@
            resultMap="ServiceTaskdiagResult">
        <include refid="selectServiceTaskdiagVo"/>
        <where>
            del_flag=0
            <if test="taskId != null ">
                and task_id = #{taskId}
            </if>
smartor/src/main/resources/mapper/smartor/ServiceTaskoperMapper.xml
@@ -5,25 +5,39 @@
<mapper namespace="com.smartor.mapper.ServiceTaskoperMapper">
    <resultMap type="com.smartor.domain.ServiceTaskoper" id="ServiceTaskoperResult">
            <result property="id" column="id"/>
            <result property="taskId" column="task_id"/>
            <result property="longtask" column="longtask"/>
            <result property="taskName" column="task_name"/>
            <result property="serviceType" column="service_type"/>
            <result property="opid" column="opid"/>
            <result property="opcode" column="opcode"/>
            <result property="opdesc" column="opdesc"/>
            <result property="delFlag" column="del_flag"/>
            <result property="createTime" column="create_time"/>
            <result property="updateTime" column="update_time"/>
            <result property="orgid" column="orgid"/>
            <result property="guid" column="guid"/>
            <result property="pguid" column="pguid"/>
            <result property="pid" column="pid"/>
        <result property="id" column="id"/>
        <result property="taskId" column="task_id"/>
        <result property="longtask" column="longtask"/>
        <result property="taskName" column="task_name"/>
        <result property="serviceType" column="service_type"/>
        <result property="opid" column="opid"/>
        <result property="opcode" column="opcode"/>
        <result property="opdesc" column="opdesc"/>
        <result property="delFlag" column="del_flag"/>
        <result property="createTime" column="create_time"/>
        <result property="updateTime" column="update_time"/>
        <result property="orgid" column="orgid"/>
        <result property="guid" column="guid"/>
        <result property="pguid" column="pguid"/>
        <result property="pid" column="pid"/>
    </resultMap>
    <sql id="selectServiceTaskoperVo">
        select id, task_id, longtask, task_name, service_type, opid, opcode, opdesc, del_flag, create_time, update_time, orgid, guid, pguid, pid
        select id,
               task_id,
               longtask,
               task_name,
               service_type,
               opid,
               opcode,
               opdesc,
               del_flag,
               create_time,
               update_time,
               orgid,
               guid,
               pguid,
               pid
        from service_taskoper
    </sql>
@@ -31,171 +45,173 @@
            resultMap="ServiceTaskoperResult">
        <include refid="selectServiceTaskoperVo"/>
        <where>
                        <if test="taskId != null ">
                            and task_id = #{taskId}
                        </if>
                        <if test="longtask != null ">
                            and longtask = #{longtask}
                        </if>
                        <if test="taskName != null  and taskName != ''">
                            and task_name like concat('%', #{taskName}, '%')
                        </if>
                        <if test="serviceType != null  and serviceType != ''">
                            and service_type = #{serviceType}
                        </if>
                        <if test="opid != null ">
                            and opid = #{opid}
                        </if>
                        <if test="opcode != null  and opcode != ''">
                            and opcode = #{opcode}
                        </if>
                        <if test="opdesc != null  and opdesc != ''">
                            and opdesc = #{opdesc}
                        </if>
                        <if test="orgid != null  and orgid != ''">
                            and orgid = #{orgid}
                        </if>
                        <if test="guid != null  and guid != ''">
                            and guid = #{guid}
                        </if>
                        <if test="pguid != null  and pguid != ''">
                            and pguid = #{pguid}
                        </if>
                        <if test="pid != null ">
                            and pid = #{pid}
                        </if>
            del_flag=0
            <if test="taskId != null ">
                and task_id = #{taskId}
            </if>
            <if test="longtask != null ">
                and longtask = #{longtask}
            </if>
            <if test="taskName != null  and taskName != ''">
                and task_name like concat('%', #{taskName}, '%')
            </if>
            <if test="serviceType != null  and serviceType != ''">
                and service_type = #{serviceType}
            </if>
            <if test="opid != null ">
                and opid = #{opid}
            </if>
            <if test="opcode != null  and opcode != ''">
                and opcode = #{opcode}
            </if>
            <if test="opdesc != null  and opdesc != ''">
                and opdesc = #{opdesc}
            </if>
            <if test="orgid != null  and orgid != ''">
                and orgid = #{orgid}
            </if>
            <if test="guid != null  and guid != ''">
                and guid = #{guid}
            </if>
            <if test="pguid != null  and pguid != ''">
                and pguid = #{pguid}
            </if>
            <if test="pid != null ">
                and pid = #{pid}
            </if>
        </where>
    </select>
    <select id="selectServiceTaskoperById" parameterType="Long"
            resultMap="ServiceTaskoperResult">
            <include refid="selectServiceTaskoperVo"/>
            where id = #{id}
        <include refid="selectServiceTaskoperVo"/>
        where id = #{id}
    </select>
    <insert id="insertServiceTaskoper" parameterType="com.smartor.domain.ServiceTaskoper"            useGeneratedKeys="true" keyProperty="id">
    <insert id="insertServiceTaskoper" parameterType="com.smartor.domain.ServiceTaskoper" useGeneratedKeys="true"
            keyProperty="id">
        insert into service_taskoper
        <trim prefix="(" suffix=")" suffixOverrides=",">
                    <if test="taskId != null">task_id,
                    </if>
                    <if test="longtask != null">longtask,
                    </if>
                    <if test="taskName != null">task_name,
                    </if>
                    <if test="serviceType != null">service_type,
                    </if>
                    <if test="opid != null">opid,
                    </if>
                    <if test="opcode != null">opcode,
                    </if>
                    <if test="opdesc != null">opdesc,
                    </if>
                    <if test="delFlag != null">del_flag,
                    </if>
                    <if test="createTime != null">create_time,
                    </if>
                    <if test="updateTime != null">update_time,
                    </if>
                    <if test="orgid != null">orgid,
                    </if>
                    <if test="guid != null">guid,
                    </if>
                    <if test="pguid != null">pguid,
                    </if>
                    <if test="pid != null">pid,
                    </if>
            <if test="taskId != null">task_id,
            </if>
            <if test="longtask != null">longtask,
            </if>
            <if test="taskName != null">task_name,
            </if>
            <if test="serviceType != null">service_type,
            </if>
            <if test="opid != null">opid,
            </if>
            <if test="opcode != null">opcode,
            </if>
            <if test="opdesc != null">opdesc,
            </if>
            <if test="delFlag != null">del_flag,
            </if>
            <if test="createTime != null">create_time,
            </if>
            <if test="updateTime != null">update_time,
            </if>
            <if test="orgid != null">orgid,
            </if>
            <if test="guid != null">guid,
            </if>
            <if test="pguid != null">pguid,
            </if>
            <if test="pid != null">pid,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                    <if test="taskId != null">#{taskId},
                    </if>
                    <if test="longtask != null">#{longtask},
                    </if>
                    <if test="taskName != null">#{taskName},
                    </if>
                    <if test="serviceType != null">#{serviceType},
                    </if>
                    <if test="opid != null">#{opid},
                    </if>
                    <if test="opcode != null">#{opcode},
                    </if>
                    <if test="opdesc != null">#{opdesc},
                    </if>
                    <if test="delFlag != null">#{delFlag},
                    </if>
                    <if test="createTime != null">#{createTime},
                    </if>
                    <if test="updateTime != null">#{updateTime},
                    </if>
                    <if test="orgid != null">#{orgid},
                    </if>
                    <if test="guid != null">#{guid},
                    </if>
                    <if test="pguid != null">#{pguid},
                    </if>
                    <if test="pid != null">#{pid},
                    </if>
            <if test="taskId != null">#{taskId},
            </if>
            <if test="longtask != null">#{longtask},
            </if>
            <if test="taskName != null">#{taskName},
            </if>
            <if test="serviceType != null">#{serviceType},
            </if>
            <if test="opid != null">#{opid},
            </if>
            <if test="opcode != null">#{opcode},
            </if>
            <if test="opdesc != null">#{opdesc},
            </if>
            <if test="delFlag != null">#{delFlag},
            </if>
            <if test="createTime != null">#{createTime},
            </if>
            <if test="updateTime != null">#{updateTime},
            </if>
            <if test="orgid != null">#{orgid},
            </if>
            <if test="guid != null">#{guid},
            </if>
            <if test="pguid != null">#{pguid},
            </if>
            <if test="pid != null">#{pid},
            </if>
        </trim>
    </insert>
    <update id="updateServiceTaskoper" parameterType="com.smartor.domain.ServiceTaskoper">
        update service_taskoper
        <trim prefix="SET" suffixOverrides=",">
                    <if test="taskId != null">task_id =
                        #{taskId},
                    </if>
                    <if test="longtask != null">longtask =
                        #{longtask},
                    </if>
                    <if test="taskName != null">task_name =
                        #{taskName},
                    </if>
                    <if test="serviceType != null">service_type =
                        #{serviceType},
                    </if>
                    <if test="opid != null">opid =
                        #{opid},
                    </if>
                    <if test="opcode != null">opcode =
                        #{opcode},
                    </if>
                    <if test="opdesc != null">opdesc =
                        #{opdesc},
                    </if>
                    <if test="delFlag != null">del_flag =
                        #{delFlag},
                    </if>
                    <if test="createTime != null">create_time =
                        #{createTime},
                    </if>
                    <if test="updateTime != null">update_time =
                        #{updateTime},
                    </if>
                    <if test="orgid != null">orgid =
                        #{orgid},
                    </if>
                    <if test="guid != null">guid =
                        #{guid},
                    </if>
                    <if test="pguid != null">pguid =
                        #{pguid},
                    </if>
                    <if test="pid != null">pid =
                        #{pid},
                    </if>
            <if test="taskId != null">task_id =
                #{taskId},
            </if>
            <if test="longtask != null">longtask =
                #{longtask},
            </if>
            <if test="taskName != null">task_name =
                #{taskName},
            </if>
            <if test="serviceType != null">service_type =
                #{serviceType},
            </if>
            <if test="opid != null">opid =
                #{opid},
            </if>
            <if test="opcode != null">opcode =
                #{opcode},
            </if>
            <if test="opdesc != null">opdesc =
                #{opdesc},
            </if>
            <if test="delFlag != null">del_flag =
                #{delFlag},
            </if>
            <if test="createTime != null">create_time =
                #{createTime},
            </if>
            <if test="updateTime != null">update_time =
                #{updateTime},
            </if>
            <if test="orgid != null">orgid =
                #{orgid},
            </if>
            <if test="guid != null">guid =
                #{guid},
            </if>
            <if test="pguid != null">pguid =
                #{pguid},
            </if>
            <if test="pid != null">pid =
                #{pid},
            </if>
        </trim>
        where id = #{id}
    </update>
                <update id="deleteServiceTaskoperById" parameterType="Long">
    <update id="deleteServiceTaskoperById" parameterType="Long">
        update service_taskoper
        <trim prefix="SET" suffixOverrides=",">
            del_flag =1
        </trim>
        where  id = #{id}
        where id = #{id}
    </update>
                            <update id="deleteServiceTaskoperByIds" parameterType="String">
        update  service_taskoper
    <update id="deleteServiceTaskoperByIds" parameterType="String">
        update service_taskoper
        <trim prefix="SET" suffixOverrides=",">
            del_flag =1
        </trim>
@@ -204,8 +220,6 @@
            #{id}
        </foreach>
    </update>
</mapper>