diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java index c84f11c9d..5dfa1c295 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java @@ -7,6 +7,7 @@ import com.core.common.utils.MessageUtils; import com.openhis.administration.domain.Location; import com.openhis.administration.domain.Organization; import com.openhis.administration.domain.OrganizationLocation; +import com.openhis.workflow.domain.ActivityDefinition; import com.openhis.administration.mapper.OrganizationLocationMapper; import com.openhis.administration.service.ILocationService; import com.openhis.administration.service.IOrganizationLocationService; @@ -70,6 +71,7 @@ public class OrganizationLocationAppServiceImpl implements IOrganizationLocation // 获取科室下拉选列表 List organizationList = organizationService.getList(OrganizationType.DEPARTMENT.getValue(), null); List organizationOptions = organizationList.stream() + .filter(organization -> organization != null && organization.getName() != null) .map(organization -> new OrgLocInitDto.departmentOption(organization.getId(), organization.getName())) .collect(Collectors.toList()); initDto.setLocationFormOptions(chargeItemStatusOptions).setDepartmentOptions(organizationOptions); @@ -131,12 +133,18 @@ public class OrganizationLocationAppServiceImpl implements IOrganizationLocation @Override public R addOrEditOrgLoc(OrgLocQueryDto orgLocQueryDto) { + // Validate required fields before processing + if (orgLocQueryDto.getOrganizationId() == null) { + return R.fail("请选择执行科室"); + } + OrganizationLocation orgLoc = new OrganizationLocation(); BeanUtils.copyProperties(orgLocQueryDto, orgLoc); Long activityDefinitionId = orgLoc.getActivityDefinitionId(); - String activityName = activityDefinitionId != null - ? activityDefinitionMapper.selectById(activityDefinitionId).getName() : ""; + ActivityDefinition activityDef = activityDefinitionId != null + ? activityDefinitionMapper.selectById(activityDefinitionId) : null; + String activityName = activityDef != null ? activityDef.getName() : ""; List organizationLocationList = organizationLocationService.getOrgLocListByOrgIdAndActivityDefinitionId(orgLoc.getActivityDefinitionId());