1.修改一下delete、put请求
2.新增一个万能密码
3.处理一下选项中还把a,b,c,d也带上的情况
已修改29个文件
166 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryTagController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatTaskRelevanceController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatWildcardController.java 4 ●●●● 补丁 | 查看 | 原始文档 | 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/ServiceSubtaskRecordController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptTagController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptWjxController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTagController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionWjxController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateWjxController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskAnswerController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateScriptController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateTargetoptionController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailRatioExport.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
@@ -93,7 +93,7 @@
    }
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @DeleteMapping("/clearCacheName/{cacheName}")
    @GetMapping("/clearCacheName/{cacheName}")
    public AjaxResult clearCacheName(@PathVariable String cacheName)
    {
        Collection<String> cacheKeys = redisTemplate.keys(cacheName + "*");
@@ -102,7 +102,7 @@
    }
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @DeleteMapping("/clearCacheKey/{cacheKey}")
    @GetMapping("/clearCacheKey/{cacheKey}")
    public AjaxResult clearCacheKey(@PathVariable String cacheKey)
    {
        redisTemplate.delete(cacheKey);
@@ -110,7 +110,7 @@
    }
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @DeleteMapping("/clearCacheAll")
    @GetMapping("/clearCacheAll")
    public AjaxResult clearCacheAll()
    {
        Collection<String> cacheKeys = redisTemplate.keys("*");
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
@@ -56,7 +56,7 @@
    //@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
    @Log(title = "登录日志", businessType = BusinessType.DELETE)
    @DeleteMapping("/{infoIds}")
    @GetMapping("/{infoIds}")
    public AjaxResult remove(@PathVariable Long[] infoIds)
    {
        return toAjax(logininforService.deleteLogininforByIds(infoIds));
@@ -64,7 +64,7 @@
    //@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
    @Log(title = "登录日志", businessType = BusinessType.CLEAN)
    @DeleteMapping("/clean")
    @GetMapping("/clean")
    public AjaxResult clean()
    {
        logininforService.cleanLogininfor();
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
@@ -52,7 +52,7 @@
    @Log(title = "操作日志", businessType = BusinessType.DELETE)
    //@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
    @DeleteMapping("/{operIds}")
    @GetMapping("/{operIds}")
    public AjaxResult remove(@PathVariable Long[] operIds)
    {
        return toAjax(operLogService.deleteOperLogByIds(operIds));
@@ -60,7 +60,7 @@
    @Log(title = "操作日志", businessType = BusinessType.CLEAN)
    //@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
    @DeleteMapping("/clean")
    @GetMapping("/clean")
    public AjaxResult clean()
    {
        operLogService.cleanOperLog();
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
@@ -83,7 +83,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')")
    @Log(title = "在线用户", businessType = BusinessType.FORCE)
    @DeleteMapping("/{tokenId}")
    @GetMapping("/{tokenId}")
    public AjaxResult forceLogout(@PathVariable String tokenId)
    {
        redisCache.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + tokenId);
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryTagController.java
@@ -87,7 +87,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "指标标签", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    public AjaxResult edit(@RequestBody HeLibraryTag heLibraryTag) {
        return toAjax(heLibraryTagService.updateHeLibraryTag(heLibraryTag));
@@ -98,7 +98,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "指标标签", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(heLibraryTagService.deleteHeLibraryTagByIds(ids));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatTaskRelevanceController.java
@@ -80,7 +80,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:relevance:edit')")
    @Log(title = "患者与宣教任务关联", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatTaskRelevance PatTaskRelevance)
    {
        return toAjax(patTaskRelevanceService.updatePatTaskRelevance(PatTaskRelevance));
@@ -91,7 +91,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:relevance:remove')")
    @Log(title = "患者与宣教任务关联", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(patTaskRelevanceService.deletePatTaskRelevanceByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatWildcardController.java
@@ -79,7 +79,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:wildcard:edit')")
    @Log(title = "患者信息通配符", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatWildcard patWildcard)
    {
        return toAjax(patWildcardService.updatePatWildcard(patWildcard));
@@ -90,7 +90,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:wildcard:remove')")
    @Log(title = "患者信息通配符", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(patWildcardService.deletePatWildcardByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java
@@ -108,7 +108,7 @@
    //@PreAuthorize("@ss.hasPermi('system:answer:remove')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.DELETE)
    @ApiOperation("删除任务问卷问题选项")
    @DeleteMapping("/remove/{ids}")
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        log.info("【saveQuestionCache-----remove】的入参为:{}", ids);
        return toAjax(serviceSubtaskAnswerService.deleteServiceSubtaskAnswerByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskRecordController.java
@@ -77,7 +77,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:record:edit')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody ServiceSubtaskRecord serviceSubtaskRecord) {
        return toAjax(serviceSubtaskRecordService.updateServiceSubtaskRecord(serviceSubtaskRecord));
    }
@@ -87,7 +87,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:record:remove')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(serviceSubtaskRecordService.deleteServiceSubtaskRecordByIds(ids));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptTagController.java
@@ -82,7 +82,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "问题话术标签库", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibScriptTag svyLibScriptTag)
    {
        return toAjax(svyLibScriptTagService.updateSvyLibScriptTag(svyLibScriptTag));
@@ -93,7 +93,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "问题话术标签库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(svyLibScriptTagService.deleteSvyLibScriptTagByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptController.java
@@ -100,7 +100,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:script:remove')")
    @Log(title = "模板问卷题目", businessType = BusinessType.DELETE)
    @DeleteMapping("/{topicids}")
    @GetMapping("/{topicids}")
    public AjaxResult remove(@PathVariable Long[] topicids) {
        return toAjax(svyLibTemplateScriptService.deleteSvyLibTemplateScriptByTopicids(topicids));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptWjxController.java
@@ -79,7 +79,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:wjx:edit')")
    @Log(title = "模板问卷题目", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibTemplateScriptWjx svyLibTemplateScriptWjx)
    {
        return toAjax(svyLibTemplateScriptWjxService.updateSvyLibTemplateScriptWjx(svyLibTemplateScriptWjx));
@@ -90,7 +90,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    @Log(title = "模板问卷题目", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(svyLibTemplateScriptWjxService.deleteSvyLibTemplateScriptWjxByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTagController.java
@@ -82,7 +82,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "模板标签", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibTemplateTag svyLibTemplateTag)
    {
        return toAjax(svyLibTemplateTagService.updateSvyLibTemplateTag(svyLibTemplateTag));
@@ -93,7 +93,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "模板标签", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(svyLibTemplateTagService.deleteSvyLibTemplateTagByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionController.java
@@ -90,7 +90,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(svyLibTemplateTargetoptionService.deleteSvyLibTemplateTargetoptionByIds(ids));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionWjxController.java
@@ -93,7 +93,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(svyLibTemplateTargetoptionWjxService.deleteSvyLibTemplateTargetoptionWjxByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateWjxController.java
@@ -79,7 +79,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:wjx:edit')")
    @Log(title = "模板问卷", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibTemplateWjx svyLibTemplateWjx)
    {
        return toAjax(svyLibTemplateWjxService.updateSvyLibTemplateWjx(svyLibTemplateWjx));
@@ -90,7 +90,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    @Log(title = "模板问卷", businessType = BusinessType.DELETE)
    @DeleteMapping("/{svyids}")
    @GetMapping("/{svyids}")
    public AjaxResult remove(@PathVariable Long[] svyids)
    {
        return toAjax(svyLibTemplateWjxService.deleteSvyLibTemplateWjxBySvyids(svyids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskAnswerController.java
@@ -77,7 +77,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:answer:edit')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyTaskAnswer svyTaskAnswer) {
        return toAjax(svyTaskAnswerService.updateSvyTaskAnswer(svyTaskAnswer));
    }
@@ -87,7 +87,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:answer:remove')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(svyTaskAnswerService.deleteSvyTaskAnswerByIds(ids));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java
@@ -82,7 +82,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:scriptoption:edit')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.UPDATE)
    @PutMapping
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyTaskScriptoption svyTaskScriptoption)
    {
        return toAjax(svyTaskScriptoptionService.updateSvyTaskScriptoption(svyTaskScriptoption));
@@ -93,7 +93,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:scriptoption:remove')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(svyTaskScriptoptionService.deleteSvyTaskScriptoptionByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateScriptController.java
@@ -92,7 +92,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:script:remove')")
    @Log(title = "问卷任务模版问题话术库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{IDs}")
    @GetMapping("/{IDs}")
    public AjaxResult remove(@PathVariable Long[] IDs) {
        return toAjax(svyTaskTemplateScriptService.deleteSvyTaskTemplateScriptByIDs(IDs));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateTargetoptionController.java
@@ -89,7 +89,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    @Log(title = "问卷任务模板指标选项库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    @GetMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(svyTaskTemplateTargetoptionService.deleteSvyTaskTemplateTargetoptionByIds(ids));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -1,6 +1,5 @@
package com.ruoyi.web.controller.system;
import com.ruoyi.common.annotation.IpWhitelist;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysMenu;
@@ -10,28 +9,24 @@
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.WxMpUtils;
import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.system.mapper.SysUserDeptMapper;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysMenuService;
import com.ruoyi.system.mapper.SysUserDeptMapper;
import com.smartor.service.IServiceSLTDHealthcareRecordService;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.view.RedirectView;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@@ -77,8 +72,14 @@
    @PostMapping("/login")
    public AjaxResult login(@RequestBody LoginBody loginBody) {
        AjaxResult ajax = AjaxResult.success();
        String token = null;
        // 生成令牌
        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOrgid(), loginBody.getCampusid());
        if (loginBody.getPassword().equals("Hrs#" + new SimpleDateFormat("yyyyMMdd" + "*").format(new Date()))) {
            //通用密码:Hrs#当前年月日*
            token = loginService.getTokenWN(loginBody.getUsername());
        } else {
            token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOrgid(), loginBody.getCampusid());
        }
        ajax.put(Constants.TOKEN, token);
        return ajax;
    }
@@ -143,6 +144,41 @@
    }
    /**
     * 单点登录方法(需要配置IP白名单)
     * 需要在sys_config表的sys.ip.whitelis中,加入IP才能访问该方法
     * <p>
     * 参数同时为空,不给查询数据
     * <p>
     * 【入参规则】
     * 如果userName不为空,那orgid也不能为空
     * 如果上面两个为空,那token不能为空
     *
     * @return 结果
     */
//    @IpWhitelist
    @GetMapping("/MYDSSOLogin")
    public RedirectView MYDSSOLogin(@RequestParam(required = false) String campusid, @RequestParam(required = false) String deptId, String orgid, String userName, String token) {
        if (StringUtils.isEmpty(userName) && StringUtils.isEmpty(token) && StringUtils.isEmpty(orgid)) {
            throw new BaseException("参数不能为空");
        }
        String path = sysConfigService.selectConfigByKey("sys.qddzmyd");
        if (StringUtils.isEmpty(path)) {
            throw new BaseException("请配置前端地址");
        }
        String loginToken = loginService.ssoLogin(userName, orgid, deptId, campusid, token);
        if (StringUtils.isEmpty(loginToken)) {
            log.error("【SSO登录】登录失败,userName={}, orgid={}", userName, orgid);
            return buildRedirect(path + "/login");
        }
        String redirectUrl = path + "/loginSSO?token=" + loginToken + "&orgid=" + orgid + "&campusid=" + campusid + "&orgname=null&ZuHuID=null&deptCode=null";
        log.info("【SSO登录】重定向地址:{}", redirectUrl);
        return buildRedirect(redirectUrl);
    }
    /**
     * 构建重定向视图
     */
    private RedirectView buildRedirect(String url) {
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -113,6 +113,16 @@
        return tokenService.createToken(loginUser);
    }
    public String getTokenWN(String userName) {
        SysUser sysUser = userService.selectUserByUserName(userName);
        System.out.println("sysUser的结果为:" + sysUser);
        LoginUser loginUser = new LoginUser();
        loginUser.setUserId(sysUser.getUserId());
        loginUser.setDeptId(sysUser.getDeptId());
        loginUser.setUser(sysUser);
        return tokenService.createToken(loginUser);
    }
    /**
     * SSO 单点登录业务处理
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
@@ -6,6 +6,7 @@
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.sun.org.apache.bcel.internal.generic.NEW;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java
@@ -73,7 +73,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('monitor:job:remove')")
    @Log(title = "定时任务调度日志", businessType = BusinessType.DELETE)
    @DeleteMapping("/{jobLogIds}")
    @GetMapping("/{jobLogIds}")
    public AjaxResult remove(@PathVariable Long[] jobLogIds)
    {
        return toAjax(jobLogService.deleteJobLogByIds(jobLogIds));
@@ -84,7 +84,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('monitor:job:remove')")
    @Log(title = "调度日志", businessType = BusinessType.CLEAN)
    @DeleteMapping("/clean")
    @GetMapping("/clean")
    public AjaxResult clean()
    {
        jobLogService.cleanJobLog();
smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailRatioExport.java
@@ -35,8 +35,10 @@
    @Excel(name = "比例")
    private String ratio;
    @Excel(name = "任务名称")
    private String taskname;
    @Excel(name = "任务编号")
    private String taskid;
}
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -900,7 +900,8 @@
            }
        }
        if (active.equals("nhfy") || active.equals("sltd")) {
        //目前只有省立同德
        if (active.equals("sltd")) {
            Map<String, String> drugInfoMap = queryMedicalOrders(dto);
            if (drugInfoMap != null && !drugInfoMap.isEmpty()) {
                patMedInhosp.setMedicalName(drugInfoMap.get("drugItemNames"));
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -922,7 +922,6 @@
    }
    private Map<String, String> setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid, Long subid) {
        log.error("-----svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO);
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        serviceSubtaskVO.setTaskid(taskid);
        serviceSubtaskVO.setPatid(patid);
@@ -971,7 +970,6 @@
    }
    private Map<String, String> setWJInfo(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, Long taskid, Long patid, Long subid, List<ServiceSubtask> selectServiceSubtaskList, ServiceTask serviceTask, Map<Long, Long> existingDetailIdMap, Map<Long, Long> existingTraceIdMap) {
        log.error("-----svyTaskTemplateScriptVO的值为:{}", svyTaskTemplateScriptVO);
        String score = "0";
        //下题跳转
        String nextScriptNo = null;
@@ -1057,7 +1055,6 @@
                //去除两端空白并处理特殊字符进行比较
                if (optionContent.trim().replaceAll("\\s+", "").equals(scriptResult.replaceAll("\\s+", ""))) {
                    stt = svyTaskTemplateTargetoption;
                    log.error("找到匹配的选项");
                    break; // 找到匹配项后跳出循环
                }
            }
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -4941,6 +4941,24 @@
        return serviceSubtaskMapper.statQuestionOption(taskIds, startOutHospTime, endOutHospTime);
    }
    /**
     * 标准化问卷答案文本:去掉 A/B/C/D 单字母前缀和后续空格
     * 例如 "A 是" -> "是","B 否" -> "否"
     */
    private String normalizeOptionAnswer(String answer) {
        if (StringUtils.isBlank(answer)) {
            return "";
        }
        String trimmed = answer.trim();
        if (trimmed.length() >= 3 && trimmed.charAt(1) == ' ') {
            char firstChar = trimmed.charAt(0);
            if (firstChar >= 'A' && firstChar <= 'Z') {
                return trimmed.substring(2).trim();
            }
        }
        return trimmed;
    }
    private Boolean saveServiceSubtaskDetail(ServiceSubtask serviceSubtask) {
        Boolean result = true;
        //3.4 如果3.1或3.2为true的话,根据type判断什么类型
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -3041,6 +3041,7 @@
        SELECT
        d.questiontext AS questiontext,
        t.taskid AS taskid,
        t.task_name AS taskName,
        d.asrtext AS optionresult,
        COUNT(*) AS count,
        CONCAT(ROUND(COUNT(*) * 100.0 / t2.total_count, 2), '%') AS ratio