| | |
| | | import com.fasterxml.jackson.core.type.TypeReference; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.ruoyi.common.core.service.VisitTaskCreateApi; |
| | | import com.ruoyi.common.core.service.PreachformApi; |
| | | import com.ruoyi.common.core.service.dto.VisitSubtaskDraft; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.core.service.dto.VisitPreachformRow; |
| | | import com.ruoyi.inhospvisit.mapper.VisitPreachformMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.springframework.beans.factory.ObjectProvider; |
| | |
| | | private static final String DEFAULT_SENDSTATE = "1"; |
| | | |
| | | @Autowired |
| | | private VisitPreachformMapper preachformMapper; |
| | | private ObjectProvider<PreachformApi> preachformApiProvider; |
| | | |
| | | @Autowired |
| | | private ObjectProvider<VisitTaskCreateApi> taskCreateApiProvider; |
| | |
| | | return; |
| | | } |
| | | // 原 L1084-1098 |
| | | PreachformApi preachformApi = preachformApi(); |
| | | if (preachformApi == null) { |
| | | log.error("宣教单契约 PreachformApi 不可用(service_subtask_preachform 已归 ruoyi-task)," |
| | | + "跳过preachform子表生成,taskid为:{}", serviceSubtask.getTaskid()); |
| | | return; |
| | | } |
| | | for (VisitPreachformRow row : list) { |
| | | row.setTaskid(serviceSubtask.getTaskid()); |
| | | row.setSubid(serviceSubtask.getId()); |
| | |
| | | query.setSubid(row.getSubid()); |
| | | query.setTaskid(row.getTaskid()); |
| | | query.setPreachform(row.getPreachform()); |
| | | List<VisitPreachformRow> exists = preachformMapper.selectList(query); |
| | | List<VisitPreachformRow> exists = preachformApi.findList(query); |
| | | if (CollectionUtils.isNotEmpty(exists)) { |
| | | continue; |
| | | } |
| | |
| | | |
| | | // 原 L1096-1097 |
| | | row.setOrgid(serviceSubtask.getOrgid()); |
| | | preachformMapper.insert(row); |
| | | preachformApi.insert(row); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 取宣教单契约实现(2026-11 起 {@code service_subtask_preachform} 归 {@code ruoyi-task}, |
| | | * 本模块不能反向依赖它,只能经 {@code ruoyi-common} 的契约在运行期取实现)。 |
| | | */ |
| | | private PreachformApi preachformApi() { |
| | | if (preachformApiProvider == null) { |
| | | return null; |
| | | } |
| | | try { |
| | | return preachformApiProvider.stream().findFirst().orElse(null); |
| | | } catch (Exception e) { |
| | | log.warn("【出入院随访】获取 PreachformApi 失败:{}", e.toString()); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /** 供测试断言:确认本类拿到的 ObjectMapper 非空(原实现是方法内 new,这里提为字段) */ |
| | | boolean hasObjectMapper() { |
| | | return Objects.nonNull(objectMapper); |