diff --git a/opp/core/src/main/java/OperationTeamService.java b/opp/core/src/main/java/OperationTeamService.java index 59cbfefd75fc4d02f33732da11cd53585b8830ba..4a77bbdcb379cc75a67c447d48dea6fcbdb72b12 100644 --- a/opp/core/src/main/java/OperationTeamService.java +++ b/opp/core/src/main/java/OperationTeamService.java @@ -10,7 +10,4 @@ public interface OperationTeamService { public List<OperationTeam> getOperationTeams() throws SQLException; - //public Optional<OPStaff> getOperationTeamOPStaff(Id<OperationTeam> operationTeamId); - - } diff --git a/opp/core/src/main/java/Repository.java b/opp/core/src/main/java/Repository.java index f540cac6a4ffc3ed09a9d4e2b24f0304c32439f4..7baa7b3cccbc23bd0b8989666dcd1bfab902c641 100644 --- a/opp/core/src/main/java/Repository.java +++ b/opp/core/src/main/java/Repository.java @@ -93,4 +93,6 @@ public interface Repository { Id<TeamMember> teamMemberId(); void saveTeamMember(TeamMember teamMember) throws Exception; + + List<OPStaff> getOperationTeamOPStaffImpl(Id<OperationTeam> operationTeamId); } diff --git a/opp/core/src/main/java/TeamMemberImpl.java b/opp/core/src/main/java/TeamMemberImpl.java index d4ea4062d3a46a872ecce7c866a039a8dce6dcdb..2f4a27182f977b6f8e436b4066ddc229158f0692 100644 --- a/opp/core/src/main/java/TeamMemberImpl.java +++ b/opp/core/src/main/java/TeamMemberImpl.java @@ -1,4 +1,5 @@ import java.time.Instant; +import java.util.List; public class TeamMemberImpl implements TeamMemberService{ @@ -15,6 +16,11 @@ public class TeamMemberImpl implements TeamMemberService{ }; } + @Override + public List<OPStaff> getOperationTeamOPStaff(Id<OperationTeam> operationTeamId) { + return repo.getOperationTeamOPStaffImpl(operationTeamId); + } + private TeamMember assignStaffimpl(TeamMember.AssignStaff as) { TeamMember teammember = new TeamMember( diff --git a/opp/core/src/main/java/TeamMemberService.java b/opp/core/src/main/java/TeamMemberService.java index faa401bdeaf0af240dd633a5c07195297be73a8a..ac7320163584f98d9c8e818f5e86fad7848fb3bf 100644 --- a/opp/core/src/main/java/TeamMemberService.java +++ b/opp/core/src/main/java/TeamMemberService.java @@ -1,4 +1,8 @@ +import java.util.List; + public interface TeamMemberService { public TeamMember process(TeamMember.Command cmd) throws Exception; + + List<OPStaff> getOperationTeamOPStaff(Id<OperationTeam> operationTeamId); } diff --git a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java index eb7e0671f5e6d6a1c00ec545d049138f286a9e24..ff3928c2b2c9ca5600f141d6beaf6a1914d37561 100644 --- a/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java +++ b/opp/jdbc-repo-impl/src/main/java/JDBCRepository.java @@ -730,6 +730,34 @@ class JDBCRepository implements Repository ); """; + @Override + public List<OPStaff> getOperationTeamOPStaffImpl(Id<OperationTeam> operationTeamId){ + + try( + var result = + conn.createStatement() + .executeQuery("SELECT DISTINCT opstaff.id, opstaff.role, opstaff.specialty, opstaff.lastupdate " + + "FROM opstaff " + + "JOIN teammember " + + "ON (opstaff.id = teammember.opstaffid) " + + "WHERE teammember.operationteamid= " + sqlValue(operationTeamId.value()) + ";"); + ) { + //SELECT DISTINCT opstaff.id, opstaff.role, opstaff.specialty, opstaff.lastupdate, teammember.operationteamid FROM opstaff JOIN teammember ON (opstaff.id = teammember.opstaffid); + //SELECT DISTINCT opstaff.id, opstaff.role, opstaff.specialty, opstaff.lastupdate, teammember.operationteamid FROM opstaff JOIN teammember ON (opstaff.id = teammember.opstaffid) WHERE teammember.operationteamid= '31313131'; + var opStaffs = new ArrayList<OPStaff>(); + + while (result.next()) { + opStaffs.add(readOPStaffFromRow(result)); + } + return opStaffs; + }catch(SQLException e){ + throw new RuntimeException(e); + } + } + + + + } diff --git a/opp/jdbc-repo-impl/src/test/java/Tests.java b/opp/jdbc-repo-impl/src/test/java/Tests.java index fd5c1309ba46471d929f26f299d895240a7dff61..6f30ff0472a1853bdacac6dc03daf07ca346d1ac 100644 --- a/opp/jdbc-repo-impl/src/test/java/Tests.java +++ b/opp/jdbc-repo-impl/src/test/java/Tests.java @@ -52,8 +52,8 @@ public final class Tests opService = new OperationServiceImpl(repo); testOPStaff = new OPStaff( - new Id<>("3333"), - Role.SURGEON, + new Id<>("4444"), + Role.ASSISTANT, Specialty.urology, Instant.now()); @@ -70,12 +70,14 @@ public final class Tests }; testTeamMember = new TeamMember( - new Id<>("newTeamMember1"), + new Id<>("TeamMember2"), testOperationTeam.operationTeamId(), testOPStaff.id(), Instant.now() ); + teamMemberService = new TeamMemberImpl(repo); + } //@Test @@ -342,7 +344,7 @@ public final class Tests } } - @Test + //@Test public void testGetMultipleOperationTeams() throws Exception{ @@ -356,7 +358,23 @@ public final class Tests } catch (Exception e){ e.printStackTrace(); } + } + + @Test + public void testGetTeamMemberFromTeam() throws Exception{ + + var id = new Id<OperationTeam>("31313131"); + + try{ + List<OPStaff> opStaff = teamMemberService.getOperationTeamOPStaff(id); + + for(OPStaff opStaffs1 : opStaff){ + System.out.println(opStaffs1); + } + } catch (Exception e){ + e.printStackTrace(); + } }