陈昶聿
昨天 a993043a20a6c9bccb0ab563e2d955b36a801408
smartor/src/main/java/com/smartor/common/ScheduleSubtaskBuilder.java
@@ -74,7 +74,16 @@
            // 模板:detail 优先于 task
            if (detail.getTemplateid() != null) {
                subtask.setTemplateid(detail.getTemplateid());
                // 兼容历史数据:明细 templateid 可能是模板库ID,不能直接作为任务模板ID使用。
                if ("2".equals(serviceTask.getType())
                        && String.valueOf(detail.getTemplateid()).equals(serviceTask.getLibtemplateid())
                        && serviceTask.getTemplateid() != null) {
                    log.warn("计划明细 templateid [{}] 是模板库ID,已回退为任务模板ID [{}], taskid={}, detailId={}",
                            detail.getTemplateid(), serviceTask.getTemplateid(), serviceTask.getTaskid(), detail.getId());
                    subtask.setTemplateid(serviceTask.getTemplateid());
                } else {
                    subtask.setTemplateid(detail.getTemplateid());
                }
                subtask.setTemplatename(detail.getTemplatename());
            }
            if (detail.getLibtemplateid() != null) {
@@ -107,9 +116,9 @@
     * 把 patTaskRelevance 的基准日字段回填到 baseSubtask 后,委托给解耦入口。
     */
    public void buildSubtasksForPatient(ServiceTask serviceTask,
                                        ServiceTaskVO serviceTaskVO,
                                        List<Map<String, Object>> preachformList,
                                        ServiceTaskSchedule schedule,
                                        List<ServiceTaskScheduleDetail> detailList,
                                        List<ServiceTaskScheduleDetail> scheduleDetailList,
                                        PatTaskRelevance patTaskRelevance,
                                        ServiceSubtask baseSubtask) {
        // 回填基准日字段(手动路径的 baseSubtask 由 VO 拼装,基准日字段可能未填全)
@@ -123,8 +132,7 @@
        if (baseSubtask.getAdmindate() == null) {
            baseSubtask.setAdmindate(patTaskRelevance.getVisittime());
        }
        buildSubtasksForPatient(serviceTask, schedule, detailList, baseSubtask,
                serviceTaskVO.getPreachformList());
        buildSubtasksForPatient(serviceTask, schedule, scheduleDetailList, baseSubtask, preachformList);
    }
    /**