1 Commits

Author SHA1 Message Date
4a9dad81f0 Department実装まで完了 2026-10-23 16:15:23 +09:00
5 changed files with 341 additions and 192 deletions

View File

@@ -1,3 +1,4 @@
09,代表取締役
10,役員 10,役員
11,人事・総務部 11,人事・総務部
12,経理部 12,経理部
1 10 09 役員 代表取締役
1 09 代表取締役
2 10 10 役員 役員
3 11 11 人事・総務部 人事・総務部
4 12 12 経理部 経理部

View File

@@ -8,3 +8,4 @@
10007,葉山稔,ハヤマミノル,mhayama@hoge.jp,hhh,14 10007,葉山稔,ハヤマミノル,mhayama@hoge.jp,hhh,14
10008,川上朱里,カワカミアカリ,kawakami@hoge.jp,iii,14 10008,川上朱里,カワカミアカリ,kawakami@hoge.jp,iii,14
10009,杉井肇,スギイハジメ,sugi@hoge.jp,jjj,15 10009,杉井肇,スギイハジメ,sugi@hoge.jp,jjj,15
10010,瓦昂世,カワラコウセイ,kawara@hoge.jp,kkk,09
1 10000 山田龍也 ヤマダタツヤ yamada@hoge.jp aaa 10
8 10007 葉山稔 ハヤマミノル mhayama@hoge.jp hhh 14
9 10008 川上朱里 カワカミアカリ kawakami@hoge.jp iii 14
10 10009 杉井肇 スギイハジメ sugi@hoge.jp jjj 15
11 10010 瓦昂世 カワラコウセイ kawara@hoge.jp kkk 09

View File

@@ -9,64 +9,106 @@ import com.rhizome.example.data.BaseData;
import com.rhizome.example.data.DepartmentData; import com.rhizome.example.data.DepartmentData;
public class DepartmentAccess extends BaseAccess{ public class DepartmentAccess extends BaseAccess{
private static final String DPT_FILEPATH = "file/DepartmentData.csv"; private static final String DEPDATA_FILEPATH = "file/DepartmentData.csv";
public DepartmentAccess() { public DepartmentAccess() {
super("file/DepartmentData.csv"); super(DEPDATA_FILEPATH);
}
public List<BaseData> selectAll() throws FileNotFoundException {
List<String> csvList = this.readData();
List<BaseData> datalist = new ArrayList();
for(String line : csvList) {// 26
DepartmentData dpt = new DepartmentData();
String[] columns = line.split(",");
dpt.setIdDepartment(columns[0]);
dpt.setNmDepartment(columns[1]);
datalist.add(dpt);
}
return datalist;
} }
@Override
public List<BaseData> selectById(String key) throws FileNotFoundException { public List<BaseData> selectById(String key) throws FileNotFoundException {
List<BaseData> allList = this.selectAll(); //全件データ
List<BaseData> selectList = new ArrayList(); List<BaseData> allList = new ArrayList<>();
for(BaseData dpt : allList) { //取得用リスト(CSV形式)
if (dpt.getPrimaryKeyValue().equals(key)) { List<String> csvList = readData();
selectList.add(dpt);
for (String line : csvList) {
DepartmentData department = new DepartmentData();
String[] columns = line.split(",");
department.setIdDepartment(columns[0]);
department.setNmDepartment(columns[1]);
allList.add(department);
}
//IDでの抽出データ
List<BaseData> selectList = new ArrayList<>();
for (BaseData department : allList) {
if (department.getPrimaryKeyValue().equals(key)) {
selectList.add(department);
} }
} }
return selectList; return selectList;
} }
@Override
public void insert(BaseData data) throws IOException { public void insert(BaseData data) throws IOException {
this.addData(data);// 61 //CSVファイルに追記する
}// 62 addData(data);
}
@Override
public void update(BaseData updateData) throws IOException { public void update(BaseData updateData) throws IOException {
List<BaseData> updatedList = new ArrayList(); //更新後データリスト
List<BaseData> updatedList = new ArrayList<>();
for(BaseData dpt : this.selectAll()) { //全件取得し、更新データを反映する
if (dpt.getPrimaryKeyValue().equals(updateData.getPrimaryKeyValue())) {// 72 List<BaseData> allList = new ArrayList<>();
//取得用リスト(CSV形式)
List<String> csvList = readData();
for (String line : csvList) {
DepartmentData department = new DepartmentData();
String[] columns = line.split(",");
department.setIdDepartment(columns[0]);
department.setNmDepartment(columns[1]);
allList.add(department);
}
for (BaseData department : allList) {
if(department.getPrimaryKeyValue().equals(updateData.getPrimaryKeyValue())) {
//指定されたデータとキーが一致するデータの場合、更新データを設定
updatedList.add(updateData); updatedList.add(updateData);
} else { } else {
updatedList.add(dpt); //上記以外は取得したデータをそのまま設定
updatedList.add(department);
} }
} }
//ファイル上書き処理
updateData(updatedList);
this.updateData(updatedList);// 81 }
}// 83
@Override
public void delete(String key) throws IOException { public void delete(String key) throws IOException {
List<BaseData> deletedList = new ArrayList();// 88 //全件から削除データを除いたリスト
List<BaseData> deletedList = new ArrayList<>();
for(BaseData employee : this.selectAll()) {// 91 93 //全件取得し、keyに該当するデータをリストから削除する
if (!employee.getPrimaryKeyValue().equals(key)) {// 94 //全件データ
deletedList.add(employee);// 95 List<BaseData> allList = new ArrayList<>();
//取得用リスト(CSV形式)
List<String> csvList = readData();
for (String line : csvList) {
DepartmentData department = new DepartmentData();
String[] columns = line.split(",");
department.setIdDepartment(columns[0]);
department.setNmDepartment(columns[1]);
allList.add(department);
}
for (BaseData department : allList) {
if(!department.getPrimaryKeyValue().equals(key)) {
deletedList.add(department);
} }
} }
//ファイル上書き処理
updateData(deletedList); updateData(deletedList);
} }
} }

View File

@@ -1,33 +1,58 @@
package com.rhizome.example.data; package com.rhizome.example.data;
public class DepartmentData extends BaseData { public class DepartmentData extends BaseData {
/** 部署ID */
private String idDepartment; private String idDepartment;
/** 部署名 */
private String nmDepartment; private String nmDepartment;
/**
* @return 部署ID
*/
public String getIdDepartment() { public String getIdDepartment() {
return idDepartment; return idDepartment;
} }
/**
* @param idDepartment 部署ID
*/
public void setIdDepartment(String idDepartment) { public void setIdDepartment(String idDepartment) {
this.idDepartment = idDepartment; this.idDepartment = idDepartment;
} }
/**
* @return 部署名
*/
public String getNmDepartment() { public String getNmDepartment() {
return nmDepartment; return nmDepartment;
} }
/**
* @param ndDepartment 部署名
*/
public void setNmDepartment(String nmDepartment) { public void setNmDepartment(String nmDepartment) {
this.nmDepartment = nmDepartment; this.nmDepartment = nmDepartment;
} }
/**
* {@inheritDoc}
*/
@Override
public String toString() { public String toString() {
return this.getIdDepartment() return getIdDepartment() + "\t" + getNmDepartment();
+ "\t" + this.getNmDepartment();
} }
@Override
public String toCSV() { public String toCSV() {
return this.getIdDepartment() return getIdDepartment() + "," + getNmDepartment();
+ "\t" + this.getNmDepartment();
} }
@Override
public String getPrimaryKeyValue() { public String getPrimaryKeyValue() {
return this.idDepartment; return idDepartment;
} }
} }

View File

@@ -22,17 +22,16 @@ public class Main {
* @param args * @param args
*/ */
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("システムを開始します"); System.out.println("システムを開始します");
//※1
while (true) { while (true) {
try { try {
new Main().start(); new Main().Start();
} catch (Exception e) { } catch (Exception e) {
System.out.println("予期せぬエラーが発生しました"); System.out.println("予期せぬエラーが発生しました");
e.printStackTrace(); e.printStackTrace();
} }
} }
} }
/** /**
@@ -40,21 +39,14 @@ public class Main {
* @throws IOException * @throws IOException
* *
*/ */
public void start() throws IOException { public void Start() throws IOException {
System.out.println(); System.out.println();
System.out.println("1:検索 2:登録 3:更新 4:削除 9:データ切り替え 0:終了 (管理対象:Employee)"); System.out.println("1:検索 2:登録 3:更新 4:削除 9:データ切り替え 0:終了 (管理対象:Employee)");
String ope = sc.nextLine(); //キーボードから読み取り String ope = sc.nextLine();
switch (ope) { switch (ope) {
case "1": //検索 case "1": //検索 ←変えたとこ
System.out.println(" 1:全件検索 2:条件検索 それ以外:戻る"); empDivide();
String choose = sc.nextLine(); //キーボードから読み取り
if(choose.equals("1")) { //1の時
empSelect("all"); //引数all(文字列)を渡す
}else if(choose.equals("2")) { //2の時
empSelect(); //引数なし
}
break; break;
case "2": //登録 case "2": //登録
empInsert(); empInsert();
@@ -65,49 +57,143 @@ public class Main {
case "4": //削除 case "4": //削除
empDelete(); empDelete();
break; break;
case "9": //切り替え case "9": //切り替え ←追加したとこ
dptloop:while(true) { Change();
System.out.println("1:検索 2:登録 3:更新 4:削除 9:データ切り替え 0:終了 (管理対象:Department)");
String dope = sc.nextLine();
switch (dope) {
case "1": //検索
System.out.println(" 1:全件検索 2:条件検索 それ以外:戻る");
String dptchoose = sc.nextLine();
if(dptchoose.equals("1")) {
dptSelect("all"); //全検索
}else if(dptchoose.equals("2")) {
dptSelect(); //条件検索
}
break; break;
case "2": //登録
dptInsert();
break;
case "3": //更新
dptUpdate();
break;
case "4": //削除
dptDelete();
break;
case "9": //切り替え
break dptloop;
case "0": //終了 case "0": //終了
System.out.println("システムを終了します"); System.out.println("システムを終了します");
System.exit(0); System.exit(0);
break;
default: default:
System.out.println("指定の番号を入力してください"); System.out.println("指定の番号を入力してください");
continue; //※2戻る
}
}
break; break;
case "0": //修了 }
}
//自分がつくったところ 部署のデータ
public void departmentStart() throws IOException {
System.out.println();
System.out.println("1:検索 2:登録 3:更新 4:削除 9:データ切り替え 0:終了 (管理対象:Department)");
String ope = sc.nextLine();
switch (ope) {
case "1": //検索 おかしい
depDivide();
break;
case "2": //登録 おけ
depInsert();
break;
case "3": //更新 おけ
depUpdate();
break;
case "4": //削除 おかしい
depDelete();
break;
case "9": //切り替え おけ
Change();
break;
case "0": //終了 おけ
System.out.println("システムを終了します"); System.out.println("システムを終了します");
System.exit(0); System.exit(0);
break;
default: default:
System.out.println("指定の番号を入力してください"); System.out.println("指定の番号を入力してください");
break; break;
} }
} }
//自分がつくったところ データ切り替えるか確認するばしょ
public void Change() throws IOException {
System.out.println();
System.out.println("データを切り替えますか?");
System.out.println("1:部署データへ 2:社員データへ 0:終了");
String ope = sc.nextLine();
switch (ope) {
case "1": //部署データに切り替える おけ
departmentStart();
break;
case "2": //社員データに戻る おけ
Start();
break;
case "0": //終了
System.out.println("システムを終了します");
System.exit(0);
break;
default:
System.out.println("指定の番号を入力してください");
break;
}
}
//自分がつくったところ 全検索か条件検索か
public void empDivide() throws IOException {
System.out.println();
System.out.println("1:全検索 2:条件検索 それ以外:戻る");
String ope = sc.nextLine();
switch (ope) {
case "1": //全検索 おけ
empExportcsv();
break;
case "2": //条件検索 おけ
empSelect();
break;
default:
break;
}
}
//自分がつくったところ 部署 全検索か 条件検索か
public void depDivide() throws IOException {
System.out.println();
System.out.println("1:全検索 2:条件検索 それ以外:戻る");
String ope = sc.nextLine();
switch (ope) {
case "1": //全検索 おけ
depExportcsv();
break;
case "2": //条件検索 おけ
depSelect();
break;
default:
break;
}
}
//自分がつくったとこ csv指定して出力
public void empExportcsv() throws IOException {
try (BufferedReader reader = new BufferedReader(new FileReader("file/EmployeeData.csv"))) {
String line;
while ((line = reader.readLine()) != null) {
String formatted = line.replace(",", " ");
System.out.println(formatted);
}
}
}
//自分がつくったとこ 部署csv指定して出力
public void depExportcsv() throws IOException {
try (BufferedReader reader = new BufferedReader(new FileReader("file/DepartmentData.csv"))) {
String line;
while ((line = reader.readLine()) != null) {
String formatted = line.replace(",", " ");
System.out.println(formatted);
}
}
}
/** /**
* 社員ファイルから情報を検索する * 社員ファイルから情報を検索する
* *
@@ -130,48 +216,27 @@ public class Main {
for (BaseData employee : list) { for (BaseData employee : list) {
System.out.println(employee.toString()); System.out.println(employee.toString());
} }
}
//throwsで例外が起きたときにメインメソッドで処理できるようにする
public void empSelect(String str)throws FileNotFoundException { //allを受け取るメソッド
//try-catchで例外処理+try-with-resourcesでファイルを自動で閉じる
//csvファイルを読み込みreaderの変数へ代入
try (BufferedReader reader = new BufferedReader(new FileReader("file/EmployeeData.csv"))) {
String line; //変数定義
//ファイルから読み込んだ1行をlineに代入しnullじゃない間ループ
while((line = reader.readLine())!= null) {
System.out.println(line); //lineを出力
}
}catch(IOException e) { //エラーの受け取りと処理
System.out.println("ファイルの読み込み中にエラーが発生しました");
e.printStackTrace(); //エラーの内容を詳しく表示する処理
} }
} //自分がつくったところ 部署ファイルから情報検索
public void depSelect() throws FileNotFoundException {
public void dptSelect() throws FileNotFoundException {
DepartmentAccess da = new DepartmentAccess(); DepartmentAccess da = new DepartmentAccess();
List<BaseData> list; List<BaseData> list;
//IDの入力および入力チェック
String id = inputCheck("ID", true); String id = inputCheck("ID", true);
//idに一致する社員データ取得
list = da.selectById(id); list = da.selectById(id);
if (list.size() == 0) {
if (list.size() == 0) { //取得結果が0件の場合
System.out.println("入力された値で情報がみつかりませんでした"); System.out.println("入力された値で情報がみつかりませんでした");
} }
//取得結果件数分、データをタブ区切りで出力する
for (BaseData department : list) { for (BaseData department : list) {
System.out.println(department.toString()); System.out.println(department.toString());
}
}
public void dptSelect(String str) throws FileNotFoundException {
try (BufferedReader dptreader = new BufferedReader(new FileReader("file/DepartmentData.csv"))) {
String line;
while((line = dptreader.readLine())!= null) {
System.out.println(line);
}
}catch(IOException e) {
System.out.println("ファイルの読み込み中にエラーが発生しました");
e.printStackTrace();
} }
} }
@@ -205,15 +270,20 @@ public class Main {
System.out.println("登録が完了しました"); System.out.println("登録が完了しました");
} }
public void dptInsert() throws IOException { //自分がつくったところ 部署ファイルに情報登録
String depId = inputCheck("部署ID", true); public void depInsert() throws IOException {
String depName = inputCheck("部署名", false); //各項目の入力および入力チェック処理
DepartmentData dpt = new DepartmentData(); String id = inputCheck("部署ID", true);
dpt.setIdDepartment(depId); String name = inputCheck("部署名", false);
dpt.setNmDepartment(depName);
//部署データインスタンスを生成し、入力値を設定
DepartmentData department = new DepartmentData();
department.setIdDepartment(id);
department.setNmDepartment(name);
DepartmentAccess da = new DepartmentAccess(); DepartmentAccess da = new DepartmentAccess();
da.insert(dpt); //ファイルデータ追加処理
da.insert(department);
System.out.println("登録が完了しました"); System.out.println("登録が完了しました");
} }
@@ -254,23 +324,27 @@ public class Main {
System.out.println("更新が完了しました"); System.out.println("更新が完了しました");
} }
public void dptUpdate() throws IOException { //自分が作ったところ 部署データアップデート
public void depUpdate() throws IOException {
DepartmentAccess da = new DepartmentAccess(); DepartmentAccess da = new DepartmentAccess();
String dptid = inputCheck("ID", true); //入力チェック
if (da.selectById(dptid).size() == 0) { String id = inputCheck("部署ID", true);
//存在チェック
if (da.selectById(id).size() == 0) {
System.out.println("入力された値で情報がみつかりませんでした"); System.out.println("入力された値で情報がみつかりませんでした");
return; return;
} }
String depId = inputCheck("部署ID", true); //名前入力チェック
String depName = inputCheck("部署名前", true); String name = inputCheck("部署名", false);
DepartmentData department = new DepartmentData();
department.setIdDepartment(id);
department.setNmDepartment(name);
DepartmentData dpt = new DepartmentData(); //ファイルデータ更新処理
dpt.setIdDepartment(depId); da.update(department);
dpt.setNmDepartment(depName);
da.update(dpt);
System.out.println("更新が完了しました"); System.out.println("更新が完了しました");
} }
/** /**
@@ -288,7 +362,7 @@ public class Main {
System.out.println("入力された値で情報がみつかりませんでした"); System.out.println("入力された値で情報がみつかりませんでした");
return; return;
} }
System.out.println("指定されたIDの情報を削除します? Y/y"); System.out.println("指定されたIDの情報を削除しますか? Y/y");
System.out.println("(Y/y以外の入力であればキャンセル)"); System.out.println("(Y/y以外の入力であればキャンセル)");
String yY = sc.nextLine(); String yY = sc.nextLine();
if (!"y".equals(yY) && !"Y".equals(yY)) { if (!"y".equals(yY) && !"Y".equals(yY)) {
@@ -300,14 +374,17 @@ public class Main {
System.out.println("削除が完了しました"); System.out.println("削除が完了しました");
} }
public void dptDelete() throws IOException { //自分がつくったところ 部署データ削除
public void depDelete() throws IOException {
DepartmentAccess da = new DepartmentAccess(); DepartmentAccess da = new DepartmentAccess();
String dptid = inputCheck("ID", true); //入力チェック
if (da.selectById(dptid).size() == 0) { String id = inputCheck("部署ID", true);
//存在チェック
if (da.selectById(id).size() == 0) {
System.out.println("入力された値で情報がみつかりませんでした"); System.out.println("入力された値で情報がみつかりませんでした");
return; return;
} }
System.out.println("指定されたIDの情報を削除します? Y/y"); System.out.println("指定されたIDの情報を削除しますか? Y/y");
System.out.println("(Y/y以外の入力であればキャンセル)"); System.out.println("(Y/y以外の入力であればキャンセル)");
String yY = sc.nextLine(); String yY = sc.nextLine();
if (!"y".equals(yY) && !"Y".equals(yY)) { if (!"y".equals(yY) && !"Y".equals(yY)) {
@@ -315,8 +392,10 @@ public class Main {
return; return;
} }
da.delete(dptid); //ファイルデータ削除処理
da.delete(id);
System.out.println("削除が完了しました"); System.out.println("削除が完了しました");
} }
/** /**
@@ -349,4 +428,5 @@ public class Main {
} }
return str; return str;
} }
} }