liusheng
2025-02-25 4cccaf33dd171c20b6c262467f24706e3d175aab
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -66,6 +66,12 @@
    private IServiceTaskdeptService serviceTaskdeptService;
    @Autowired
    private IServiceTaskdiagService serviceTaskdiagService;
    @Autowired
    private IServiceTaskoperService serviceTaskoperService;
    @Autowired
    private RedisCache redisCache;
    @Autowired
@@ -377,39 +383,65 @@
            serviceTask.setTemplatename(tempName);
            serviceTask.setLeaveldeptcodes(serviceTaskVO.getLeaveldeptcodes());
            serviceTask.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode());
            if (serviceTaskVO.getLongTask() == 1L) serviceTask.setSendState(2L);
            serviceTaskService.insertServiceTask(serviceTask);
            ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
            serviceTaskdept.setTaskId(serviceTask.getTaskid());
            serviceTaskdept.setTaskName(serviceTask.getTaskName());
            serviceTaskdept.setLongtask(0L);
            serviceTaskdept.setGuid(serviceTask.getGuid());
            serviceTaskdept.setOrgid(serviceTask.getOrgid());
            serviceTaskdept.setOrgid(serviceTask.getOrgid());
            if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
            if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
                String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
                for (String deptCode : deptcodes) {
                    serviceTaskdept.setDeptCode(deptCode);
                    serviceTaskdept.setDeptType("1");
                    serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                    serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
            if (serviceTaskVO.getLongTask() == 1L) {
                serviceTask.setSendState(2L);
                serviceTaskService.insertServiceTask(serviceTask);
                if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
                    ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
                    serviceTaskdiag.setTaskId(serviceTask.getTaskid());
                    serviceTaskdiag.setTaskName(serviceTask.getTaskName());
                    serviceTaskdiag.setLongtask(1L);
                    serviceTaskdiag.setGuid(serviceTask.getGuid());
                    serviceTaskdiag.setOrgid(serviceTask.getOrgid());
                    serviceTaskdiag.setCreateTime(new Date());
                    serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
                } else if (StringUtils.isEmpty(serviceTaskVO.getOpcode())) {
                    ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
                    serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
                    serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
                    serviceTaskoper.setTaskId(serviceTask.getTaskid());
                    serviceTaskoper.setTaskName(serviceTask.getTaskName());
                    serviceTaskoper.setLongtask(1L);
                    serviceTaskoper.setGuid(serviceTask.getGuid());
                    serviceTaskoper.setOrgid(serviceTask.getOrgid());
                    serviceTaskoper.setCreateTime(new Date());
                    serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
                } else {
                    ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                    serviceTaskdept.setTaskId(serviceTask.getTaskid());
                    serviceTaskdept.setTaskName(serviceTask.getTaskName());
                    serviceTaskdept.setLongtask(1L);
                    serviceTaskdept.setGuid(serviceTask.getGuid());
                    serviceTaskdept.setOrgid(serviceTask.getOrgid());
                    serviceTaskdept.setOrgid(serviceTask.getOrgid());
                    if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
                    if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
                        String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
                        for (String deptCode : deptcodes) {
                            serviceTaskdept.setDeptCode(deptCode);
                            serviceTaskdept.setDeptType("1");
                            serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                            serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                        }
                    }
                    if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
                        String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(",");
                        for (String districtcode : leavehospitaldistrictcodes) {
                            serviceTaskdept.setDeptCode(districtcode);
                            serviceTaskdept.setDeptType("2");
                            serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                            serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                        }
                    }
                }
            }
            if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
                String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(",");
                for (String districtcode : leavehospitaldistrictcodes) {
                    serviceTaskdept.setDeptCode(districtcode);
                    serviceTaskdept.setDeptType("2");
                    serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                    serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1 && serviceTaskVO.getPatCycle() == 0L) {
                    Map<String, Integer> map = new HashMap<>();
                    map.put("taskId", serviceTask.getTaskid().intValue());
                    return map;
                }
            }
//
            if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1 && serviceTaskVO.getPatCycle() == 0L) {
                Map<String, Integer> map = new HashMap<>();
                map.put("taskId", serviceTask.getTaskid().intValue());
                return map;
            } else {
                serviceTaskService.insertServiceTask(serviceTask);
            }
            //将任务信息放到服务表中
@@ -1870,6 +1902,7 @@
            serviceSubtask.setRemark("电话拨打已完成");
            serviceSubtask.setSendstate(6L);
            serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid()));
            serviceSubtask.setFinishtime(new Date());
            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
            //下载文件
            ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
@@ -1882,6 +1915,7 @@
            serviceSubtask.setRemark("电话接通成功,患者拒绝随访");
            serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid()));
            serviceSubtask.setSendstate(6L);
            serviceSubtask.setFinishtime(new Date());
            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
            int startIndex = phoneCallRecordVO.getRecord_path().indexOf("voice") + "voice".length() + 1;  // 加1是跳过/符号
            int endIndex = phoneCallRecordVO.getRecord_path().lastIndexOf("/");