陈昶聿
6 小时以前 061977eba85adcb2a9f81cf81c7c3315c5570945
【丽水】扫码生成外链
已修改11个文件
181 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatArchive.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedOperationService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -48,6 +48,8 @@
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;
/**
 * 单一任务(随访)Controller
 *
@@ -87,6 +89,12 @@
    @Value("${spring.profiles.active}")
    private String active;
    @Value("${localIP}")
    private String localIP;
    @Value("${req_path}")
    private String req_path;
    @Value("${isAdmin}")
    private List<Long> isAdmin;
@@ -914,6 +922,29 @@
        return serviceSubtaskService.smsSubTask(subid);
    }
    /**
     * 跳转中间页
     *
     * @param taskId
     * @return
     */
    @PostMapping(value = "/goSfRelay")
    public AjaxResult goSfRelay(@RequestParam("taskId") Long taskId) {
        String url = localIP + ":" + req_path + "/SfRelay?taskid=" + taskId;
        return AjaxResult.success(url);
    }
    /**
     * 扫码生成子任务
     *
     * @param serviceTask
     * @return
     */
    @PostMapping(value = "/scanGenerateSubtask")
    public AjaxResult scanGenerateSubtask(@RequestBody ServiceTask serviceTask) {
        return AjaxResult.success(serviceSubtaskService.scanGenerateSubtask(serviceTask));
    }
    @PostMapping("/test")
    public void test() {
@@ -945,4 +976,6 @@
        int result = ryTask.qwenLLMTest(questionText, voiceText, value, regexText);
        return result;
    }
}
smartor/src/main/java/com/smartor/domain/PatArchive.java
@@ -336,8 +336,8 @@
    /**
     * 会员属性:0非会员,1一般会员、2重要会员
     */
    @ApiModelProperty("会员属性:0非会员,1一般会员、2重要会员")
    @Excel(name = " 会员属性:0非会员,1一般会员、2重要会员 ")
    @ApiModelProperty("会员属性:0非会员,1一般会员、2重要会员 -1虚拟患者")
    @Excel(name = " 会员属性:0非会员,1一般会员、2重要会员 -1虚拟患者")
    private String viptype;
    @ApiModelProperty("出院病区名称")
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -451,7 +451,7 @@
     * 就诊类型(1门诊  2出院)
     */
    @Excel(name = "  就诊类型(1门诊  2出院)")
    @ApiModelProperty(value = "就诊类型(1门诊  2出院 3.专病 4.外部导入 5急诊、6住院、7体检)")
    @ApiModelProperty(value = "就诊类型(1门诊  2出院 3.专病 4.外部导入 5急诊、6住院、7体检、8扫码)")
    private String hospType;
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -123,4 +123,6 @@
     * @return 结果
     */
    public void addOperationSubTask(String config);
    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type);
}
smartor/src/main/java/com/smartor/service/IPatMedOperationService.java
@@ -1,6 +1,9 @@
package com.smartor.service;
import com.smartor.domain.PatArchive;
import com.smartor.domain.PatMedOperation;
import com.smartor.domain.ServiceSubtask;
import com.smartor.domain.ServiceTask;
import java.util.List;
@@ -65,4 +68,6 @@
     * @return
     */
    public int dealOperationInfo();
    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive);
}
smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java
@@ -3,9 +3,7 @@
import java.util.List;
import com.ruoyi.common.core.page.TableDataInfo;
import com.smartor.domain.PatMedOuthosp;
import com.smartor.domain.PatMedReq;
import com.smartor.domain.PatMedRes;
import com.smartor.domain.*;
import org.springframework.web.bind.annotation.RequestBody;
/**
@@ -69,4 +67,6 @@
    public PatMedOuthosp getDeptCodeByPatId(PatMedOuthosp patMedOuthosp);
    public Integer dealOutpatientInfo();
    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive);
}
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -198,4 +198,6 @@
     * @return
     */
    public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startOutHospTime, Date endOutHospTime);
    public String scanGenerateSubtask(ServiceTask serviceTaskVo);
}
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -935,7 +935,8 @@
    //封装serviceSubtask
    private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) {
    @Override
    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) {
        //增加serviceTask判空
//        if(Objects.isNull(serviceTask)){
//            return null;
smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java
@@ -185,7 +185,8 @@
    }
    //封装serviceSubtask
    private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive) {
    @Override
    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive) {
        ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
        serviceSubtask.setTaskid(serviceTask.getTaskid());
        if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -475,7 +475,8 @@
    }
    //封装serviceSubtask
    private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
    @Override
    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
        ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
        serviceSubtask.setTaskid(serviceTask.getTaskid());
        if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -6,6 +6,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.dx.MessageSend;
@@ -131,6 +132,9 @@
    @Autowired
    private SvyLibScriptCategoryMapper svyLibScriptCategoryMapper;
    @Autowired
    private IPatMedInhospService patMedInhospService;
    @Value("${pri_key}")
    private String pri_key;
@@ -4765,4 +4769,118 @@
        }
    }
    public String scanGenerateSubtask(ServiceTask serviceTaskVo){
        String content = "";
        String ip = localIP;
        ServiceTask serviceTask = new ServiceTask();
        serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceTaskVo.getTaskid());
        if(ObjectUtils.isNotEmpty(serviceTask)){
            try {
                ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                if(ObjectUtils.isNotEmpty(serviceTaskVo.getDeptcode())){
                    serviceTaskdept.setDeptType("1");
                    serviceTaskdept.setDeptCode(serviceTask.getDeptcode());
                }
                if(ObjectUtils.isNotEmpty(serviceTaskVo.getLeavehospitaldistrictcode())){
                    serviceTaskdept.setDeptType("2");
                    serviceTaskdept.setDeptCode(serviceTaskVo.getLeavehospitaldistrictcode());
                }
                serviceTaskdept.setServiceType(serviceTask.getServiceType());
                serviceTaskdept.setOrgid(serviceTask.getOrgid());
                serviceTaskdept.setTaskId(serviceTaskVo.getTaskid());
                List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(serviceTaskdept);
                if (!CollectionUtils.isEmpty(serviceTaskdepts)) {
                    ServiceTaskdept serviceTaskdept1 = serviceTaskdepts.get(0);
                    PatArchive patArchiveVo = new PatArchive();
                    patArchiveVo.setViptype("-1");
                    List<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(patArchiveVo);
                    PatArchive patArchive = new PatArchive();
                    if(!ObjectUtils.isNotEmpty(patArchives)){
                        PatArchive newPatArchive = new PatArchive();
                        newPatArchive.setPatientno("00000000");
                        newPatArchive.setName("虚拟患者");
                        patArchiveMapper.insertPatArchiveSingle(newPatArchive);
                        patArchive = newPatArchive;
                    }else {
                        patArchive = patArchives.get(0);
                    }
                    //封装serviceSubtask
                    ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patArchive);
                    int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                    //根据生成外链
                    if (ObjectUtils.isNotEmpty(serviceSubtask.getTaskid()) &&
                            ObjectUtils.isNotEmpty(serviceSubtask.getPatid())
                            && ObjectUtils.isNotEmpty(serviceSubtask.getId())) {
                        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.setParam3(serviceTask.getTaskName());
                        serviceOutPath.setParam6(subId);
                        serviceOutPath.setCreateTime(new Date());
                        serviceOutPath.setOrgid(serviceTask.getOrgid());
                        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
                        String format = String.format("%03X", serviceOutPath.getId());
                        serviceOutPath.setRadix(format);
                        serviceOutPath.setUpdateTime(new Date());
                        String url = ip + ":" + req_path + "/wt?p=" + format;
                        content = url;
                        serviceOutPath.setUrl(url);
                        iServiceOutPathService.updateServiceOutPath(serviceOutPath);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
                log.error("【扫码生成任务】处理异常:{}", e.getMessage());
            }
        }
        return content;
    }
    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatArchive patArchive) {
        ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
        serviceSubtask.setTaskid(serviceTask.getTaskid());
        if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
            serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
//        serviceSubtask.setNurseId(patMedInhosp1.getNurseId());
//        serviceSubtask.setNurseName(patMedInhosp1.getNurseName());
//        serviceSubtask.setDrcode(patMedInhosp1.getDrcode());
//        serviceSubtask.setDrname(patMedInhosp1.getDrname());
        serviceSubtask.setDeptcode(serviceTask.getDeptcode());
        serviceSubtask.setDeptname(serviceTask.getDeptname());
        serviceSubtask.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode());
        serviceSubtask.setLeavehospitaldistrictname(serviceTask.getLeavehospitaldistrictname());
        serviceSubtask.setTemplateid(serviceTask.getTemplateid());
        serviceSubtask.setTemplatename(serviceTask.getTemplatename());
        serviceSubtask.setPatid(patArchive.getId());
        serviceSubtask.setSendname(patArchive.getName());
        serviceSubtask.setSfzh(patArchive.getIdcardno());
        serviceSubtask.setPhone(patArchive.getTelcode());
        if (StringUtils.isBlank(patArchive.getTelcode())) serviceSubtask.setPhone(patArchive.getRelativetelcode());
        serviceSubtask.setSex(patArchive.getSex());
        serviceSubtask.setAge(patArchive.getAge());
        serviceSubtask.setSendstate(3L);
//        serviceSubtask.setManagementDoctor(patMedInhosp1.getManagementDoctor());
//        serviceSubtask.setManagementDoctorCode(patMedInhosp1.getManagementDoctorCode());
        serviceSubtask.setServiceType(serviceTask.getServiceType());
        serviceSubtask.setPreachform(serviceTask.getPreachform());
        serviceSubtask.setHospType("8");
        serviceSubtask.setCreateTime(new Date());
        serviceSubtask.setUpdateTime(new Date());
//        serviceSubtask.setCreateBy(patMedInhosp1.getNurseName());
//        serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode());
//        serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname());
        serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
        serviceSubtask.setUpdateTime(new Date());
        serviceTask.setSendDay(1L);
        Date newDate = new Date();
        serviceSubtask.setLongSendTime(newDate);
        serviceSubtask.setVisitTime(newDate);
        return serviceSubtask;
    }
}