dbmsv3 init...1

This commit is contained in:
choi.jh 2025-10-30 18:31:52 +09:00
parent 67569faee3
commit 3b878ff21b
8 changed files with 165 additions and 43 deletions

View File

@ -4,8 +4,8 @@
"settings": { "settings": {
"width": 3000, "width": 3000,
"height": 3000, "height": 3000,
"scrollTop": -600.7873, "scrollTop": -1918.7873,
"scrollLeft": -1689, "scrollLeft": -382,
"zoomLevel": 0.79, "zoomLevel": 0.79,
"show": 511, "show": 511,
"database": 4, "database": 4,
@ -356,6 +356,7 @@
"2HB01q46-mugMjuOz85YG", "2HB01q46-mugMjuOz85YG",
"1q8jG5dQKdD35_XYimkSk", "1q8jG5dQKdD35_XYimkSk",
"HYB03rpc8hol5HFnZGtAi", "HYB03rpc8hol5HFnZGtAi",
"b3jaQTpaAEadz8U7BRfaQ",
"Mp3WiH2boEKm5P3XFL0lQ", "Mp3WiH2boEKm5P3XFL0lQ",
"VycsOgeM1SXkcq_5XYUMS", "VycsOgeM1SXkcq_5XYUMS",
"k4vpMNZ75fNUjX-hrjXzs", "k4vpMNZ75fNUjX-hrjXzs",
@ -376,6 +377,7 @@
"zL9bBVm37HTSU-xWpwxxJ", "zL9bBVm37HTSU-xWpwxxJ",
"G9PMddYQm9ohnzkJUa_nw", "G9PMddYQm9ohnzkJUa_nw",
"HYB03rpc8hol5HFnZGtAi", "HYB03rpc8hol5HFnZGtAi",
"b3jaQTpaAEadz8U7BRfaQ",
"Mp3WiH2boEKm5P3XFL0lQ", "Mp3WiH2boEKm5P3XFL0lQ",
"P84ZMnZu1nZtRhDY18T5o", "P84ZMnZu1nZtRhDY18T5o",
"6qEigzm8oyPReGxYdSzNi", "6qEigzm8oyPReGxYdSzNi",
@ -393,7 +395,7 @@
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1758759723898, "updateAt": 1761814703966,
"createAt": 1745819764138 "createAt": 1745819764138
} }
}, },
@ -573,7 +575,7 @@
}, },
"gsa0XtQZQgrJ8ZXy8VQVg": { "gsa0XtQZQgrJ8ZXy8VQVg": {
"id": "gsa0XtQZQgrJ8ZXy8VQVg", "id": "gsa0XtQZQgrJ8ZXy8VQVg",
"name": "user_history", "name": "mylog",
"comment": "작업 기록 로그", "comment": "작업 기록 로그",
"columnIds": [ "columnIds": [
"J_xS3cvULouXCTo5gCiTm", "J_xS3cvULouXCTo5gCiTm",
@ -605,12 +607,12 @@
"x": 2296.2614, "x": 2296.2614,
"y": 107.8236, "y": 107.8236,
"zIndex": 2, "zIndex": 2,
"widthName": 65, "widthName": 60,
"widthComment": 81, "widthComment": 81,
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1755581893902, "updateAt": 1761814765301,
"createAt": 1745819764142 "createAt": 1745819764142
} }
}, },
@ -989,6 +991,7 @@
"_-xFLWWt9KM8X9w0Ifmi8", "_-xFLWWt9KM8X9w0Ifmi8",
"WDWnFfcgxcvc1RbGphgV_", "WDWnFfcgxcvc1RbGphgV_",
"QKvOgvtD0_UPX4wjExPly", "QKvOgvtD0_UPX4wjExPly",
"WCU8DTbkiZp_kf8XA3JBn",
"qAyKLhnzQPHt5J4Swk7c1", "qAyKLhnzQPHt5J4Swk7c1",
"rk96zaatKz-6B_vos4evc", "rk96zaatKz-6B_vos4evc",
"aZE0-4Y5rAjHMOyt8LZPS", "aZE0-4Y5rAjHMOyt8LZPS",
@ -999,6 +1002,7 @@
"_-xFLWWt9KM8X9w0Ifmi8", "_-xFLWWt9KM8X9w0Ifmi8",
"WDWnFfcgxcvc1RbGphgV_", "WDWnFfcgxcvc1RbGphgV_",
"QKvOgvtD0_UPX4wjExPly", "QKvOgvtD0_UPX4wjExPly",
"WCU8DTbkiZp_kf8XA3JBn",
"qAyKLhnzQPHt5J4Swk7c1", "qAyKLhnzQPHt5J4Swk7c1",
"rk96zaatKz-6B_vos4evc", "rk96zaatKz-6B_vos4evc",
"aZE0-4Y5rAjHMOyt8LZPS", "aZE0-4Y5rAjHMOyt8LZPS",
@ -1014,7 +1018,7 @@
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1758759961878, "updateAt": 1761814722927,
"createAt": 1758759564253 "createAt": 1758759564253
} }
}, },
@ -1026,6 +1030,7 @@
"r3uRp_gmpyvxsDGuWdWgy", "r3uRp_gmpyvxsDGuWdWgy",
"5F1R6RtemRJmP3Ahkyv2J", "5F1R6RtemRJmP3Ahkyv2J",
"E5sDITHw_7mXwDMAXgXJn", "E5sDITHw_7mXwDMAXgXJn",
"YFACNTjYVbyXyCmc6GXaJ",
"e4rLa5ah9404ftzavjf4N", "e4rLa5ah9404ftzavjf4N",
"-aoGmupxR3WVamDcIRdR5", "-aoGmupxR3WVamDcIRdR5",
"_tNaOvm69MLQg5qF-_OJO", "_tNaOvm69MLQg5qF-_OJO",
@ -1037,6 +1042,7 @@
"r3uRp_gmpyvxsDGuWdWgy", "r3uRp_gmpyvxsDGuWdWgy",
"5F1R6RtemRJmP3Ahkyv2J", "5F1R6RtemRJmP3Ahkyv2J",
"E5sDITHw_7mXwDMAXgXJn", "E5sDITHw_7mXwDMAXgXJn",
"YFACNTjYVbyXyCmc6GXaJ",
"e4rLa5ah9404ftzavjf4N", "e4rLa5ah9404ftzavjf4N",
"-aoGmupxR3WVamDcIRdR5", "-aoGmupxR3WVamDcIRdR5",
"_tNaOvm69MLQg5qF-_OJO", "_tNaOvm69MLQg5qF-_OJO",
@ -1053,7 +1059,7 @@
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1760573618223, "updateAt": 1761814729845,
"createAt": 1758759596462 "createAt": 1758759596462
} }
}, },
@ -1065,6 +1071,7 @@
"Asn7nwT9GjjMmYcTX4wXv", "Asn7nwT9GjjMmYcTX4wXv",
"QVFV0SgEZpaEUL6rh6-hW", "QVFV0SgEZpaEUL6rh6-hW",
"bPLCmetjzux-4GilvvUJO", "bPLCmetjzux-4GilvvUJO",
"vN2dK_6fh_jVcMSbs6Hx-",
"0mMuq9X72PA3WvfurTA0d", "0mMuq9X72PA3WvfurTA0d",
"2r_fNpMagzMepzWTKJx81", "2r_fNpMagzMepzWTKJx81",
"yP_JqcAeT0xKY_owDhIfH", "yP_JqcAeT0xKY_owDhIfH",
@ -1076,6 +1083,7 @@
"QVFV0SgEZpaEUL6rh6-hW", "QVFV0SgEZpaEUL6rh6-hW",
"bPLCmetjzux-4GilvvUJO", "bPLCmetjzux-4GilvvUJO",
"Cok4UfkV3u1dy_1jLeNrJ", "Cok4UfkV3u1dy_1jLeNrJ",
"vN2dK_6fh_jVcMSbs6Hx-",
"0mMuq9X72PA3WvfurTA0d", "0mMuq9X72PA3WvfurTA0d",
"2r_fNpMagzMepzWTKJx81", "2r_fNpMagzMepzWTKJx81",
"yP_JqcAeT0xKY_owDhIfH", "yP_JqcAeT0xKY_owDhIfH",
@ -1091,7 +1099,7 @@
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1760573623206, "updateAt": 1761814745242,
"createAt": 1758759637696 "createAt": 1758759637696
} }
}, },
@ -1114,6 +1122,7 @@
"Zocwj4zycTnOQ_7EUAe8f", "Zocwj4zycTnOQ_7EUAe8f",
"Cf3iDo9RBYrQ6daeLoRJ1", "Cf3iDo9RBYrQ6daeLoRJ1",
"z5pbqehtfFOg2ggspUVdN", "z5pbqehtfFOg2ggspUVdN",
"WT2nNGVKrl1NPzKbzj-9G",
"yZm3jcTNVaYmF_uQEfcqP", "yZm3jcTNVaYmF_uQEfcqP",
"y8ARb2M7vwx49Nh9AyDe3", "y8ARb2M7vwx49Nh9AyDe3",
"QmTaq8IeGshe6v7YQwogt", "QmTaq8IeGshe6v7YQwogt",
@ -1121,7 +1130,7 @@
"iJ8TkaB0z_KgdaaBQSzXp" "iJ8TkaB0z_KgdaaBQSzXp"
], ],
"ui": { "ui": {
"x": 629.1139, "x": 620.2533,
"y": 2607.3256, "y": 2607.3256,
"zIndex": 5388, "zIndex": 5388,
"widthName": 60, "widthName": 60,
@ -1129,7 +1138,7 @@
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1760931455260, "updateAt": 1761814795909,
"createAt": 1760931280848 "createAt": 1760931280848
} }
} }
@ -9634,6 +9643,106 @@
"updateAt": 1760931405200, "updateAt": 1760931405200,
"createAt": 1760931386493 "createAt": 1760931386493
} }
},
"b3jaQTpaAEadz8U7BRfaQ": {
"id": "b3jaQTpaAEadz8U7BRfaQ",
"tableId": "ZMGIWLFEswObjH2Sx0NlW",
"name": "used",
"comment": "사용",
"dataType": "INT",
"default": "0",
"options": 8,
"ui": {
"keys": 0,
"widthName": 60,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1761814916678,
"createAt": 1761814662144
}
},
"WCU8DTbkiZp_kf8XA3JBn": {
"id": "WCU8DTbkiZp_kf8XA3JBn",
"tableId": "VN2Issjy8MFts5mr8-_9S",
"name": "used",
"comment": "사용",
"dataType": "INT",
"default": "0",
"options": 8,
"ui": {
"keys": 0,
"widthName": 60,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1761814904448,
"createAt": 1761814721578
}
},
"YFACNTjYVbyXyCmc6GXaJ": {
"id": "YFACNTjYVbyXyCmc6GXaJ",
"tableId": "0SUAXsejoiaHZwmW8msS3",
"name": "used",
"comment": "사용",
"dataType": "INT",
"default": "0",
"options": 8,
"ui": {
"keys": 0,
"widthName": 60,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1761814914044,
"createAt": 1761814727666
}
},
"WT2nNGVKrl1NPzKbzj-9G": {
"id": "WT2nNGVKrl1NPzKbzj-9G",
"tableId": "cN9peISo4OoJ1_xErNg5s",
"name": "use",
"comment": "사용",
"dataType": "INT",
"default": "0",
"options": 8,
"ui": {
"keys": 0,
"widthName": 60,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1761814732198,
"createAt": 1761814732197
}
},
"vN2dK_6fh_jVcMSbs6Hx-": {
"id": "vN2dK_6fh_jVcMSbs6Hx-",
"tableId": "6lQ2M_5glzZEDHxKHx83G",
"name": "used",
"comment": "사용",
"dataType": "INT",
"default": "0",
"options": 8,
"ui": {
"keys": 0,
"widthName": 60,
"widthComment": 60,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1761814907315,
"createAt": 1761814742080
}
} }
}, },
"relationshipEntities": { "relationshipEntities": {

File diff suppressed because one or more lines are too long

View File

@ -10,6 +10,10 @@ class CPUEntity extends PartEntity
const TITLE = CPUModel::TITLE; const TITLE = CPUModel::TITLE;
const DEFAULT_STATUS = STATUS['AVAILABLE']; const DEFAULT_STATUS = STATUS['AVAILABLE'];
//기본기능 //기본기능
final public function getUsed(): int
{
return $this->attributes['used'];
}
final public function getStock(): int final public function getStock(): int
{ {
return $this->attributes['stock']; return $this->attributes['stock'];

View File

@ -10,6 +10,10 @@ class DISKEntity extends PartEntity
const TITLE = DISKModel::TITLE; const TITLE = DISKModel::TITLE;
const DEFAULT_STATUS = STATUS['AVAILABLE']; const DEFAULT_STATUS = STATUS['AVAILABLE'];
//기본기능 //기본기능
final public function getUsed(): int
{
return $this->attributes['used'];
}
final public function getStock(): int final public function getStock(): int
{ {
return $this->attributes['stock']; return $this->attributes['stock'];

View File

@ -10,6 +10,10 @@ class RAMEntity extends PartEntity
const TITLE = RAMModel::TITLE; const TITLE = RAMModel::TITLE;
const DEFAULT_STATUS = STATUS['AVAILABLE']; const DEFAULT_STATUS = STATUS['AVAILABLE'];
//기본기능 //기본기능
final public function getUsed(): int
{
return $this->attributes['used'];
}
final public function getStock(): int final public function getStock(): int
{ {
return $this->attributes['stock']; return $this->attributes['stock'];

View File

@ -10,6 +10,10 @@ class SOFTWAREEntity extends PartEntity
const TITLE = SOFTWAREModel::TITLE; const TITLE = SOFTWAREModel::TITLE;
const DEFAULT_STATUS = STATUS['AVAILABLE']; const DEFAULT_STATUS = STATUS['AVAILABLE'];
//기본기능 //기본기능
final public function getUsed(): int
{
return $this->attributes['used'];
}
final public function getStock(): int final public function getStock(): int
{ {
return $this->attributes['stock']; return $this->attributes['stock'];

View File

@ -58,15 +58,7 @@ class DISKService extends PartService
//서버파트관련 작업 //서버파트관련 작업
public function detachFromServerPart(ServerPartEntity $serverPartEntity): DiskEntity public function detachFromServerPart(ServerPartEntity $serverPartEntity): DiskEntity
{ {
//부품정보가져오기 $entity = parent::detachFromServerPart($serverPartEntity);
$entity = $this->getEntity($serverPartEntity->getPartUID());
if (!$entity instanceof DISKEntity) {
throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다.");
}
//부품정보에 서버정보 설정 및 서비스,고객정보 정의
if ($entity->getStock() < $serverPartEntity->getCnt()) {
throw new \Exception("현재 재고수[{$entity->getStock()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다.");
}
return $this->getModel()->modify($entity, ['format' => $entity->getFormat() + $serverPartEntity->getCnt()]); return $this->getModel()->modify($entity, ['format' => $entity->getFormat() + $serverPartEntity->getCnt()]);
} }
} }

View File

@ -25,10 +25,11 @@ abstract class PartService extends CommonService implements PartInterface
throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다."); throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다.");
} }
//부품정보에 서버정보 설정 및 서비스,고객정보 정의 //부품정보에 서버정보 설정 및 서비스,고객정보 정의
if ($entity->getStock() < $serverPartEntity->getCnt()) { $available = $entity->getStock() - $entity->getUsed();
throw new \Exception("현재 재고수[{$entity->getStock()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다."); if ($available < $serverPartEntity->getCnt()) {
throw new \Exception("현재 재고수[{$available}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다.");
} }
return $this->getModel()->modify($entity, ['stock' => $entity->getStock() - $serverPartEntity->getCnt()]); return $this->getModel()->modify($entity, ['used' => $entity->getUsed() + $serverPartEntity->getCnt()]);
} }
public function detachFromServerPart(ServerPartEntity $serverPartEntity): mixed public function detachFromServerPart(ServerPartEntity $serverPartEntity): mixed
{ {
@ -38,10 +39,10 @@ abstract class PartService extends CommonService implements PartInterface
throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다."); throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다.");
} }
//부품정보에 서버정보 설정 및 서비스,고객정보 정의 //부품정보에 서버정보 설정 및 서비스,고객정보 정의
if ($entity->getStock() < $serverPartEntity->getCnt()) { if ($entity->getUsed() < $serverPartEntity->getCnt()) {
throw new \Exception("현재 재고수[{$entity->getStock()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다."); throw new \Exception("현재 사용된 갯수[{$entity->getUsed()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다.");
} }
$entity = $this->getModel()->modify($entity, ['stock' => $entity->getStock() + $serverPartEntity->getCnt()]); $entity = $this->getModel()->modify($entity, ['used' => $entity->getUsed() - $serverPartEntity->getCnt()]);
// dd($entity); // dd($entity);
return $entity; return $entity;
} }