From 058e3c535e23c60e6ff626e367cef99c9042d0c9 Mon Sep 17 00:00:00 2001 From: "choi.jh" Date: Wed, 27 Aug 2025 17:54:08 +0900 Subject: [PATCH] dbmsv2 init...1 --- app/Config/Constants.php | 5 + .../Admin/Equipment/ServerController.php | 78 ++-- app/Database/dbmsv2.vuerd.json | 352 ++++++++++-------- app/Database/dbmsv2_init.sql | 1 + app/Database/dbmsv2_test1.sql | 13 +- app/Entities/Equipment/ServerEntity.php | 33 +- app/Entities/Equipment/ServerPartEntity.php | 20 +- app/Helpers/Equipment/ServerHelper.php | 47 ++- app/Language/en/Equipment/Server.php | 12 +- app/Services/CommonService.php | 2 + app/Services/Equipment/ServerPartService.php | 26 +- app/Services/Equipment/ServerService.php | 98 +++-- 12 files changed, 411 insertions(+), 276 deletions(-) diff --git a/app/Config/Constants.php b/app/Config/Constants.php index 20f48d3..4643942 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -365,6 +365,11 @@ define('DEFAULT_LIST_PERPAGE', $_ENV['LIST_PERPAGE'] ?? $_SERVER['LIST_PERPAGE'] //신규서비스 Interval define('SERVICE_NEW_INTERVAL', $_ENV['SERVICE_NEW_INTERVAL'] ?? $_SERVER['SERVICE_NEW_INTERVAL'] ?? 7); +//서버 PartType +define("SERVER", [ + "PARTTYPES" => ['CPU', 'RAM', 'DISK', 'OS'] +]); + //결제관련 define("PAYMENT", [ 'BILLING' => [ diff --git a/app/Controllers/Admin/Equipment/ServerController.php b/app/Controllers/Admin/Equipment/ServerController.php index 28744ec..110f59f 100644 --- a/app/Controllers/Admin/Equipment/ServerController.php +++ b/app/Controllers/Admin/Equipment/ServerController.php @@ -2,20 +2,18 @@ namespace App\Controllers\Admin\Equipment; +use App\Entities\Equipment\IPEntity; use App\Entities\Equipment\ServerEntity; use App\Entities\Equipment\ServerPartEntity; use App\Helpers\Equipment\ServerHelper; -use App\Services\Equipment\ServerPartService; use App\Services\Equipment\ServerService; -use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; class ServerController extends EquipmentController { - private ?ServerPartService $_serverPartService = null; public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { parent::initController($request, $response, $logger); @@ -41,13 +39,6 @@ class ServerController extends EquipmentController } return $this->_helper; } - final public function getServerPartService(): ServerPartService - { - if (!$this->_serverPartService) { - $this->_serverPartService = new ServerPartService(); - } - return $this->_serverPartService; - } //Index,FieldForm관련 //생성 protected function create_form_process(): void @@ -60,22 +51,39 @@ class ServerController extends EquipmentController parent::create_form_process(); } //추가 파트정보 생성 - private function createServerParts(ServerEntity $entity): array + private function getFormDatasForServerPartInfo(ServerEntity $entity, string $partType): array { - $serverPartEntities = []; - foreach (ServerPartService::BaseParts as $basePart) { - $formDatas = [ - "partinfo_uid" => $this->request->getPost(["serverpartinfo_{$basePart}_uid"]), - "serverinfo_uid" => $entity->getPK(), - "serviceinfo_uid" => $entity->getServiceInfoUID(), - "billing" => ServerPartENtity::DEFAULT_BILLING, - "amount" => $this->request->getPost("amount") ?? 0, - "cnt" => $this->request->getPost("serverpartinfo_{$basePart}_uid_cnt") ?? 1, - "extra" => $this->request->getPost("serverpartinfo_{$basePart}_uid_extra") ?? "" - ]; - $serverPartEntities[] = $this->getServerPartService()->create($formDatas); + $formDatas = [ + "partinfo_uid" => $this->request->getPost(["serverpartinfo_{$partType}_uid"]), + "serverinfo_uid" => $entity->getPK(), + "serviceinfo_uid" => $entity->getServiceInfoUID(), + "type" => $partType, + "billing" => ServerPartENtity::DEFAULT_BILLING, + "amount" => $this->request->getPost("amount") ?? 0, + "cnt" => $this->request->getPost("serverpartinfo_{$partType}_uid_cnt") ?? 1, + "extra" => $this->request->getPost("serverpartinfo_{$partType}_uid_extra") ?? "" + ]; + return $formDatas; + } + private function getFormDatasForIPInfo(ServerEntity $entity, string $status): array + { + $formDatas = [ + "serverinfo_uid" => $entity->getPK(), + "clientinfo_uid" => $entity->getClientInfoUID(), + "serviceinfo_uid" => $entity->getServiceInfoUID(), + "status" => $status + ]; + return $formDatas; + } + private function createIpInfo(ServerEntity $entity): IPEntity + { + //기존 Entity 가져오기 + $ipinfo_uid = $this->request->getPost("ipinfo_uid"); + $ipEntity = $this->getService()->getIPService()->getEntity($ipinfo_uid); + if (!$ipEntity) { + throw new \Exception("{$ipinfo_uid}에 대한 정보를 찾을수 없습니다."); } - return $serverPartEntities; + return $this->getService()->getIPService()->modify($ipEntity, $this->getFormDatasForIPInfo($entity, $ipEntity::STATUS_OCCUPIED)); } protected function create_process(array $formDatas): ServerEntity { @@ -91,19 +99,15 @@ class ServerController extends EquipmentController throw new \Exception("Server코드[{$formDatas['code']}의 형식이 맞지않습니다"); } $entity = parent::create_process($formDatas); - //추가 파트정보 생성 후 ServerEntity 에 설정 - $entity->setServerParts($this->createServerParts($entity)); + //ServerPart정보 생성 후 ServerEntity에 설정 + foreach (SERVER['PARTTYPES'] as $partType) { + $serverPartEnty = $this->getService()->getServerPartService()->create( + $this->getFormDatasForServerPartInfo($entity, $partType) + ); + $entity->setServerPartEntity($partType, $serverPartEnty); + } + //IP정보 속성 수정후 ServerEntity에 설정 + $entity->setIPEntities([$this->createIpInfo($entity)]); return $entity; } - protected function index_process(array $entities = []): array - { - foreach (parent::index_process($entities) as $entity) { - //서버 부품정보 정의 - $entity->setServerParts($this->getServerPartService()->getEntities(['serverinfo_uid' => $entity->getPK()])); - //서버 IP정보 정의 - //서버 CS정보 정의 - $entities[] = $entity; - } - return $entities; - } } diff --git a/app/Database/dbmsv2.vuerd.json b/app/Database/dbmsv2.vuerd.json index 9148785..79f5b75 100644 --- a/app/Database/dbmsv2.vuerd.json +++ b/app/Database/dbmsv2.vuerd.json @@ -4,13 +4,13 @@ "settings": { "width": 3000, "height": 3000, - "scrollTop": -1509.3576, - "scrollLeft": -365.7916, + "scrollTop": -1726.3031, + "scrollLeft": -455.9114, "zoomLevel": 0.76, "show": 511, "database": 4, "databaseName": "", - "canvasType": "@dineug/erd-editor/builtin-schema-sql", + "canvasType": "ERD", "language": 1, "tableNameCase": 4, "columnNameCase": 2, @@ -113,15 +113,15 @@ "w_EuwbTwtLEPAgYjS1aYq" ], "ui": { - "x": 1419.5003, - "y": 297.6737, + "x": 1298.9121, + "y": 227.0855, "zIndex": 2, "widthName": 60, "widthComment": 62, "color": "" }, "meta": { - "updateAt": 1755653491658, + "updateAt": 1756279440813, "createAt": 1745819764136 } }, @@ -175,15 +175,15 @@ "JEk5AASiK6MpT9QBRWjMX" ], "ui": { - "x": 696.3092, - "y": 832.1517, + "x": 1250.1794, + "y": 704.2103, "zIndex": 2, "widthName": 60, "widthComment": 60, "color": "" }, "meta": { - "updateAt": 1755654904923, + "updateAt": 1756279482646, "createAt": 1745819764137 } }, @@ -319,15 +319,15 @@ "aY2pn1J3VHF_qV5XFM_zf" ], "ui": { - "x": 807.5175, - "y": 1997.4168, + "x": 2264.5612, + "y": 1964.677, "zIndex": 2, "widthName": 60, "widthComment": 60, "color": "" }, "meta": { - "updateAt": 1756086075154, + "updateAt": 1756279464511, "createAt": 1745819764137 } }, @@ -365,15 +365,15 @@ "xvHi50lODgZs-Ke-lH95g" ], "ui": { - "x": 2303.7942, - "y": 1764.818, + "x": 66.565, + "y": 2125.8862, "zIndex": 2, "widthName": 60, "widthComment": 60, "color": "" }, "meta": { - "updateAt": 1755506769168, + "updateAt": 1756279418325, "createAt": 1745819764138 } }, @@ -418,15 +418,15 @@ "ZgRRNC6OFpn87uomKBHbH" ], "ui": { - "x": 2303.2041, - "y": 1392.8748, + "x": 62.9566, + "y": 1781.5745, "zIndex": 2, "widthName": 60, "widthComment": 60, "color": "" }, "meta": { - "updateAt": 1755654240788, + "updateAt": 1756279413496, "createAt": 1745819764138 } }, @@ -484,15 +484,15 @@ "CX9ODlVw-gFnxgfMJ1JyV" ], "ui": { - "x": 1612.8983, - "y": 1500.839, + "x": 758.8735, + "y": 1837.6814, "zIndex": 2, "widthName": 60, "widthComment": 60, "color": "" }, "meta": { - "updateAt": 1756086185204, + "updateAt": 1756279479074, "createAt": 1745819764138 } }, @@ -639,15 +639,15 @@ "n9ZWAQ9754sZ3MM4IxCAA" ], "ui": { - "x": 2314.4072, - "y": 644.0365, + "x": 2195.6764, + "y": 573.0616, "zIndex": 2278, "widthName": 60, "widthComment": 60, "color": "" }, "meta": { - "updateAt": 1755653438046, + "updateAt": 1756279455895, "createAt": 1748484896313 } }, @@ -728,15 +728,15 @@ "2fzVlWt1Skh-391N_z9Ci" ], "ui": { - "x": 1526.2804, - "y": 976.8582, + "x": 2160.5683, + "y": 1265.7898, "zIndex": 2395, "widthName": 60, "widthComment": 62, "color": "" }, "meta": { - "updateAt": 1755660518169, + "updateAt": 1756279460059, "createAt": 1748485662214 } }, @@ -777,15 +777,15 @@ "qOLH2re1rmaG-63c08R8x" ], "ui": { - "x": 74.9689, - "y": 1414.7795, + "x": 46.0215, + "y": 1046.3584, "zIndex": 2509, "widthName": 60, "widthComment": 62, "color": "" }, "meta": { - "updateAt": 1755666709923, + "updateAt": 1756279268718, "createAt": 1750898626895 } }, @@ -832,15 +832,15 @@ "S-_BBM4Qv5LCTvGVKmQQw" ], "ui": { - "x": 50.1723, - "y": 1816.5969, + "x": 58.067, + "y": 1344.2285, "zIndex": 4045, "widthName": 60, "widthComment": 201, "color": "" }, "meta": { - "updateAt": 1756086070863, + "updateAt": 1756279299856, "createAt": 1755244574868 } }, @@ -853,6 +853,7 @@ "l2g7xess8DY86_ZOm7Ca1", "IbWdZlEEF70bGqUDkU5ub", "eu4eV0U7BRaP7Zk-oyBhV", + "czO0QNJkidvlfvj3hL6xs", "mYEan5gjLS5bBthtFCc6w", "tmSvn-3Kqlf7oUbiedFDh", "SioEINPlR0iyL87vqa4N-", @@ -869,6 +870,7 @@ "l2g7xess8DY86_ZOm7Ca1", "IbWdZlEEF70bGqUDkU5ub", "eu4eV0U7BRaP7Zk-oyBhV", + "czO0QNJkidvlfvj3hL6xs", "mYEan5gjLS5bBthtFCc6w", "tmSvn-3Kqlf7oUbiedFDh", "SioEINPlR0iyL87vqa4N-", @@ -880,15 +882,15 @@ "kDyVwSigBBYnp_F9MyRAw" ], "ui": { - "x": 1541.4598, - "y": 1937.3055, + "x": 698.2708, + "y": 2247.9865, "zIndex": 4514, "widthName": 101, "widthComment": 165, "color": "" }, "meta": { - "updateAt": 1756083472477, + "updateAt": 1756279409021, "createAt": 1755476453282 } }, @@ -8193,6 +8195,26 @@ "updateAt": 1756083498528, "createAt": 1756083498528 } + }, + "czO0QNJkidvlfvj3hL6xs": { + "id": "czO0QNJkidvlfvj3hL6xs", + "tableId": "8GYAVBvZGaMFeq3QuXk_B", + "name": "type", + "comment": "형식", + "dataType": "VARCHAR(20)", + "default": "", + "options": 8, + "ui": { + "keys": 0, + "widthName": 60, + "widthComment": 60, + "widthDataType": 75, + "widthDefault": 60 + }, + "meta": { + "updateAt": 1756279042574, + "createAt": 1756279042572 + } } }, "relationshipEntities": { @@ -8206,18 +8228,18 @@ "columnIds": [ "7B0zaLoZnOoMNW8OHZlrQ" ], - "x": 2303.2041, - "y": 1540.8748, - "direction": 1 + "x": 565.9566, + "y": 1929.5745, + "direction": 2 }, "end": { "tableId": "ZLEpY5EjuZV21718zf-Y1", "columnIds": [ "f7_MGvRjkwL1xkCWrAgDR" ], - "x": 2144.8983, - "y": 1684.839, - "direction": 2 + "x": 758.8735, + "y": 2021.6814, + "direction": 1 }, "meta": { "updateAt": 1746595277837, @@ -8234,17 +8256,17 @@ "columnIds": [ "mfHtgzc_Aeocr6xkgwYWh" ], - "x": 1672.0003, - "y": 593.6737, - "direction": 8 + "x": 1803.9121, + "y": 473.7521666666667, + "direction": 2 }, "end": { "tableId": "B8haiEbPc1lRBWTv1g25G", "columnIds": [ "Vf3bNvvEPfu1zCs4rcHTU" ], - "x": 1852.7804, - "y": 976.8582, + "x": 2323.8183, + "y": 1265.7898, "direction": 4 }, "meta": { @@ -8262,8 +8284,8 @@ "columnIds": [ "mfHtgzc_Aeocr6xkgwYWh" ], - "x": 1924.5003, - "y": 519.6737, + "x": 1803.9121, + "y": 375.0855, "direction": 2 }, "end": { @@ -8271,8 +8293,8 @@ "columnIds": [ "s1Az-lXWK0NlVQqFEEK8o" ], - "x": 2314.4072, - "y": 705.3698333333333, + "x": 2195.6764, + "y": 665.0616, "direction": 1 }, "meta": { @@ -8290,8 +8312,8 @@ "columnIds": [ "mfHtgzc_Aeocr6xkgwYWh" ], - "x": 1924.5003, - "y": 371.6737, + "x": 1803.9121, + "y": 276.41883333333334, "direction": 2 }, "end": { @@ -8318,17 +8340,17 @@ "columnIds": [ "mfHtgzc_Aeocr6xkgwYWh" ], - "x": 1419.5003, - "y": 482.6737, - "direction": 1 + "x": 1551.4121, + "y": 523.0855, + "direction": 8 }, "end": { "tableId": "6ajvOCaGuXU9pzV0Y9jEi", "columnIds": [ "hrPg0uHAdEjamOj--BVzO" ], - "x": 1140.4758666666667, - "y": 832.1517, + "x": 1516.6794, + "y": 704.2103, "direction": 4 }, "meta": { @@ -8346,8 +8368,8 @@ "columnIds": [ "mfHtgzc_Aeocr6xkgwYWh" ], - "x": 1419.5003, - "y": 334.6737, + "x": 1298.9121, + "y": 276.41883333333334, "direction": 1 }, "end": { @@ -8374,8 +8396,8 @@ "columnIds": [ "mfHtgzc_Aeocr6xkgwYWh" ], - "x": 1419.5003, - "y": 408.6737, + "x": 1298.9121, + "y": 375.0855, "direction": 1 }, "end": { @@ -8402,18 +8424,18 @@ "columnIds": [ "2HB01q46-mugMjuOz85YG" ], - "x": 2303.7942, - "y": 1888.818, - "direction": 1 + "x": 563.565, + "y": 2249.8862, + "direction": 2 }, "end": { "tableId": "8GYAVBvZGaMFeq3QuXk_B", "columnIds": [ "l2g7xess8DY86_ZOm7Ca1" ], - "x": 2135.4598, - "y": 2085.3055, - "direction": 2 + "x": 698.2708, + "y": 2407.9865, + "direction": 1 }, "meta": { "updateAt": 1755486693704, @@ -8430,8 +8452,8 @@ "columnIds": [ "mfHtgzc_Aeocr6xkgwYWh" ], - "x": 1419.5003, - "y": 556.6737, + "x": 1298.9121, + "y": 473.7521666666667, "direction": 1 }, "end": { @@ -8458,8 +8480,8 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 696.3092, - "y": 1052.1517, + "x": 1250.1794, + "y": 924.2103, "direction": 1 }, "end": { @@ -8486,9 +8508,9 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 962.8091999999999, - "y": 832.1517, - "direction": 4 + "x": 1250.1794, + "y": 836.2103, + "direction": 1 }, "end": { "tableId": "jO40Ej5EXImXnadoJo9bn", @@ -8514,9 +8536,9 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 785.1425333333333, - "y": 832.1517, - "direction": 4 + "x": 1250.1794, + "y": 748.2103, + "direction": 1 }, "end": { "tableId": "GDEF0_WuOpaYtsZxjn2zM", @@ -8542,8 +8564,8 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 1229.3092000000001, - "y": 887.1517, + "x": 1783.1794, + "y": 814.2103, "direction": 2 }, "end": { @@ -8551,8 +8573,8 @@ "columnIds": [ "8mPFhDdUY8QLPvc8rNw1B" ], - "x": 2314.4072, - "y": 828.0364999999999, + "x": 2195.6764, + "y": 849.0616, "direction": 1 }, "meta": { @@ -8570,8 +8592,8 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 1229.3092000000001, - "y": 997.1517, + "x": 1783.1794, + "y": 1034.2103, "direction": 2 }, "end": { @@ -8579,8 +8601,8 @@ "columnIds": [ "N-2m8O_JzS6-sDEcL5zTv" ], - "x": 1526.2804, - "y": 1031.8582000000001, + "x": 2160.5683, + "y": 1309.7898, "direction": 1 }, "meta": { @@ -8598,18 +8620,18 @@ "columnIds": [ "nNWsAWbHfKWqx8EwxvuM1" ], - "x": 2179.2804, - "y": 1196.8582000000001, - "direction": 2 + "x": 2650.3183, + "y": 1265.7898, + "direction": 4 }, "end": { "tableId": "QCNA57Pi6A9dJDgybxS5v", "columnIds": [ "vxhl-9RMNJ8zU9oqzEWo8" ], - "x": 2314.4072, - "y": 950.7031666666666, - "direction": 1 + "x": 2506.1764, + "y": 941.0616, + "direction": 8 }, "meta": { "updateAt": 1755653412891, @@ -8626,17 +8648,17 @@ "columnIds": [ "RITMHZcQAJ7KvtxkTtMv-" ], - "x": 894.8508333333333, - "y": 1997.4168, - "direction": 4 + "x": 2264.5612, + "y": 2082.277, + "direction": 1 }, "end": { "tableId": "IsMoJXzvtuoOFFt93qS0w", "columnIds": [ "wi1XbZM3emknh42sOMkYq" ], - "x": 591.9689, - "y": 1641.446166666667, + "x": 563.0215000000001, + "y": 1273.0250666666668, "direction": 2 }, "meta": { @@ -8654,8 +8676,8 @@ "columnIds": [ "RITMHZcQAJ7KvtxkTtMv-" ], - "x": 807.5175, - "y": 2193.4168, + "x": 2264.5612, + "y": 2160.677, "direction": 1 }, "end": { @@ -8663,8 +8685,8 @@ "columnIds": [ "GtBqjKsmtYWvsd0fckBc0" ], - "x": 588.1723, - "y": 2143.263566666667, + "x": 596.067, + "y": 1670.895166666667, "direction": 2 }, "meta": { @@ -8682,17 +8704,17 @@ "columnIds": [ "nNWsAWbHfKWqx8EwxvuM1" ], - "x": 1526.2804, - "y": 1251.8582000000001, - "direction": 1 + "x": 2487.0683, + "y": 1705.7898, + "direction": 8 }, "end": { "tableId": "B4qGh3KZsXHQ3_4EOgwJZ", "columnIds": [ "4iRyOhmW3b7kbiZT8lQyY" ], - "x": 1244.1841666666667, - "y": 1997.4168, + "x": 2526.5612, + "y": 1964.677, "direction": 4 }, "meta": { @@ -8710,8 +8732,8 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 1140.4758666666667, - "y": 1272.1517, + "x": 1694.346066666667, + "y": 1144.2103, "direction": 8 }, "end": { @@ -8719,9 +8741,9 @@ "columnIds": [ "JRdeV7n53lb1iSmmYnhHX" ], - "x": 1069.5175, - "y": 1997.4168, - "direction": 4 + "x": 2264.5612, + "y": 2003.877, + "direction": 1 }, "meta": { "updateAt": 1755653851900, @@ -8738,18 +8760,18 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 1229.3092000000001, - "y": 1107.1517, - "direction": 2 + "x": 1339.0127333333335, + "y": 1144.2103, + "direction": 8 }, "end": { "tableId": "ZLEpY5EjuZV21718zf-Y1", "columnIds": [ "60w6M5QqxGAvJa3EEMDbR" ], - "x": 1612.8983, - "y": 1562.1723333333334, - "direction": 1 + "x": 891.8735, + "y": 1837.6814, + "direction": 4 }, "meta": { "updateAt": 1755653938445, @@ -8766,18 +8788,18 @@ "columnIds": [ "RITMHZcQAJ7KvtxkTtMv-" ], - "x": 1331.5175, - "y": 2095.4168, - "direction": 2 + "x": 2264.5612, + "y": 2239.077, + "direction": 1 }, "end": { "tableId": "ZLEpY5EjuZV21718zf-Y1", "columnIds": [ "QznZ6PY_T3OGj3YD4GdOX" ], - "x": 1612.8983, - "y": 1807.505666666667, - "direction": 1 + "x": 1290.8735000000001, + "y": 2113.6814, + "direction": 2 }, "meta": { "updateAt": 1755653979090, @@ -8794,18 +8816,18 @@ "columnIds": [ "RITMHZcQAJ7KvtxkTtMv-" ], - "x": 1331.5175, - "y": 2291.4168, - "direction": 2 + "x": 2264.5612, + "y": 2317.4770000000003, + "direction": 1 }, "end": { "tableId": "8GYAVBvZGaMFeq3QuXk_B", "columnIds": [ "IbWdZlEEF70bGqUDkU5ub" ], - "x": 1541.4598, - "y": 2085.3055, - "direction": 1 + "x": 1292.2708, + "y": 2487.9865, + "direction": 2 }, "meta": { "updateAt": 1755654048878, @@ -8822,18 +8844,18 @@ "columnIds": [ "nNWsAWbHfKWqx8EwxvuM1" ], - "x": 2016.0304, - "y": 1416.8582000000001, - "direction": 8 + "x": 2160.5683, + "y": 1573.7898, + "direction": 1 }, "end": { "tableId": "ZLEpY5EjuZV21718zf-Y1", "columnIds": [ "sJfMcwfDgXnsZ89DVVDA2" ], - "x": 1878.8983, - "y": 1500.839, - "direction": 4 + "x": 1290.8735000000001, + "y": 1929.6814, + "direction": 2 }, "meta": { "updateAt": 1755664509604, @@ -8850,8 +8872,8 @@ "columnIds": [ "nNWsAWbHfKWqx8EwxvuM1" ], - "x": 1526.2804, - "y": 1141.8582000000001, + "x": 2160.5683, + "y": 1397.7898, "direction": 1 }, "end": { @@ -8859,8 +8881,8 @@ "columnIds": [ "E30sHnqJytLlBmfL7ueOG" ], - "x": 591.9689, - "y": 1460.1128333333336, + "x": 563.0215000000001, + "y": 1182.3584, "direction": 2 }, "meta": { @@ -8878,8 +8900,8 @@ "columnIds": [ "nNWsAWbHfKWqx8EwxvuM1" ], - "x": 1526.2804, - "y": 1361.8582000000001, + "x": 2160.5683, + "y": 1485.7898, "direction": 1 }, "end": { @@ -8887,8 +8909,8 @@ "columnIds": [ "7Tqt0jVOln16nire8AE2K" ], - "x": 588.1723, - "y": 2012.5969000000002, + "x": 596.067, + "y": 1540.2285000000002, "direction": 2 }, "meta": { @@ -8906,18 +8928,18 @@ "columnIds": [ "nNWsAWbHfKWqx8EwxvuM1" ], - "x": 1689.5304, - "y": 1416.8582000000001, - "direction": 8 + "x": 2160.5683, + "y": 1661.7898, + "direction": 1 }, "end": { "tableId": "8GYAVBvZGaMFeq3QuXk_B", "columnIds": [ "eu4eV0U7BRaP7Zk-oyBhV" ], - "x": 1838.4598, - "y": 1937.3055, - "direction": 4 + "x": 1292.2708, + "y": 2327.9865, + "direction": 2 }, "meta": { "updateAt": 1755664858263, @@ -8934,17 +8956,17 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 962.8091999999999, - "y": 1272.1517, - "direction": 8 + "x": 1250.1794, + "y": 1012.2103, + "direction": 1 }, "end": { "tableId": "IsMoJXzvtuoOFFt93qS0w", "columnIds": [ "9FYinSR3C6jDrEsRsCMpl" ], - "x": 591.9689, - "y": 1550.7795000000003, + "x": 563.0215000000001, + "y": 1091.6917333333333, "direction": 2 }, "meta": { @@ -8962,17 +8984,17 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 785.1425333333333, - "y": 1272.1517, - "direction": 8 + "x": 1250.1794, + "y": 1100.2103, + "direction": 1 }, "end": { "tableId": "SEgsi7mbM-56Rsx5-qj8K", "columnIds": [ "q_IaRBb367b9mgGozh6jB" ], - "x": 588.1723, - "y": 1881.9302333333335, + "x": 596.067, + "y": 1409.5618333333334, "direction": 2 }, "meta": { @@ -8990,18 +9012,18 @@ "columnIds": [ "V6BuLrtFrGgCWaHSUkSLb" ], - "x": 1229.3092000000001, - "y": 1217.1517, - "direction": 2 + "x": 1516.6794000000002, + "y": 1144.2103, + "direction": 8 }, "end": { "tableId": "ZLEpY5EjuZV21718zf-Y1", "columnIds": [ "4sj8hIYAiLSSF89eeNXdQ" ], - "x": 1612.8983, - "y": 1684.8390000000002, - "direction": 1 + "x": 1157.8735000000001, + "y": 1837.6814, + "direction": 4 }, "meta": { "updateAt": 1755666739577, diff --git a/app/Database/dbmsv2_init.sql b/app/Database/dbmsv2_init.sql index c6cd395..2f57242 100644 --- a/app/Database/dbmsv2_init.sql +++ b/app/Database/dbmsv2_init.sql @@ -406,6 +406,7 @@ CREATE TABLE `serverinfo_partinfo` ( `partinfo_uid` int(11) NOT NULL COMMENT 'PART정보', `serverinfo_uid` int(11) NOT NULL COMMENT '서버정보', `serviceinfo_uid` int(11) DEFAULT NULL COMMENT '서비스정보', + `type` varchar(20) NOT NULL COMMENT '형식', `billing` varchar(20) NOT NULL COMMENT '청구방법(month,onetime)', `amount` int(11) NOT NULL DEFAULT 0 COMMENT '서비스금액', `cnt` tinyint(4) NOT NULL DEFAULT 1 COMMENT '갯수', diff --git a/app/Database/dbmsv2_test1.sql b/app/Database/dbmsv2_test1.sql index 4e617ad..a982f10 100644 --- a/app/Database/dbmsv2_test1.sql +++ b/app/Database/dbmsv2_test1.sql @@ -383,7 +383,7 @@ CREATE TABLE `serverinfo` ( KEY `FK_clientinfo_TO_serverinfo` (`clientinfo_uid`), CONSTRAINT `FK_clientinfo_TO_serverinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`), CONSTRAINT `FK_serviceinfo_TO_serverinfo` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='서버정보'; +) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='서버정보'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -392,6 +392,7 @@ CREATE TABLE `serverinfo` ( LOCK TABLES `serverinfo` WRITE; /*!40000 ALTER TABLE `serverinfo` DISABLE KEYS */; +INSERT INTO `serverinfo` VALUES (6,NULL,NULL,'250826-M1','hp','HP DL360 Gen7',400000,0,'2025-07-31 15:00:00','2025-08-30 15:00:00','available',NULL,'2025-08-26 06:15:57',NULL); /*!40000 ALTER TABLE `serverinfo` ENABLE KEYS */; UNLOCK TABLES; @@ -407,6 +408,7 @@ CREATE TABLE `serverinfo_partinfo` ( `partinfo_uid` int(11) NOT NULL COMMENT 'PART정보', `serverinfo_uid` int(11) NOT NULL COMMENT '서버정보', `serviceinfo_uid` int(11) DEFAULT NULL COMMENT '서비스정보', + `type` varchar(20) NOT NULL COMMENT '형식', `billing` varchar(20) NOT NULL COMMENT '청구방법(month,onetime)', `amount` int(11) NOT NULL DEFAULT 0 COMMENT '서비스금액', `cnt` tinyint(4) NOT NULL DEFAULT 1 COMMENT '갯수', @@ -420,7 +422,7 @@ CREATE TABLE `serverinfo_partinfo` ( CONSTRAINT `FK_partinfo_TO_serverinfo_partinfo` FOREIGN KEY (`partinfo_uid`) REFERENCES `partinfo` (`uid`), CONSTRAINT `FK_serverinfo_TO_serverinfo_partinfo` FOREIGN KEY (`serverinfo_uid`) REFERENCES `serverinfo` (`uid`), CONSTRAINT `FK_serviceinfo_TO_serverinfo_partinfo` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='서버정보_part정보(CASECADE)'; +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='서버정보_part정보(CASECADE)'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -429,6 +431,7 @@ CREATE TABLE `serverinfo_partinfo` ( LOCK TABLES `serverinfo_partinfo` WRITE; /*!40000 ALTER TABLE `serverinfo_partinfo` DISABLE KEYS */; +INSERT INTO `serverinfo_partinfo` VALUES (1,2,6,NULL,'CPU','',0,2,NULL,NULL,'2025-08-26 06:15:57'),(2,8,6,NULL,'RAM','',0,2,NULL,NULL,'2025-08-26 06:15:57'),(3,14,6,NULL,'DISK','',0,2,'RAID1',NULL,'2025-08-26 06:15:57'),(4,28,6,NULL,'OS','',0,1,NULL,NULL,'2025-08-26 06:15:57'); /*!40000 ALTER TABLE `serverinfo_partinfo` ENABLE KEYS */; UNLOCK TABLES; @@ -566,7 +569,7 @@ CREATE TABLE `user_history` ( PRIMARY KEY (`uid`), KEY `FK_user_TO_user_history` (`user_uid`), CONSTRAINT `FK_user_TO_user_history` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='작업 기록 로그'; +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8 COMMENT='작업 기록 로그'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -575,7 +578,7 @@ CREATE TABLE `user_history` ( LOCK TABLES `user_history` WRITE; /*!40000 ALTER TABLE `user_history` DISABLE KEYS */; -INSERT INTO `user_history` VALUES (1,1,'Customer/Client->create 작업이 성공적으로 완료되었습니다.','16:20:27[info]: [TEST0001]생성되었습니다.:\n16:20:27[info]: [TEST0001]수정되였습니다.:','normal',NULL,'2025-08-25 07:20:27',NULL),(2,1,'Equipment/Line->create 작업이 성공적으로 완료되었습니다.','16:27:05[info]: [SoftBank 10G]생성되었습니다.:\n16:27:05[info]: [23.125.207.0]생성되었습니다.:\n16:27:05[info]: [23.125.207.1]생성되었습니다.:\n16:27:05[info]: [23.125.207.2]생성되었습니다.:\n16:27:05[info]: [23.125.207.3]생성되었습니다.:\n16:27:05[info]: [23.125.207.4]생성되었습니다.:\n16:27:05[info]: [23.125.207.5]생성되었습니다.:\n16:27:05[info]: [23.125.207.6]생성되었습니다.:\n16:27:05[info]: [23.125.207.7]생성되었습니다.:\n16:27:05[info]: [23.125.207.8]생성되었습니다.:\n16:27:05[info]: [23.125.207.9]생성되었습니다.:\n16:27:05[info]: [23.125.207.10]생성되었습니다.:\n16:27:05[info]: [23.125.207.11]생성되었습니다.:\n16:27:05[info]: [23.125.207.12]생성되었습니다.:\n16:27:05[info]: [23.125.207.13]생성되었습니다.:\n16:27:05[info]: [23.125.207.14]생성되었습니다.:\n16:27:05[info]: [23.125.207.15]생성되었습니다.:\n16:27:05[info]: [23.125.207.16]생성되었습니다.:\n16:27:05[info]: [23.125.207.17]생성되었습니다.:\n16:27:05[info]: [23.125.207.18]생성되었습니다.:\n16:27:05[info]: [23.125.207.19]생성되었습니다.:\n16:27:05[info]: [23.125.207.20]생성되었습니다.:\n16:27:05[info]: [23.125.207.21]생성되었습니다.:\n16:27:05[info]: [23.125.207.22]생성되었습니다.:\n16:27:05[info]: [23.125.207.23]생성되었습니다.:\n16:27:05[info]: [23.125.207.24]생성되었습니다.:\n16:27:05[info]: [23.125.207.25]생성되었습니다.:\n16:27:05[info]: [23.125.207.26]생성되었습니다.:\n16:27:05[info]: [23.125.207.27]생성되었습니다.:\n16:27:05[info]: [23.125.207.28]생성되었습니다.:\n16:27:05[info]: [23.125.207.29]생성되었습니다.:\n16:27:05[info]: [23.125.207.30]생성되었습니다.:\n16:27:05[info]: [23.125.207.31]생성되었습니다.:\n16:27:05[info]: [23.125.207.32]생성되었습니다.:\n16:27:05[info]: [23.125.207.33]생성되었습니다.:\n16:27:05[info]: [23.125.207.34]생성되었습니다.:\n16:27:05[info]: [23.125.207.35]생성되었습니다.:\n16:27:05[info]: [23.125.207.36]생성되었습니다.:\n16:27:05[info]: [23.125.207.37]생성되었습니다.:\n16:27:05[info]: [23.125.207.38]생성되었습니다.:\n16:27:05[info]: [23.125.207.39]생성되었습니다.:\n16:27:05[info]: [23.125.207.40]생성되었습니다.:\n16:27:05[info]: [23.125.207.41]생성되었습니다.:\n16:27:05[info]: [23.125.207.42]생성되었습니다.:\n16:27:05[info]: [23.125.207.43]생성되었습니다.:\n16:27:05[info]: [23.125.207.44]생성되었습니다.:\n16:27:05[info]: [23.125.207.45]생성되었습니다.:\n16:27:05[info]: [23.125.207.46]생성되었습니다.:\n16:27:05[info]: [23.125.207.47]생성되었습니다.:\n16:27:05[info]: [23.125.207.48]생성되었습니다.:\n16:27:05[info]: [23.125.207.49]생성되었습니다.:\n16:27:05[info]: [23.125.207.50]생성되었습니다.:\n16:27:05[info]: [23.125.207.51]생성되었습니다.:\n16:27:05[info]: [23.125.207.52]생성되었습니다.:\n16:27:05[info]: [23.125.207.53]생성되었습니다.:\n16:27:05[info]: [23.125.207.54]생성되었습니다.:\n16:27:05[info]: [23.125.207.55]생성되었습니다.:\n16:27:05[info]: [23.125.207.56]생성되었습니다.:\n16:27:05[info]: [23.125.207.57]생성되었습니다.:\n16:27:05[info]: [23.125.207.58]생성되었습니다.:\n16:27:05[info]: [23.125.207.59]생성되었습니다.:\n16:27:05[info]: [23.125.207.60]생성되었습니다.:\n16:27:05[info]: [23.125.207.61]생성되었습니다.:\n16:27:05[info]: [23.125.207.62]생성되었습니다.:\n16:27:05[info]: [23.125.207.63]생성되었습니다.:\n16:27:05[info]: [23.125.207.64]생성되었습니다.:\n16:27:05[info]: [23.125.207.65]생성되었습니다.:\n16:27:05[info]: [23.125.207.66]생성되었습니다.:\n16:27:05[info]: [23.125.207.67]생성되었습니다.:\n16:27:05[info]: [23.125.207.68]생성되었습니다.:\n16:27:05[info]: [23.125.207.69]생성되었습니다.:\n16:27:05[info]: [23.125.207.70]생성되었습니다.:\n16:27:05[info]: [23.125.207.71]생성되었습니다.:\n16:27:05[info]: [23.125.207.72]생성되었습니다.:\n16:27:05[info]: [23.125.207.73]생성되었습니다.:\n16:27:05[info]: [23.125.207.74]생성되었습니다.:\n16:27:05[info]: [23.125.207.75]생성되었습니다.:\n16:27:05[info]: [23.125.207.76]생성되었습니다.:\n16:27:05[info]: [23.125.207.77]생성되었습니다.:\n16:27:05[info]: [23.125.207.78]생성되었습니다.:\n16:27:05[info]: [23.125.207.79]생성되었습니다.:\n16:27:05[info]: [23.125.207.80]생성되었습니다.:\n16:27:05[info]: [23.125.207.81]생성되었습니다.:\n16:27:05[info]: [23.125.207.82]생성되었습니다.:\n16:27:05[info]: [23.125.207.83]생성되었습니다.:\n16:27:05[info]: [23.125.207.84]생성되었습니다.:\n16:27:05[info]: [23.125.207.85]생성되었습니다.:\n16:27:05[info]: [23.125.207.86]생성되었습니다.:\n16:27:05[info]: [23.125.207.87]생성되었습니다.:\n16:27:05[info]: [23.125.207.88]생성되었습니다.:\n16:27:05[info]: [23.125.207.89]생성되었습니다.:\n16:27:05[info]: [23.125.207.90]생성되었습니다.:\n16:27:05[info]: [23.125.207.91]생성되었습니다.:\n16:27:05[info]: [23.125.207.92]생성되었습니다.:\n16:27:05[info]: [23.125.207.93]생성되었습니다.:\n16:27:05[info]: [23.125.207.94]생성되었습니다.:\n16:27:05[info]: [23.125.207.95]생성되었습니다.:\n16:27:05[info]: [23.125.207.96]생성되었습니다.:\n16:27:05[info]: [23.125.207.97]생성되었습니다.:\n16:27:05[info]: [23.125.207.98]생성되었습니다.:\n16:27:05[info]: [23.125.207.99]생성되었습니다.:\n16:27:05[info]: [23.125.207.100]생성되었습니다.:\n16:27:05[info]: [23.125.207.101]생성되었습니다.:\n16:27:05[info]: [23.125.207.102]생성되었습니다.:\n16:27:05[info]: [23.125.207.103]생성되었습니다.:\n16:27:05[info]: [23.125.207.104]생성되었습니다.:\n16:27:05[info]: [23.125.207.105]생성되었습니다.:\n16:27:05[info]: [23.125.207.106]생성되었습니다.:\n16:27:05[info]: [23.125.207.107]생성되었습니다.:\n16:27:05[info]: [23.125.207.108]생성되었습니다.:\n16:27:05[info]: [23.125.207.109]생성되었습니다.:\n16:27:05[info]: [23.125.207.110]생성되었습니다.:\n16:27:05[info]: [23.125.207.111]생성되었습니다.:\n16:27:05[info]: [23.125.207.112]생성되었습니다.:\n16:27:05[info]: [23.125.207.113]생성되었습니다.:\n16:27:05[info]: [23.125.207.114]생성되었습니다.:\n16:27:05[info]: [23.125.207.115]생성되었습니다.:\n16:27:05[info]: [23.125.207.116]생성되었습니다.:\n16:27:05[info]: [23.125.207.117]생성되었습니다.:\n16:27:05[info]: [23.125.207.118]생성되었습니다.:\n16:27:05[info]: [23.125.207.119]생성되었습니다.:\n16:27:05[info]: [23.125.207.120]생성되었습니다.:\n16:27:05[info]: [23.125.207.121]생성되었습니다.:\n16:27:05[info]: [23.125.207.122]생성되었습니다.:\n16:27:05[info]: [23.125.207.123]생성되었습니다.:\n16:27:05[info]: [23.125.207.124]생성되었습니다.:\n16:27:05[info]: [23.125.207.125]생성되었습니다.:\n16:27:05[info]: [23.125.207.126]생성되었습니다.:\n16:27:05[info]: [23.125.207.127]생성되었습니다.:\n16:27:05[info]: [23.125.207.128]생성되었습니다.:\n16:27:05[info]: [23.125.207.129]생성되었습니다.:\n16:27:05[info]: [23.125.207.130]생성되었습니다.:\n16:27:05[info]: [23.125.207.131]생성되었습니다.:\n16:27:05[info]: [23.125.207.132]생성되었습니다.:\n16:27:05[info]: [23.125.207.133]생성되었습니다.:\n16:27:05[info]: [23.125.207.134]생성되었습니다.:\n16:27:05[info]: [23.125.207.135]생성되었습니다.:\n16:27:05[info]: [23.125.207.136]생성되었습니다.:\n16:27:05[info]: [23.125.207.137]생성되었습니다.:\n16:27:05[info]: [23.125.207.138]생성되었습니다.:\n16:27:05[info]: [23.125.207.139]생성되었습니다.:\n16:27:05[info]: [23.125.207.140]생성되었습니다.:\n16:27:05[info]: [23.125.207.141]생성되었습니다.:\n16:27:05[info]: [23.125.207.142]생성되었습니다.:\n16:27:05[info]: [23.125.207.143]생성되었습니다.:\n16:27:05[info]: [23.125.207.144]생성되었습니다.:\n16:27:05[info]: [23.125.207.145]생성되었습니다.:\n16:27:05[info]: [23.125.207.146]생성되었습니다.:\n16:27:05[info]: [23.125.207.147]생성되었습니다.:\n16:27:05[info]: [23.125.207.148]생성되었습니다.:\n16:27:05[info]: [23.125.207.149]생성되었습니다.:\n16:27:05[info]: [23.125.207.150]생성되었습니다.:\n16:27:05[info]: [23.125.207.151]생성되었습니다.:\n16:27:05[info]: [23.125.207.152]생성되었습니다.:\n16:27:05[info]: [23.125.207.153]생성되었습니다.:\n16:27:05[info]: [23.125.207.154]생성되었습니다.:\n16:27:05[info]: [23.125.207.155]생성되었습니다.:\n16:27:05[info]: [23.125.207.156]생성되었습니다.:\n16:27:05[info]: [23.125.207.157]생성되었습니다.:\n16:27:05[info]: [23.125.207.158]생성되었습니다.:\n16:27:05[info]: [23.125.207.159]생성되었습니다.:\n16:27:05[info]: [23.125.207.160]생성되었습니다.:\n16:27:05[info]: [23.125.207.161]생성되었습니다.:\n16:27:05[info]: [23.125.207.162]생성되었습니다.:\n16:27:05[info]: [23.125.207.163]생성되었습니다.:\n16:27:05[info]: [23.125.207.164]생성되었습니다.:\n16:27:05[info]: [23.125.207.165]생성되었습니다.:\n16:27:05[info]: [23.125.207.166]생성되었습니다.:\n16:27:05[info]: [23.125.207.167]생성되었습니다.:\n16:27:05[info]: [23.125.207.168]생성되었습니다.:\n16:27:05[info]: [23.125.207.169]생성되었습니다.:\n16:27:05[info]: [23.125.207.170]생성되었습니다.:\n16:27:05[info]: [23.125.207.171]생성되었습니다.:\n16:27:05[info]: [23.125.207.172]생성되었습니다.:\n16:27:05[info]: [23.125.207.173]생성되었습니다.:\n16:27:05[info]: [23.125.207.174]생성되었습니다.:\n16:27:05[info]: [23.125.207.175]생성되었습니다.:\n16:27:05[info]: [23.125.207.176]생성되었습니다.:\n16:27:05[info]: [23.125.207.177]생성되었습니다.:\n16:27:05[info]: [23.125.207.178]생성되었습니다.:\n16:27:05[info]: [23.125.207.179]생성되었습니다.:\n16:27:05[info]: [23.125.207.180]생성되었습니다.:\n16:27:05[info]: [23.125.207.181]생성되었습니다.:\n16:27:05[info]: [23.125.207.182]생성되었습니다.:\n16:27:05[info]: [23.125.207.183]생성되었습니다.:\n16:27:05[info]: [23.125.207.184]생성되었습니다.:\n16:27:05[info]: [23.125.207.185]생성되었습니다.:\n16:27:05[info]: [23.125.207.186]생성되었습니다.:\n16:27:05[info]: [23.125.207.187]생성되었습니다.:\n16:27:05[info]: [23.125.207.188]생성되었습니다.:\n16:27:05[info]: [23.125.207.189]생성되었습니다.:\n16:27:05[info]: [23.125.207.190]생성되었습니다.:\n16:27:05[info]: [23.125.207.191]생성되었습니다.:\n16:27:05[info]: [23.125.207.192]생성되었습니다.:\n16:27:05[info]: [23.125.207.193]생성되었습니다.:\n16:27:05[info]: [23.125.207.194]생성되었습니다.:\n16:27:05[info]: [23.125.207.195]생성되었습니다.:\n16:27:05[info]: [23.125.207.196]생성되었습니다.:\n16:27:05[info]: [23.125.207.197]생성되었습니다.:\n16:27:05[info]: [23.125.207.198]생성되었습니다.:\n16:27:05[info]: [23.125.207.199]생성되었습니다.:\n16:27:05[info]: [23.125.207.200]생성되었습니다.:\n16:27:05[info]: [23.125.207.201]생성되었습니다.:\n16:27:05[info]: [23.125.207.202]생성되었습니다.:\n16:27:05[info]: [23.125.207.203]생성되었습니다.:\n16:27:05[info]: [23.125.207.204]생성되었습니다.:\n16:27:05[info]: [23.125.207.205]생성되었습니다.:\n16:27:05[info]: [23.125.207.206]생성되었습니다.:\n16:27:05[info]: [23.125.207.207]생성되었습니다.:\n16:27:05[info]: [23.125.207.208]생성되었습니다.:\n16:27:05[info]: [23.125.207.209]생성되었습니다.:\n16:27:05[info]: [23.125.207.210]생성되었습니다.:\n16:27:05[info]: [23.125.207.211]생성되었습니다.:\n16:27:05[info]: [23.125.207.212]생성되었습니다.:\n16:27:05[info]: [23.125.207.213]생성되었습니다.:\n16:27:05[info]: [23.125.207.214]생성되었습니다.:\n16:27:05[info]: [23.125.207.215]생성되었습니다.:\n16:27:05[info]: [23.125.207.216]생성되었습니다.:\n16:27:05[info]: [23.125.207.217]생성되었습니다.:\n16:27:05[info]: [23.125.207.218]생성되었습니다.:\n16:27:05[info]: [23.125.207.219]생성되었습니다.:\n16:27:05[info]: [23.125.207.220]생성되었습니다.:\n16:27:05[info]: [23.125.207.221]생성되었습니다.:\n16:27:05[info]: [23.125.207.222]생성되었습니다.:\n16:27:05[info]: [23.125.207.223]생성되었습니다.:\n16:27:05[info]: [23.125.207.224]생성되었습니다.:\n16:27:05[info]: [23.125.207.225]생성되었습니다.:\n16:27:05[info]: [23.125.207.226]생성되었습니다.:\n16:27:05[info]: [23.125.207.227]생성되었습니다.:\n16:27:05[info]: [23.125.207.228]생성되었습니다.:\n16:27:05[info]: [23.125.207.229]생성되었습니다.:\n16:27:05[info]: [23.125.207.230]생성되었습니다.:\n16:27:05[info]: [23.125.207.231]생성되었습니다.:\n16:27:05[info]: [23.125.207.232]생성되었습니다.:\n16:27:05[info]: [23.125.207.233]생성되었습니다.:\n16:27:05[info]: [23.125.207.234]생성되었습니다.:\n16:27:05[info]: [23.125.207.235]생성되었습니다.:\n16:27:05[info]: [23.125.207.236]생성되었습니다.:\n16:27:05[info]: [23.125.207.237]생성되었습니다.:\n16:27:05[info]: [23.125.207.238]생성되었습니다.:\n16:27:05[info]: [23.125.207.239]생성되었습니다.:\n16:27:05[info]: [23.125.207.240]생성되었습니다.:\n16:27:05[info]: [23.125.207.241]생성되었습니다.:\n16:27:05[info]: [23.125.207.242]생성되었습니다.:\n16:27:05[info]: [23.125.207.243]생성되었습니다.:\n16:27:05[info]: [23.125.207.244]생성되었습니다.:\n16:27:05[info]: [23.125.207.245]생성되었습니다.:\n16:27:05[info]: [23.125.207.246]생성되었습니다.:\n16:27:05[info]: [23.125.207.247]생성되었습니다.:\n16:27:05[info]: [23.125.207.248]생성되었습니다.:\n16:27:05[info]: [23.125.207.249]생성되었습니다.:\n16:27:05[info]: [23.125.207.250]생성되었습니다.:\n16:27:05[info]: [23.125.207.251]생성되었습니다.:\n16:27:05[info]: [23.125.207.252]생성되었습니다.:\n16:27:05[info]: [23.125.207.253]생성되었습니다.:\n16:27:05[info]: [23.125.207.254]생성되었습니다.:\n16:27:05[info]: [23.125.207.255]생성되었습니다.:','normal',NULL,'2025-08-25 07:27:05',NULL),(3,1,'Equipment/Line->create 작업이 성공적으로 완료되었습니다.','16:27:48[info]: [USEN01 1G]생성되었습니다.:\n16:27:48[info]: [13.38.28.0]생성되었습니다.:\n16:27:48[info]: [13.38.28.1]생성되었습니다.:\n16:27:48[info]: [13.38.28.2]생성되었습니다.:\n16:27:48[info]: [13.38.28.3]생성되었습니다.:\n16:27:48[info]: [13.38.28.4]생성되었습니다.:\n16:27:48[info]: [13.38.28.5]생성되었습니다.:\n16:27:48[info]: [13.38.28.6]생성되었습니다.:\n16:27:48[info]: [13.38.28.7]생성되었습니다.:\n16:27:48[info]: [13.38.28.8]생성되었습니다.:\n16:27:48[info]: [13.38.28.9]생성되었습니다.:\n16:27:48[info]: [13.38.28.10]생성되었습니다.:\n16:27:48[info]: [13.38.28.11]생성되었습니다.:\n16:27:48[info]: [13.38.28.12]생성되었습니다.:\n16:27:48[info]: [13.38.28.13]생성되었습니다.:\n16:27:48[info]: [13.38.28.14]생성되었습니다.:\n16:27:48[info]: [13.38.28.15]생성되었습니다.:\n16:27:48[info]: [13.38.28.16]생성되었습니다.:\n16:27:48[info]: [13.38.28.17]생성되었습니다.:\n16:27:48[info]: [13.38.28.18]생성되었습니다.:\n16:27:48[info]: [13.38.28.19]생성되었습니다.:\n16:27:48[info]: [13.38.28.20]생성되었습니다.:\n16:27:48[info]: [13.38.28.21]생성되었습니다.:\n16:27:48[info]: [13.38.28.22]생성되었습니다.:\n16:27:48[info]: [13.38.28.23]생성되었습니다.:\n16:27:48[info]: [13.38.28.24]생성되었습니다.:\n16:27:48[info]: [13.38.28.25]생성되었습니다.:\n16:27:48[info]: [13.38.28.26]생성되었습니다.:\n16:27:48[info]: [13.38.28.27]생성되었습니다.:\n16:27:48[info]: [13.38.28.28]생성되었습니다.:\n16:27:48[info]: [13.38.28.29]생성되었습니다.:\n16:27:48[info]: [13.38.28.30]생성되었습니다.:\n16:27:48[info]: [13.38.28.31]생성되었습니다.:\n16:27:48[info]: [13.38.28.32]생성되었습니다.:\n16:27:48[info]: [13.38.28.33]생성되었습니다.:\n16:27:48[info]: [13.38.28.34]생성되었습니다.:\n16:27:48[info]: [13.38.28.35]생성되었습니다.:\n16:27:48[info]: [13.38.28.36]생성되었습니다.:\n16:27:48[info]: [13.38.28.37]생성되었습니다.:\n16:27:48[info]: [13.38.28.38]생성되었습니다.:\n16:27:48[info]: [13.38.28.39]생성되었습니다.:\n16:27:48[info]: [13.38.28.40]생성되었습니다.:\n16:27:48[info]: [13.38.28.41]생성되었습니다.:\n16:27:48[info]: [13.38.28.42]생성되었습니다.:\n16:27:48[info]: [13.38.28.43]생성되었습니다.:\n16:27:48[info]: [13.38.28.44]생성되었습니다.:\n16:27:48[info]: [13.38.28.45]생성되었습니다.:\n16:27:48[info]: [13.38.28.46]생성되었습니다.:\n16:27:48[info]: [13.38.28.47]생성되었습니다.:\n16:27:48[info]: [13.38.28.48]생성되었습니다.:\n16:27:48[info]: [13.38.28.49]생성되었습니다.:\n16:27:48[info]: [13.38.28.50]생성되었습니다.:\n16:27:48[info]: [13.38.28.51]생성되었습니다.:\n16:27:48[info]: [13.38.28.52]생성되었습니다.:\n16:27:48[info]: [13.38.28.53]생성되었습니다.:\n16:27:48[info]: [13.38.28.54]생성되었습니다.:\n16:27:48[info]: [13.38.28.55]생성되었습니다.:\n16:27:48[info]: [13.38.28.56]생성되었습니다.:\n16:27:48[info]: [13.38.28.57]생성되었습니다.:\n16:27:48[info]: [13.38.28.58]생성되었습니다.:\n16:27:48[info]: [13.38.28.59]생성되었습니다.:\n16:27:48[info]: [13.38.28.60]생성되었습니다.:\n16:27:48[info]: [13.38.28.61]생성되었습니다.:\n16:27:48[info]: [13.38.28.62]생성되었습니다.:\n16:27:48[info]: [13.38.28.63]생성되었습니다.:\n16:27:48[info]: [13.38.28.64]생성되었습니다.:\n16:27:48[info]: [13.38.28.65]생성되었습니다.:\n16:27:48[info]: [13.38.28.66]생성되었습니다.:\n16:27:48[info]: [13.38.28.67]생성되었습니다.:\n16:27:48[info]: [13.38.28.68]생성되었습니다.:\n16:27:48[info]: [13.38.28.69]생성되었습니다.:\n16:27:48[info]: [13.38.28.70]생성되었습니다.:\n16:27:48[info]: [13.38.28.71]생성되었습니다.:\n16:27:48[info]: [13.38.28.72]생성되었습니다.:\n16:27:48[info]: [13.38.28.73]생성되었습니다.:\n16:27:48[info]: [13.38.28.74]생성되었습니다.:\n16:27:48[info]: [13.38.28.75]생성되었습니다.:\n16:27:48[info]: [13.38.28.76]생성되었습니다.:\n16:27:48[info]: [13.38.28.77]생성되었습니다.:\n16:27:48[info]: [13.38.28.78]생성되었습니다.:\n16:27:48[info]: [13.38.28.79]생성되었습니다.:\n16:27:48[info]: [13.38.28.80]생성되었습니다.:\n16:27:48[info]: [13.38.28.81]생성되었습니다.:\n16:27:48[info]: [13.38.28.82]생성되었습니다.:\n16:27:48[info]: [13.38.28.83]생성되었습니다.:\n16:27:48[info]: [13.38.28.84]생성되었습니다.:\n16:27:48[info]: [13.38.28.85]생성되었습니다.:\n16:27:48[info]: [13.38.28.86]생성되었습니다.:\n16:27:48[info]: [13.38.28.87]생성되었습니다.:\n16:27:48[info]: [13.38.28.88]생성되었습니다.:\n16:27:48[info]: [13.38.28.89]생성되었습니다.:\n16:27:48[info]: [13.38.28.90]생성되었습니다.:\n16:27:48[info]: [13.38.28.91]생성되었습니다.:\n16:27:48[info]: [13.38.28.92]생성되었습니다.:\n16:27:48[info]: [13.38.28.93]생성되었습니다.:\n16:27:48[info]: [13.38.28.94]생성되었습니다.:\n16:27:48[info]: [13.38.28.95]생성되었습니다.:\n16:27:48[info]: [13.38.28.96]생성되었습니다.:\n16:27:48[info]: [13.38.28.97]생성되었습니다.:\n16:27:48[info]: [13.38.28.98]생성되었습니다.:\n16:27:48[info]: [13.38.28.99]생성되었습니다.:\n16:27:48[info]: [13.38.28.100]생성되었습니다.:\n16:27:48[info]: [13.38.28.101]생성되었습니다.:\n16:27:48[info]: [13.38.28.102]생성되었습니다.:\n16:27:48[info]: [13.38.28.103]생성되었습니다.:\n16:27:48[info]: [13.38.28.104]생성되었습니다.:\n16:27:48[info]: [13.38.28.105]생성되었습니다.:\n16:27:48[info]: [13.38.28.106]생성되었습니다.:\n16:27:48[info]: [13.38.28.107]생성되었습니다.:\n16:27:48[info]: [13.38.28.108]생성되었습니다.:\n16:27:48[info]: [13.38.28.109]생성되었습니다.:\n16:27:48[info]: [13.38.28.110]생성되었습니다.:\n16:27:48[info]: [13.38.28.111]생성되었습니다.:\n16:27:48[info]: [13.38.28.112]생성되었습니다.:\n16:27:48[info]: [13.38.28.113]생성되었습니다.:\n16:27:48[info]: [13.38.28.114]생성되었습니다.:\n16:27:48[info]: [13.38.28.115]생성되었습니다.:\n16:27:48[info]: [13.38.28.116]생성되었습니다.:\n16:27:48[info]: [13.38.28.117]생성되었습니다.:\n16:27:48[info]: [13.38.28.118]생성되었습니다.:\n16:27:48[info]: [13.38.28.119]생성되었습니다.:\n16:27:48[info]: [13.38.28.120]생성되었습니다.:\n16:27:48[info]: [13.38.28.121]생성되었습니다.:\n16:27:48[info]: [13.38.28.122]생성되었습니다.:\n16:27:48[info]: [13.38.28.123]생성되었습니다.:\n16:27:48[info]: [13.38.28.124]생성되었습니다.:\n16:27:48[info]: [13.38.28.125]생성되었습니다.:\n16:27:48[info]: [13.38.28.126]생성되었습니다.:\n16:27:48[info]: [13.38.28.127]생성되었습니다.:\n16:27:48[info]: [13.38.28.128]생성되었습니다.:\n16:27:48[info]: [13.38.28.129]생성되었습니다.:\n16:27:48[info]: [13.38.28.130]생성되었습니다.:\n16:27:48[info]: [13.38.28.131]생성되었습니다.:\n16:27:48[info]: [13.38.28.132]생성되었습니다.:\n16:27:48[info]: [13.38.28.133]생성되었습니다.:\n16:27:48[info]: [13.38.28.134]생성되었습니다.:\n16:27:48[info]: [13.38.28.135]생성되었습니다.:\n16:27:48[info]: [13.38.28.136]생성되었습니다.:\n16:27:48[info]: [13.38.28.137]생성되었습니다.:\n16:27:48[info]: [13.38.28.138]생성되었습니다.:\n16:27:48[info]: [13.38.28.139]생성되었습니다.:\n16:27:48[info]: [13.38.28.140]생성되었습니다.:\n16:27:48[info]: [13.38.28.141]생성되었습니다.:\n16:27:48[info]: [13.38.28.142]생성되었습니다.:\n16:27:48[info]: [13.38.28.143]생성되었습니다.:\n16:27:48[info]: [13.38.28.144]생성되었습니다.:\n16:27:48[info]: [13.38.28.145]생성되었습니다.:\n16:27:48[info]: [13.38.28.146]생성되었습니다.:\n16:27:48[info]: [13.38.28.147]생성되었습니다.:\n16:27:48[info]: [13.38.28.148]생성되었습니다.:\n16:27:48[info]: [13.38.28.149]생성되었습니다.:\n16:27:48[info]: [13.38.28.150]생성되었습니다.:\n16:27:48[info]: [13.38.28.151]생성되었습니다.:\n16:27:48[info]: [13.38.28.152]생성되었습니다.:\n16:27:48[info]: [13.38.28.153]생성되었습니다.:\n16:27:48[info]: [13.38.28.154]생성되었습니다.:\n16:27:48[info]: [13.38.28.155]생성되었습니다.:\n16:27:48[info]: [13.38.28.156]생성되었습니다.:\n16:27:48[info]: [13.38.28.157]생성되었습니다.:\n16:27:48[info]: [13.38.28.158]생성되었습니다.:\n16:27:48[info]: [13.38.28.159]생성되었습니다.:\n16:27:48[info]: [13.38.28.160]생성되었습니다.:\n16:27:48[info]: [13.38.28.161]생성되었습니다.:\n16:27:48[info]: [13.38.28.162]생성되었습니다.:\n16:27:48[info]: [13.38.28.163]생성되었습니다.:\n16:27:48[info]: [13.38.28.164]생성되었습니다.:\n16:27:48[info]: [13.38.28.165]생성되었습니다.:\n16:27:48[info]: [13.38.28.166]생성되었습니다.:\n16:27:48[info]: [13.38.28.167]생성되었습니다.:\n16:27:48[info]: [13.38.28.168]생성되었습니다.:\n16:27:48[info]: [13.38.28.169]생성되었습니다.:\n16:27:48[info]: [13.38.28.170]생성되었습니다.:\n16:27:48[info]: [13.38.28.171]생성되었습니다.:\n16:27:48[info]: [13.38.28.172]생성되었습니다.:\n16:27:48[info]: [13.38.28.173]생성되었습니다.:\n16:27:48[info]: [13.38.28.174]생성되었습니다.:\n16:27:48[info]: [13.38.28.175]생성되었습니다.:\n16:27:48[info]: [13.38.28.176]생성되었습니다.:\n16:27:48[info]: [13.38.28.177]생성되었습니다.:\n16:27:48[info]: [13.38.28.178]생성되었습니다.:\n16:27:48[info]: [13.38.28.179]생성되었습니다.:\n16:27:48[info]: [13.38.28.180]생성되었습니다.:\n16:27:48[info]: [13.38.28.181]생성되었습니다.:\n16:27:48[info]: [13.38.28.182]생성되었습니다.:\n16:27:48[info]: [13.38.28.183]생성되었습니다.:\n16:27:48[info]: [13.38.28.184]생성되었습니다.:\n16:27:48[info]: [13.38.28.185]생성되었습니다.:\n16:27:48[info]: [13.38.28.186]생성되었습니다.:\n16:27:48[info]: [13.38.28.187]생성되었습니다.:\n16:27:48[info]: [13.38.28.188]생성되었습니다.:\n16:27:48[info]: [13.38.28.189]생성되었습니다.:\n16:27:48[info]: [13.38.28.190]생성되었습니다.:\n16:27:48[info]: [13.38.28.191]생성되었습니다.:\n16:27:48[info]: [13.38.28.192]생성되었습니다.:\n16:27:48[info]: [13.38.28.193]생성되었습니다.:\n16:27:48[info]: [13.38.28.194]생성되었습니다.:\n16:27:48[info]: [13.38.28.195]생성되었습니다.:\n16:27:48[info]: [13.38.28.196]생성되었습니다.:\n16:27:48[info]: [13.38.28.197]생성되었습니다.:\n16:27:48[info]: [13.38.28.198]생성되었습니다.:\n16:27:48[info]: [13.38.28.199]생성되었습니다.:\n16:27:48[info]: [13.38.28.200]생성되었습니다.:\n16:27:48[info]: [13.38.28.201]생성되었습니다.:\n16:27:48[info]: [13.38.28.202]생성되었습니다.:\n16:27:48[info]: [13.38.28.203]생성되었습니다.:\n16:27:48[info]: [13.38.28.204]생성되었습니다.:\n16:27:48[info]: [13.38.28.205]생성되었습니다.:\n16:27:48[info]: [13.38.28.206]생성되었습니다.:\n16:27:48[info]: [13.38.28.207]생성되었습니다.:\n16:27:48[info]: [13.38.28.208]생성되었습니다.:\n16:27:48[info]: [13.38.28.209]생성되었습니다.:\n16:27:48[info]: [13.38.28.210]생성되었습니다.:\n16:27:48[info]: [13.38.28.211]생성되었습니다.:\n16:27:48[info]: [13.38.28.212]생성되었습니다.:\n16:27:48[info]: [13.38.28.213]생성되었습니다.:\n16:27:48[info]: [13.38.28.214]생성되었습니다.:\n16:27:48[info]: [13.38.28.215]생성되었습니다.:\n16:27:48[info]: [13.38.28.216]생성되었습니다.:\n16:27:48[info]: [13.38.28.217]생성되었습니다.:\n16:27:48[info]: [13.38.28.218]생성되었습니다.:\n16:27:48[info]: [13.38.28.219]생성되었습니다.:\n16:27:48[info]: [13.38.28.220]생성되었습니다.:\n16:27:48[info]: [13.38.28.221]생성되었습니다.:\n16:27:48[info]: [13.38.28.222]생성되었습니다.:\n16:27:48[info]: [13.38.28.223]생성되었습니다.:\n16:27:48[info]: [13.38.28.224]생성되었습니다.:\n16:27:48[info]: [13.38.28.225]생성되었습니다.:\n16:27:48[info]: [13.38.28.226]생성되었습니다.:\n16:27:48[info]: [13.38.28.227]생성되었습니다.:\n16:27:48[info]: [13.38.28.228]생성되었습니다.:\n16:27:48[info]: [13.38.28.229]생성되었습니다.:\n16:27:48[info]: [13.38.28.230]생성되었습니다.:\n16:27:48[info]: [13.38.28.231]생성되었습니다.:\n16:27:48[info]: [13.38.28.232]생성되었습니다.:\n16:27:48[info]: [13.38.28.233]생성되었습니다.:\n16:27:48[info]: [13.38.28.234]생성되었습니다.:\n16:27:48[info]: [13.38.28.235]생성되었습니다.:\n16:27:48[info]: [13.38.28.236]생성되었습니다.:\n16:27:48[info]: [13.38.28.237]생성되었습니다.:\n16:27:48[info]: [13.38.28.238]생성되었습니다.:\n16:27:48[info]: [13.38.28.239]생성되었습니다.:\n16:27:48[info]: [13.38.28.240]생성되었습니다.:\n16:27:48[info]: [13.38.28.241]생성되었습니다.:\n16:27:48[info]: [13.38.28.242]생성되었습니다.:\n16:27:48[info]: [13.38.28.243]생성되었습니다.:\n16:27:48[info]: [13.38.28.244]생성되었습니다.:\n16:27:48[info]: [13.38.28.245]생성되었습니다.:\n16:27:48[info]: [13.38.28.246]생성되었습니다.:\n16:27:48[info]: [13.38.28.247]생성되었습니다.:\n16:27:48[info]: [13.38.28.248]생성되었습니다.:\n16:27:48[info]: [13.38.28.249]생성되었습니다.:\n16:27:48[info]: [13.38.28.250]생성되었습니다.:\n16:27:48[info]: [13.38.28.251]생성되었습니다.:\n16:27:48[info]: [13.38.28.252]생성되었습니다.:\n16:27:48[info]: [13.38.28.253]생성되었습니다.:\n16:27:48[info]: [13.38.28.254]생성되었습니다.:\n16:27:48[info]: [13.38.28.255]생성되었습니다.:','normal',NULL,'2025-08-25 07:27:48',NULL),(4,1,'Equipment/Server->create Equipment/Server 작업 데이터 검증 오류발생\nThe type field is required.\nThe title field is required.\nThe price field is required.\nThe manufactur_at field is required.\nThe status field is required.','16:51:55[debug]: Equipment/Server 작업 데이터 검증 오류발생\nThe type field is required.\nThe title field is required.\nThe price field is required.\nThe manufactur_at field is required.\nThe status field is required.','normal',NULL,'2025-08-25 07:51:55',NULL),(5,1,'Equipment/Server->create 서버코드[2508251의 형식이 맞지않습니다. 관리자에게 문의 바랍니다.','16:52:44[debug]: 서버코드[2508251의 형식이 맞지않습니다. 관리자에게 문의 바랍니다.','normal',NULL,'2025-08-25 07:52:44',NULL),(6,1,'Equipment/Server->create 작업이 성공적으로 완료되었습니다.',NULL,'normal',NULL,'2025-08-25 07:53:42',NULL),(7,1,'Equipment/Server->create Server코드가 정의되지 않았습니다','17:02:33[debug]: Server코드가 정의되지 않았습니다','normal',NULL,'2025-08-25 08:02:33',NULL),(8,1,'Equipment/Server->create There is no data to insert.','18:48:40[info]: [HP DL360 Gen6]생성되었습니다.:\n18:48:40[debug]: There is no data to insert.','normal',NULL,'2025-08-25 09:48:40',NULL),(9,1,'Equipment/Server->create There is no data to insert.','18:49:11[info]: [HP DL360 Gen6]생성되었습니다.:\n18:49:11[debug]: There is no data to insert.','normal',NULL,'2025-08-25 09:49:11',NULL),(10,1,'User->batchjob foreach() argument must be of type array|object, null given','13:26:19[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:26:19',NULL),(11,1,'User->batchjob foreach() argument must be of type array|object, null given','13:27:31[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:27:31',NULL),(12,1,'User->batchjob foreach() argument must be of type array|object, null given','13:28:24[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:28:24',NULL),(13,1,'User->batchjob foreach() argument must be of type array|object, null given','13:28:39[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:28:39',NULL),(14,1,'User->batchjob foreach() argument must be of type array|object, null given','13:32:38[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:32:38',NULL),(15,1,'User->batchjob foreach() argument must be of type array|object, null given','13:32:53[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:32:53',NULL),(16,1,'User->batchjob foreach() argument must be of type array|object, null given','13:56:04[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:56:04',NULL),(17,1,'User->batchjob foreach() argument must be of type array|object, null given','13:56:09[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:56:09',NULL),(18,1,'User->batchjob foreach() argument must be of type array|object, null given','13:57:27[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:57:27',NULL),(19,1,'Equipment/CS->create 작업이 성공적으로 완료되었습니다.','14:51:16[info]: [13.24.24.53]생성되었습니다.:','normal',NULL,'2025-08-26 05:51:16',NULL),(20,1,'Equipment/CS->create 작업이 성공적으로 완료되었습니다.','14:51:54[info]: [23.34.23.22]생성되었습니다.:','normal',NULL,'2025-08-26 05:51:54',NULL); +INSERT INTO `user_history` VALUES (1,1,'Customer/Client->create 작업이 성공적으로 완료되었습니다.','16:20:27[info]: [TEST0001]생성되었습니다.:\n16:20:27[info]: [TEST0001]수정되였습니다.:','normal',NULL,'2025-08-25 07:20:27',NULL),(2,1,'Equipment/Line->create 작업이 성공적으로 완료되었습니다.','16:27:05[info]: [SoftBank 10G]생성되었습니다.:\n16:27:05[info]: [23.125.207.0]생성되었습니다.:\n16:27:05[info]: [23.125.207.1]생성되었습니다.:\n16:27:05[info]: [23.125.207.2]생성되었습니다.:\n16:27:05[info]: [23.125.207.3]생성되었습니다.:\n16:27:05[info]: [23.125.207.4]생성되었습니다.:\n16:27:05[info]: [23.125.207.5]생성되었습니다.:\n16:27:05[info]: [23.125.207.6]생성되었습니다.:\n16:27:05[info]: [23.125.207.7]생성되었습니다.:\n16:27:05[info]: [23.125.207.8]생성되었습니다.:\n16:27:05[info]: [23.125.207.9]생성되었습니다.:\n16:27:05[info]: [23.125.207.10]생성되었습니다.:\n16:27:05[info]: [23.125.207.11]생성되었습니다.:\n16:27:05[info]: [23.125.207.12]생성되었습니다.:\n16:27:05[info]: [23.125.207.13]생성되었습니다.:\n16:27:05[info]: [23.125.207.14]생성되었습니다.:\n16:27:05[info]: [23.125.207.15]생성되었습니다.:\n16:27:05[info]: [23.125.207.16]생성되었습니다.:\n16:27:05[info]: [23.125.207.17]생성되었습니다.:\n16:27:05[info]: [23.125.207.18]생성되었습니다.:\n16:27:05[info]: [23.125.207.19]생성되었습니다.:\n16:27:05[info]: [23.125.207.20]생성되었습니다.:\n16:27:05[info]: [23.125.207.21]생성되었습니다.:\n16:27:05[info]: [23.125.207.22]생성되었습니다.:\n16:27:05[info]: [23.125.207.23]생성되었습니다.:\n16:27:05[info]: [23.125.207.24]생성되었습니다.:\n16:27:05[info]: [23.125.207.25]생성되었습니다.:\n16:27:05[info]: [23.125.207.26]생성되었습니다.:\n16:27:05[info]: [23.125.207.27]생성되었습니다.:\n16:27:05[info]: [23.125.207.28]생성되었습니다.:\n16:27:05[info]: [23.125.207.29]생성되었습니다.:\n16:27:05[info]: [23.125.207.30]생성되었습니다.:\n16:27:05[info]: [23.125.207.31]생성되었습니다.:\n16:27:05[info]: [23.125.207.32]생성되었습니다.:\n16:27:05[info]: [23.125.207.33]생성되었습니다.:\n16:27:05[info]: [23.125.207.34]생성되었습니다.:\n16:27:05[info]: [23.125.207.35]생성되었습니다.:\n16:27:05[info]: [23.125.207.36]생성되었습니다.:\n16:27:05[info]: [23.125.207.37]생성되었습니다.:\n16:27:05[info]: [23.125.207.38]생성되었습니다.:\n16:27:05[info]: [23.125.207.39]생성되었습니다.:\n16:27:05[info]: [23.125.207.40]생성되었습니다.:\n16:27:05[info]: [23.125.207.41]생성되었습니다.:\n16:27:05[info]: [23.125.207.42]생성되었습니다.:\n16:27:05[info]: [23.125.207.43]생성되었습니다.:\n16:27:05[info]: [23.125.207.44]생성되었습니다.:\n16:27:05[info]: [23.125.207.45]생성되었습니다.:\n16:27:05[info]: [23.125.207.46]생성되었습니다.:\n16:27:05[info]: [23.125.207.47]생성되었습니다.:\n16:27:05[info]: [23.125.207.48]생성되었습니다.:\n16:27:05[info]: [23.125.207.49]생성되었습니다.:\n16:27:05[info]: [23.125.207.50]생성되었습니다.:\n16:27:05[info]: [23.125.207.51]생성되었습니다.:\n16:27:05[info]: [23.125.207.52]생성되었습니다.:\n16:27:05[info]: [23.125.207.53]생성되었습니다.:\n16:27:05[info]: [23.125.207.54]생성되었습니다.:\n16:27:05[info]: [23.125.207.55]생성되었습니다.:\n16:27:05[info]: [23.125.207.56]생성되었습니다.:\n16:27:05[info]: [23.125.207.57]생성되었습니다.:\n16:27:05[info]: [23.125.207.58]생성되었습니다.:\n16:27:05[info]: [23.125.207.59]생성되었습니다.:\n16:27:05[info]: [23.125.207.60]생성되었습니다.:\n16:27:05[info]: [23.125.207.61]생성되었습니다.:\n16:27:05[info]: [23.125.207.62]생성되었습니다.:\n16:27:05[info]: [23.125.207.63]생성되었습니다.:\n16:27:05[info]: [23.125.207.64]생성되었습니다.:\n16:27:05[info]: [23.125.207.65]생성되었습니다.:\n16:27:05[info]: [23.125.207.66]생성되었습니다.:\n16:27:05[info]: [23.125.207.67]생성되었습니다.:\n16:27:05[info]: [23.125.207.68]생성되었습니다.:\n16:27:05[info]: [23.125.207.69]생성되었습니다.:\n16:27:05[info]: [23.125.207.70]생성되었습니다.:\n16:27:05[info]: [23.125.207.71]생성되었습니다.:\n16:27:05[info]: [23.125.207.72]생성되었습니다.:\n16:27:05[info]: [23.125.207.73]생성되었습니다.:\n16:27:05[info]: [23.125.207.74]생성되었습니다.:\n16:27:05[info]: [23.125.207.75]생성되었습니다.:\n16:27:05[info]: [23.125.207.76]생성되었습니다.:\n16:27:05[info]: [23.125.207.77]생성되었습니다.:\n16:27:05[info]: [23.125.207.78]생성되었습니다.:\n16:27:05[info]: [23.125.207.79]생성되었습니다.:\n16:27:05[info]: [23.125.207.80]생성되었습니다.:\n16:27:05[info]: [23.125.207.81]생성되었습니다.:\n16:27:05[info]: [23.125.207.82]생성되었습니다.:\n16:27:05[info]: [23.125.207.83]생성되었습니다.:\n16:27:05[info]: [23.125.207.84]생성되었습니다.:\n16:27:05[info]: [23.125.207.85]생성되었습니다.:\n16:27:05[info]: [23.125.207.86]생성되었습니다.:\n16:27:05[info]: [23.125.207.87]생성되었습니다.:\n16:27:05[info]: [23.125.207.88]생성되었습니다.:\n16:27:05[info]: [23.125.207.89]생성되었습니다.:\n16:27:05[info]: [23.125.207.90]생성되었습니다.:\n16:27:05[info]: [23.125.207.91]생성되었습니다.:\n16:27:05[info]: [23.125.207.92]생성되었습니다.:\n16:27:05[info]: [23.125.207.93]생성되었습니다.:\n16:27:05[info]: [23.125.207.94]생성되었습니다.:\n16:27:05[info]: [23.125.207.95]생성되었습니다.:\n16:27:05[info]: [23.125.207.96]생성되었습니다.:\n16:27:05[info]: [23.125.207.97]생성되었습니다.:\n16:27:05[info]: [23.125.207.98]생성되었습니다.:\n16:27:05[info]: [23.125.207.99]생성되었습니다.:\n16:27:05[info]: [23.125.207.100]생성되었습니다.:\n16:27:05[info]: [23.125.207.101]생성되었습니다.:\n16:27:05[info]: [23.125.207.102]생성되었습니다.:\n16:27:05[info]: [23.125.207.103]생성되었습니다.:\n16:27:05[info]: [23.125.207.104]생성되었습니다.:\n16:27:05[info]: [23.125.207.105]생성되었습니다.:\n16:27:05[info]: [23.125.207.106]생성되었습니다.:\n16:27:05[info]: [23.125.207.107]생성되었습니다.:\n16:27:05[info]: [23.125.207.108]생성되었습니다.:\n16:27:05[info]: [23.125.207.109]생성되었습니다.:\n16:27:05[info]: [23.125.207.110]생성되었습니다.:\n16:27:05[info]: [23.125.207.111]생성되었습니다.:\n16:27:05[info]: [23.125.207.112]생성되었습니다.:\n16:27:05[info]: [23.125.207.113]생성되었습니다.:\n16:27:05[info]: [23.125.207.114]생성되었습니다.:\n16:27:05[info]: [23.125.207.115]생성되었습니다.:\n16:27:05[info]: [23.125.207.116]생성되었습니다.:\n16:27:05[info]: [23.125.207.117]생성되었습니다.:\n16:27:05[info]: [23.125.207.118]생성되었습니다.:\n16:27:05[info]: [23.125.207.119]생성되었습니다.:\n16:27:05[info]: [23.125.207.120]생성되었습니다.:\n16:27:05[info]: [23.125.207.121]생성되었습니다.:\n16:27:05[info]: [23.125.207.122]생성되었습니다.:\n16:27:05[info]: [23.125.207.123]생성되었습니다.:\n16:27:05[info]: [23.125.207.124]생성되었습니다.:\n16:27:05[info]: [23.125.207.125]생성되었습니다.:\n16:27:05[info]: [23.125.207.126]생성되었습니다.:\n16:27:05[info]: [23.125.207.127]생성되었습니다.:\n16:27:05[info]: [23.125.207.128]생성되었습니다.:\n16:27:05[info]: [23.125.207.129]생성되었습니다.:\n16:27:05[info]: [23.125.207.130]생성되었습니다.:\n16:27:05[info]: [23.125.207.131]생성되었습니다.:\n16:27:05[info]: [23.125.207.132]생성되었습니다.:\n16:27:05[info]: [23.125.207.133]생성되었습니다.:\n16:27:05[info]: [23.125.207.134]생성되었습니다.:\n16:27:05[info]: [23.125.207.135]생성되었습니다.:\n16:27:05[info]: [23.125.207.136]생성되었습니다.:\n16:27:05[info]: [23.125.207.137]생성되었습니다.:\n16:27:05[info]: [23.125.207.138]생성되었습니다.:\n16:27:05[info]: [23.125.207.139]생성되었습니다.:\n16:27:05[info]: [23.125.207.140]생성되었습니다.:\n16:27:05[info]: [23.125.207.141]생성되었습니다.:\n16:27:05[info]: [23.125.207.142]생성되었습니다.:\n16:27:05[info]: [23.125.207.143]생성되었습니다.:\n16:27:05[info]: [23.125.207.144]생성되었습니다.:\n16:27:05[info]: [23.125.207.145]생성되었습니다.:\n16:27:05[info]: [23.125.207.146]생성되었습니다.:\n16:27:05[info]: [23.125.207.147]생성되었습니다.:\n16:27:05[info]: [23.125.207.148]생성되었습니다.:\n16:27:05[info]: [23.125.207.149]생성되었습니다.:\n16:27:05[info]: [23.125.207.150]생성되었습니다.:\n16:27:05[info]: [23.125.207.151]생성되었습니다.:\n16:27:05[info]: [23.125.207.152]생성되었습니다.:\n16:27:05[info]: [23.125.207.153]생성되었습니다.:\n16:27:05[info]: [23.125.207.154]생성되었습니다.:\n16:27:05[info]: [23.125.207.155]생성되었습니다.:\n16:27:05[info]: [23.125.207.156]생성되었습니다.:\n16:27:05[info]: [23.125.207.157]생성되었습니다.:\n16:27:05[info]: [23.125.207.158]생성되었습니다.:\n16:27:05[info]: [23.125.207.159]생성되었습니다.:\n16:27:05[info]: [23.125.207.160]생성되었습니다.:\n16:27:05[info]: [23.125.207.161]생성되었습니다.:\n16:27:05[info]: [23.125.207.162]생성되었습니다.:\n16:27:05[info]: [23.125.207.163]생성되었습니다.:\n16:27:05[info]: [23.125.207.164]생성되었습니다.:\n16:27:05[info]: [23.125.207.165]생성되었습니다.:\n16:27:05[info]: [23.125.207.166]생성되었습니다.:\n16:27:05[info]: [23.125.207.167]생성되었습니다.:\n16:27:05[info]: [23.125.207.168]생성되었습니다.:\n16:27:05[info]: [23.125.207.169]생성되었습니다.:\n16:27:05[info]: [23.125.207.170]생성되었습니다.:\n16:27:05[info]: [23.125.207.171]생성되었습니다.:\n16:27:05[info]: [23.125.207.172]생성되었습니다.:\n16:27:05[info]: [23.125.207.173]생성되었습니다.:\n16:27:05[info]: [23.125.207.174]생성되었습니다.:\n16:27:05[info]: [23.125.207.175]생성되었습니다.:\n16:27:05[info]: [23.125.207.176]생성되었습니다.:\n16:27:05[info]: [23.125.207.177]생성되었습니다.:\n16:27:05[info]: [23.125.207.178]생성되었습니다.:\n16:27:05[info]: [23.125.207.179]생성되었습니다.:\n16:27:05[info]: [23.125.207.180]생성되었습니다.:\n16:27:05[info]: [23.125.207.181]생성되었습니다.:\n16:27:05[info]: [23.125.207.182]생성되었습니다.:\n16:27:05[info]: [23.125.207.183]생성되었습니다.:\n16:27:05[info]: [23.125.207.184]생성되었습니다.:\n16:27:05[info]: [23.125.207.185]생성되었습니다.:\n16:27:05[info]: [23.125.207.186]생성되었습니다.:\n16:27:05[info]: [23.125.207.187]생성되었습니다.:\n16:27:05[info]: [23.125.207.188]생성되었습니다.:\n16:27:05[info]: [23.125.207.189]생성되었습니다.:\n16:27:05[info]: [23.125.207.190]생성되었습니다.:\n16:27:05[info]: [23.125.207.191]생성되었습니다.:\n16:27:05[info]: [23.125.207.192]생성되었습니다.:\n16:27:05[info]: [23.125.207.193]생성되었습니다.:\n16:27:05[info]: [23.125.207.194]생성되었습니다.:\n16:27:05[info]: [23.125.207.195]생성되었습니다.:\n16:27:05[info]: [23.125.207.196]생성되었습니다.:\n16:27:05[info]: [23.125.207.197]생성되었습니다.:\n16:27:05[info]: [23.125.207.198]생성되었습니다.:\n16:27:05[info]: [23.125.207.199]생성되었습니다.:\n16:27:05[info]: [23.125.207.200]생성되었습니다.:\n16:27:05[info]: [23.125.207.201]생성되었습니다.:\n16:27:05[info]: [23.125.207.202]생성되었습니다.:\n16:27:05[info]: [23.125.207.203]생성되었습니다.:\n16:27:05[info]: [23.125.207.204]생성되었습니다.:\n16:27:05[info]: [23.125.207.205]생성되었습니다.:\n16:27:05[info]: [23.125.207.206]생성되었습니다.:\n16:27:05[info]: [23.125.207.207]생성되었습니다.:\n16:27:05[info]: [23.125.207.208]생성되었습니다.:\n16:27:05[info]: [23.125.207.209]생성되었습니다.:\n16:27:05[info]: [23.125.207.210]생성되었습니다.:\n16:27:05[info]: [23.125.207.211]생성되었습니다.:\n16:27:05[info]: [23.125.207.212]생성되었습니다.:\n16:27:05[info]: [23.125.207.213]생성되었습니다.:\n16:27:05[info]: [23.125.207.214]생성되었습니다.:\n16:27:05[info]: [23.125.207.215]생성되었습니다.:\n16:27:05[info]: [23.125.207.216]생성되었습니다.:\n16:27:05[info]: [23.125.207.217]생성되었습니다.:\n16:27:05[info]: [23.125.207.218]생성되었습니다.:\n16:27:05[info]: [23.125.207.219]생성되었습니다.:\n16:27:05[info]: [23.125.207.220]생성되었습니다.:\n16:27:05[info]: [23.125.207.221]생성되었습니다.:\n16:27:05[info]: [23.125.207.222]생성되었습니다.:\n16:27:05[info]: [23.125.207.223]생성되었습니다.:\n16:27:05[info]: [23.125.207.224]생성되었습니다.:\n16:27:05[info]: [23.125.207.225]생성되었습니다.:\n16:27:05[info]: [23.125.207.226]생성되었습니다.:\n16:27:05[info]: [23.125.207.227]생성되었습니다.:\n16:27:05[info]: [23.125.207.228]생성되었습니다.:\n16:27:05[info]: [23.125.207.229]생성되었습니다.:\n16:27:05[info]: [23.125.207.230]생성되었습니다.:\n16:27:05[info]: [23.125.207.231]생성되었습니다.:\n16:27:05[info]: [23.125.207.232]생성되었습니다.:\n16:27:05[info]: [23.125.207.233]생성되었습니다.:\n16:27:05[info]: [23.125.207.234]생성되었습니다.:\n16:27:05[info]: [23.125.207.235]생성되었습니다.:\n16:27:05[info]: [23.125.207.236]생성되었습니다.:\n16:27:05[info]: [23.125.207.237]생성되었습니다.:\n16:27:05[info]: [23.125.207.238]생성되었습니다.:\n16:27:05[info]: [23.125.207.239]생성되었습니다.:\n16:27:05[info]: [23.125.207.240]생성되었습니다.:\n16:27:05[info]: [23.125.207.241]생성되었습니다.:\n16:27:05[info]: [23.125.207.242]생성되었습니다.:\n16:27:05[info]: [23.125.207.243]생성되었습니다.:\n16:27:05[info]: [23.125.207.244]생성되었습니다.:\n16:27:05[info]: [23.125.207.245]생성되었습니다.:\n16:27:05[info]: [23.125.207.246]생성되었습니다.:\n16:27:05[info]: [23.125.207.247]생성되었습니다.:\n16:27:05[info]: [23.125.207.248]생성되었습니다.:\n16:27:05[info]: [23.125.207.249]생성되었습니다.:\n16:27:05[info]: [23.125.207.250]생성되었습니다.:\n16:27:05[info]: [23.125.207.251]생성되었습니다.:\n16:27:05[info]: [23.125.207.252]생성되었습니다.:\n16:27:05[info]: [23.125.207.253]생성되었습니다.:\n16:27:05[info]: [23.125.207.254]생성되었습니다.:\n16:27:05[info]: [23.125.207.255]생성되었습니다.:','normal',NULL,'2025-08-25 07:27:05',NULL),(3,1,'Equipment/Line->create 작업이 성공적으로 완료되었습니다.','16:27:48[info]: [USEN01 1G]생성되었습니다.:\n16:27:48[info]: [13.38.28.0]생성되었습니다.:\n16:27:48[info]: [13.38.28.1]생성되었습니다.:\n16:27:48[info]: [13.38.28.2]생성되었습니다.:\n16:27:48[info]: [13.38.28.3]생성되었습니다.:\n16:27:48[info]: [13.38.28.4]생성되었습니다.:\n16:27:48[info]: [13.38.28.5]생성되었습니다.:\n16:27:48[info]: [13.38.28.6]생성되었습니다.:\n16:27:48[info]: [13.38.28.7]생성되었습니다.:\n16:27:48[info]: [13.38.28.8]생성되었습니다.:\n16:27:48[info]: [13.38.28.9]생성되었습니다.:\n16:27:48[info]: [13.38.28.10]생성되었습니다.:\n16:27:48[info]: [13.38.28.11]생성되었습니다.:\n16:27:48[info]: [13.38.28.12]생성되었습니다.:\n16:27:48[info]: [13.38.28.13]생성되었습니다.:\n16:27:48[info]: [13.38.28.14]생성되었습니다.:\n16:27:48[info]: [13.38.28.15]생성되었습니다.:\n16:27:48[info]: [13.38.28.16]생성되었습니다.:\n16:27:48[info]: [13.38.28.17]생성되었습니다.:\n16:27:48[info]: [13.38.28.18]생성되었습니다.:\n16:27:48[info]: [13.38.28.19]생성되었습니다.:\n16:27:48[info]: [13.38.28.20]생성되었습니다.:\n16:27:48[info]: [13.38.28.21]생성되었습니다.:\n16:27:48[info]: [13.38.28.22]생성되었습니다.:\n16:27:48[info]: [13.38.28.23]생성되었습니다.:\n16:27:48[info]: [13.38.28.24]생성되었습니다.:\n16:27:48[info]: [13.38.28.25]생성되었습니다.:\n16:27:48[info]: [13.38.28.26]생성되었습니다.:\n16:27:48[info]: [13.38.28.27]생성되었습니다.:\n16:27:48[info]: [13.38.28.28]생성되었습니다.:\n16:27:48[info]: [13.38.28.29]생성되었습니다.:\n16:27:48[info]: [13.38.28.30]생성되었습니다.:\n16:27:48[info]: [13.38.28.31]생성되었습니다.:\n16:27:48[info]: [13.38.28.32]생성되었습니다.:\n16:27:48[info]: [13.38.28.33]생성되었습니다.:\n16:27:48[info]: [13.38.28.34]생성되었습니다.:\n16:27:48[info]: [13.38.28.35]생성되었습니다.:\n16:27:48[info]: [13.38.28.36]생성되었습니다.:\n16:27:48[info]: [13.38.28.37]생성되었습니다.:\n16:27:48[info]: [13.38.28.38]생성되었습니다.:\n16:27:48[info]: [13.38.28.39]생성되었습니다.:\n16:27:48[info]: [13.38.28.40]생성되었습니다.:\n16:27:48[info]: [13.38.28.41]생성되었습니다.:\n16:27:48[info]: [13.38.28.42]생성되었습니다.:\n16:27:48[info]: [13.38.28.43]생성되었습니다.:\n16:27:48[info]: [13.38.28.44]생성되었습니다.:\n16:27:48[info]: [13.38.28.45]생성되었습니다.:\n16:27:48[info]: [13.38.28.46]생성되었습니다.:\n16:27:48[info]: [13.38.28.47]생성되었습니다.:\n16:27:48[info]: [13.38.28.48]생성되었습니다.:\n16:27:48[info]: [13.38.28.49]생성되었습니다.:\n16:27:48[info]: [13.38.28.50]생성되었습니다.:\n16:27:48[info]: [13.38.28.51]생성되었습니다.:\n16:27:48[info]: [13.38.28.52]생성되었습니다.:\n16:27:48[info]: [13.38.28.53]생성되었습니다.:\n16:27:48[info]: [13.38.28.54]생성되었습니다.:\n16:27:48[info]: [13.38.28.55]생성되었습니다.:\n16:27:48[info]: [13.38.28.56]생성되었습니다.:\n16:27:48[info]: [13.38.28.57]생성되었습니다.:\n16:27:48[info]: [13.38.28.58]생성되었습니다.:\n16:27:48[info]: [13.38.28.59]생성되었습니다.:\n16:27:48[info]: [13.38.28.60]생성되었습니다.:\n16:27:48[info]: [13.38.28.61]생성되었습니다.:\n16:27:48[info]: [13.38.28.62]생성되었습니다.:\n16:27:48[info]: [13.38.28.63]생성되었습니다.:\n16:27:48[info]: [13.38.28.64]생성되었습니다.:\n16:27:48[info]: [13.38.28.65]생성되었습니다.:\n16:27:48[info]: [13.38.28.66]생성되었습니다.:\n16:27:48[info]: [13.38.28.67]생성되었습니다.:\n16:27:48[info]: [13.38.28.68]생성되었습니다.:\n16:27:48[info]: [13.38.28.69]생성되었습니다.:\n16:27:48[info]: [13.38.28.70]생성되었습니다.:\n16:27:48[info]: [13.38.28.71]생성되었습니다.:\n16:27:48[info]: [13.38.28.72]생성되었습니다.:\n16:27:48[info]: [13.38.28.73]생성되었습니다.:\n16:27:48[info]: [13.38.28.74]생성되었습니다.:\n16:27:48[info]: [13.38.28.75]생성되었습니다.:\n16:27:48[info]: [13.38.28.76]생성되었습니다.:\n16:27:48[info]: [13.38.28.77]생성되었습니다.:\n16:27:48[info]: [13.38.28.78]생성되었습니다.:\n16:27:48[info]: [13.38.28.79]생성되었습니다.:\n16:27:48[info]: [13.38.28.80]생성되었습니다.:\n16:27:48[info]: [13.38.28.81]생성되었습니다.:\n16:27:48[info]: [13.38.28.82]생성되었습니다.:\n16:27:48[info]: [13.38.28.83]생성되었습니다.:\n16:27:48[info]: [13.38.28.84]생성되었습니다.:\n16:27:48[info]: [13.38.28.85]생성되었습니다.:\n16:27:48[info]: [13.38.28.86]생성되었습니다.:\n16:27:48[info]: [13.38.28.87]생성되었습니다.:\n16:27:48[info]: [13.38.28.88]생성되었습니다.:\n16:27:48[info]: [13.38.28.89]생성되었습니다.:\n16:27:48[info]: [13.38.28.90]생성되었습니다.:\n16:27:48[info]: [13.38.28.91]생성되었습니다.:\n16:27:48[info]: [13.38.28.92]생성되었습니다.:\n16:27:48[info]: [13.38.28.93]생성되었습니다.:\n16:27:48[info]: [13.38.28.94]생성되었습니다.:\n16:27:48[info]: [13.38.28.95]생성되었습니다.:\n16:27:48[info]: [13.38.28.96]생성되었습니다.:\n16:27:48[info]: [13.38.28.97]생성되었습니다.:\n16:27:48[info]: [13.38.28.98]생성되었습니다.:\n16:27:48[info]: [13.38.28.99]생성되었습니다.:\n16:27:48[info]: [13.38.28.100]생성되었습니다.:\n16:27:48[info]: [13.38.28.101]생성되었습니다.:\n16:27:48[info]: [13.38.28.102]생성되었습니다.:\n16:27:48[info]: [13.38.28.103]생성되었습니다.:\n16:27:48[info]: [13.38.28.104]생성되었습니다.:\n16:27:48[info]: [13.38.28.105]생성되었습니다.:\n16:27:48[info]: [13.38.28.106]생성되었습니다.:\n16:27:48[info]: [13.38.28.107]생성되었습니다.:\n16:27:48[info]: [13.38.28.108]생성되었습니다.:\n16:27:48[info]: [13.38.28.109]생성되었습니다.:\n16:27:48[info]: [13.38.28.110]생성되었습니다.:\n16:27:48[info]: [13.38.28.111]생성되었습니다.:\n16:27:48[info]: [13.38.28.112]생성되었습니다.:\n16:27:48[info]: [13.38.28.113]생성되었습니다.:\n16:27:48[info]: [13.38.28.114]생성되었습니다.:\n16:27:48[info]: [13.38.28.115]생성되었습니다.:\n16:27:48[info]: [13.38.28.116]생성되었습니다.:\n16:27:48[info]: [13.38.28.117]생성되었습니다.:\n16:27:48[info]: [13.38.28.118]생성되었습니다.:\n16:27:48[info]: [13.38.28.119]생성되었습니다.:\n16:27:48[info]: [13.38.28.120]생성되었습니다.:\n16:27:48[info]: [13.38.28.121]생성되었습니다.:\n16:27:48[info]: [13.38.28.122]생성되었습니다.:\n16:27:48[info]: [13.38.28.123]생성되었습니다.:\n16:27:48[info]: [13.38.28.124]생성되었습니다.:\n16:27:48[info]: [13.38.28.125]생성되었습니다.:\n16:27:48[info]: [13.38.28.126]생성되었습니다.:\n16:27:48[info]: [13.38.28.127]생성되었습니다.:\n16:27:48[info]: [13.38.28.128]생성되었습니다.:\n16:27:48[info]: [13.38.28.129]생성되었습니다.:\n16:27:48[info]: [13.38.28.130]생성되었습니다.:\n16:27:48[info]: [13.38.28.131]생성되었습니다.:\n16:27:48[info]: [13.38.28.132]생성되었습니다.:\n16:27:48[info]: [13.38.28.133]생성되었습니다.:\n16:27:48[info]: [13.38.28.134]생성되었습니다.:\n16:27:48[info]: [13.38.28.135]생성되었습니다.:\n16:27:48[info]: [13.38.28.136]생성되었습니다.:\n16:27:48[info]: [13.38.28.137]생성되었습니다.:\n16:27:48[info]: [13.38.28.138]생성되었습니다.:\n16:27:48[info]: [13.38.28.139]생성되었습니다.:\n16:27:48[info]: [13.38.28.140]생성되었습니다.:\n16:27:48[info]: [13.38.28.141]생성되었습니다.:\n16:27:48[info]: [13.38.28.142]생성되었습니다.:\n16:27:48[info]: [13.38.28.143]생성되었습니다.:\n16:27:48[info]: [13.38.28.144]생성되었습니다.:\n16:27:48[info]: [13.38.28.145]생성되었습니다.:\n16:27:48[info]: [13.38.28.146]생성되었습니다.:\n16:27:48[info]: [13.38.28.147]생성되었습니다.:\n16:27:48[info]: [13.38.28.148]생성되었습니다.:\n16:27:48[info]: [13.38.28.149]생성되었습니다.:\n16:27:48[info]: [13.38.28.150]생성되었습니다.:\n16:27:48[info]: [13.38.28.151]생성되었습니다.:\n16:27:48[info]: [13.38.28.152]생성되었습니다.:\n16:27:48[info]: [13.38.28.153]생성되었습니다.:\n16:27:48[info]: [13.38.28.154]생성되었습니다.:\n16:27:48[info]: [13.38.28.155]생성되었습니다.:\n16:27:48[info]: [13.38.28.156]생성되었습니다.:\n16:27:48[info]: [13.38.28.157]생성되었습니다.:\n16:27:48[info]: [13.38.28.158]생성되었습니다.:\n16:27:48[info]: [13.38.28.159]생성되었습니다.:\n16:27:48[info]: [13.38.28.160]생성되었습니다.:\n16:27:48[info]: [13.38.28.161]생성되었습니다.:\n16:27:48[info]: [13.38.28.162]생성되었습니다.:\n16:27:48[info]: [13.38.28.163]생성되었습니다.:\n16:27:48[info]: [13.38.28.164]생성되었습니다.:\n16:27:48[info]: [13.38.28.165]생성되었습니다.:\n16:27:48[info]: [13.38.28.166]생성되었습니다.:\n16:27:48[info]: [13.38.28.167]생성되었습니다.:\n16:27:48[info]: [13.38.28.168]생성되었습니다.:\n16:27:48[info]: [13.38.28.169]생성되었습니다.:\n16:27:48[info]: [13.38.28.170]생성되었습니다.:\n16:27:48[info]: [13.38.28.171]생성되었습니다.:\n16:27:48[info]: [13.38.28.172]생성되었습니다.:\n16:27:48[info]: [13.38.28.173]생성되었습니다.:\n16:27:48[info]: [13.38.28.174]생성되었습니다.:\n16:27:48[info]: [13.38.28.175]생성되었습니다.:\n16:27:48[info]: [13.38.28.176]생성되었습니다.:\n16:27:48[info]: [13.38.28.177]생성되었습니다.:\n16:27:48[info]: [13.38.28.178]생성되었습니다.:\n16:27:48[info]: [13.38.28.179]생성되었습니다.:\n16:27:48[info]: [13.38.28.180]생성되었습니다.:\n16:27:48[info]: [13.38.28.181]생성되었습니다.:\n16:27:48[info]: [13.38.28.182]생성되었습니다.:\n16:27:48[info]: [13.38.28.183]생성되었습니다.:\n16:27:48[info]: [13.38.28.184]생성되었습니다.:\n16:27:48[info]: [13.38.28.185]생성되었습니다.:\n16:27:48[info]: [13.38.28.186]생성되었습니다.:\n16:27:48[info]: [13.38.28.187]생성되었습니다.:\n16:27:48[info]: [13.38.28.188]생성되었습니다.:\n16:27:48[info]: [13.38.28.189]생성되었습니다.:\n16:27:48[info]: [13.38.28.190]생성되었습니다.:\n16:27:48[info]: [13.38.28.191]생성되었습니다.:\n16:27:48[info]: [13.38.28.192]생성되었습니다.:\n16:27:48[info]: [13.38.28.193]생성되었습니다.:\n16:27:48[info]: [13.38.28.194]생성되었습니다.:\n16:27:48[info]: [13.38.28.195]생성되었습니다.:\n16:27:48[info]: [13.38.28.196]생성되었습니다.:\n16:27:48[info]: [13.38.28.197]생성되었습니다.:\n16:27:48[info]: [13.38.28.198]생성되었습니다.:\n16:27:48[info]: [13.38.28.199]생성되었습니다.:\n16:27:48[info]: [13.38.28.200]생성되었습니다.:\n16:27:48[info]: [13.38.28.201]생성되었습니다.:\n16:27:48[info]: [13.38.28.202]생성되었습니다.:\n16:27:48[info]: [13.38.28.203]생성되었습니다.:\n16:27:48[info]: [13.38.28.204]생성되었습니다.:\n16:27:48[info]: [13.38.28.205]생성되었습니다.:\n16:27:48[info]: [13.38.28.206]생성되었습니다.:\n16:27:48[info]: [13.38.28.207]생성되었습니다.:\n16:27:48[info]: [13.38.28.208]생성되었습니다.:\n16:27:48[info]: [13.38.28.209]생성되었습니다.:\n16:27:48[info]: [13.38.28.210]생성되었습니다.:\n16:27:48[info]: [13.38.28.211]생성되었습니다.:\n16:27:48[info]: [13.38.28.212]생성되었습니다.:\n16:27:48[info]: [13.38.28.213]생성되었습니다.:\n16:27:48[info]: [13.38.28.214]생성되었습니다.:\n16:27:48[info]: [13.38.28.215]생성되었습니다.:\n16:27:48[info]: [13.38.28.216]생성되었습니다.:\n16:27:48[info]: [13.38.28.217]생성되었습니다.:\n16:27:48[info]: [13.38.28.218]생성되었습니다.:\n16:27:48[info]: [13.38.28.219]생성되었습니다.:\n16:27:48[info]: [13.38.28.220]생성되었습니다.:\n16:27:48[info]: [13.38.28.221]생성되었습니다.:\n16:27:48[info]: [13.38.28.222]생성되었습니다.:\n16:27:48[info]: [13.38.28.223]생성되었습니다.:\n16:27:48[info]: [13.38.28.224]생성되었습니다.:\n16:27:48[info]: [13.38.28.225]생성되었습니다.:\n16:27:48[info]: [13.38.28.226]생성되었습니다.:\n16:27:48[info]: [13.38.28.227]생성되었습니다.:\n16:27:48[info]: [13.38.28.228]생성되었습니다.:\n16:27:48[info]: [13.38.28.229]생성되었습니다.:\n16:27:48[info]: [13.38.28.230]생성되었습니다.:\n16:27:48[info]: [13.38.28.231]생성되었습니다.:\n16:27:48[info]: [13.38.28.232]생성되었습니다.:\n16:27:48[info]: [13.38.28.233]생성되었습니다.:\n16:27:48[info]: [13.38.28.234]생성되었습니다.:\n16:27:48[info]: [13.38.28.235]생성되었습니다.:\n16:27:48[info]: [13.38.28.236]생성되었습니다.:\n16:27:48[info]: [13.38.28.237]생성되었습니다.:\n16:27:48[info]: [13.38.28.238]생성되었습니다.:\n16:27:48[info]: [13.38.28.239]생성되었습니다.:\n16:27:48[info]: [13.38.28.240]생성되었습니다.:\n16:27:48[info]: [13.38.28.241]생성되었습니다.:\n16:27:48[info]: [13.38.28.242]생성되었습니다.:\n16:27:48[info]: [13.38.28.243]생성되었습니다.:\n16:27:48[info]: [13.38.28.244]생성되었습니다.:\n16:27:48[info]: [13.38.28.245]생성되었습니다.:\n16:27:48[info]: [13.38.28.246]생성되었습니다.:\n16:27:48[info]: [13.38.28.247]생성되었습니다.:\n16:27:48[info]: [13.38.28.248]생성되었습니다.:\n16:27:48[info]: [13.38.28.249]생성되었습니다.:\n16:27:48[info]: [13.38.28.250]생성되었습니다.:\n16:27:48[info]: [13.38.28.251]생성되었습니다.:\n16:27:48[info]: [13.38.28.252]생성되었습니다.:\n16:27:48[info]: [13.38.28.253]생성되었습니다.:\n16:27:48[info]: [13.38.28.254]생성되었습니다.:\n16:27:48[info]: [13.38.28.255]생성되었습니다.:','normal',NULL,'2025-08-25 07:27:48',NULL),(4,1,'Equipment/Server->create Equipment/Server 작업 데이터 검증 오류발생\nThe type field is required.\nThe title field is required.\nThe price field is required.\nThe manufactur_at field is required.\nThe status field is required.','16:51:55[debug]: Equipment/Server 작업 데이터 검증 오류발생\nThe type field is required.\nThe title field is required.\nThe price field is required.\nThe manufactur_at field is required.\nThe status field is required.','normal',NULL,'2025-08-25 07:51:55',NULL),(5,1,'Equipment/Server->create 서버코드[2508251의 형식이 맞지않습니다. 관리자에게 문의 바랍니다.','16:52:44[debug]: 서버코드[2508251의 형식이 맞지않습니다. 관리자에게 문의 바랍니다.','normal',NULL,'2025-08-25 07:52:44',NULL),(6,1,'Equipment/Server->create 작업이 성공적으로 완료되었습니다.',NULL,'normal',NULL,'2025-08-25 07:53:42',NULL),(7,1,'Equipment/Server->create Server코드가 정의되지 않았습니다','17:02:33[debug]: Server코드가 정의되지 않았습니다','normal',NULL,'2025-08-25 08:02:33',NULL),(8,1,'Equipment/Server->create There is no data to insert.','18:48:40[info]: [HP DL360 Gen6]생성되었습니다.:\n18:48:40[debug]: There is no data to insert.','normal',NULL,'2025-08-25 09:48:40',NULL),(9,1,'Equipment/Server->create There is no data to insert.','18:49:11[info]: [HP DL360 Gen6]생성되었습니다.:\n18:49:11[debug]: There is no data to insert.','normal',NULL,'2025-08-25 09:49:11',NULL),(10,1,'User->batchjob foreach() argument must be of type array|object, null given','13:26:19[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:26:19',NULL),(11,1,'User->batchjob foreach() argument must be of type array|object, null given','13:27:31[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:27:31',NULL),(12,1,'User->batchjob foreach() argument must be of type array|object, null given','13:28:24[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:28:24',NULL),(13,1,'User->batchjob foreach() argument must be of type array|object, null given','13:28:39[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:28:39',NULL),(14,1,'User->batchjob foreach() argument must be of type array|object, null given','13:32:38[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:32:38',NULL),(15,1,'User->batchjob foreach() argument must be of type array|object, null given','13:32:53[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:32:53',NULL),(16,1,'User->batchjob foreach() argument must be of type array|object, null given','13:56:04[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:56:04',NULL),(17,1,'User->batchjob foreach() argument must be of type array|object, null given','13:56:09[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:56:09',NULL),(18,1,'User->batchjob foreach() argument must be of type array|object, null given','13:57:27[debug]: foreach() argument must be of type array|object, null given','normal',NULL,'2025-08-26 04:57:27',NULL),(19,1,'Equipment/CS->create 작업이 성공적으로 완료되었습니다.','14:51:16[info]: [13.24.24.53]생성되었습니다.:','normal',NULL,'2025-08-26 05:51:16',NULL),(20,1,'Equipment/CS->create 작업이 성공적으로 완료되었습니다.','14:51:54[info]: [23.34.23.22]생성되었습니다.:','normal',NULL,'2025-08-26 05:51:54',NULL),(21,1,'Equipment/Server->create 작업이 성공적으로 완료되었습니다.','15:15:57[info]: [HP DL360 Gen7]생성되었습니다.:','normal',NULL,'2025-08-26 06:15:57',NULL),(22,1,'Equipment/Server->batchjob 변경할 조건항목을 선택하셔야합니다.','09:04:51[debug]: 변경할 조건항목을 선택하셔야합니다.','normal',NULL,'2025-08-27 00:04:51',NULL),(23,1,'Equipment/Server->create_form getFormFieldOption에서 partinfo_cpu_uid}의 formOptionDatas 값이 array가 아닙니다.\n\'Equipment/Server.PARTINFO_CPU_UID\'','10:54:49[debug]: getFormFieldOption에서 partinfo_cpu_uid}의 formOptionDatas 값이 array가 아닙니다.\n'Equipment/Server.PARTINFO_CPU_UID'','normal',NULL,'2025-08-27 01:54:49',NULL),(24,1,'Equipment/Server->create_form getFormFieldOption에서 serverpartinfo_cpu_uid}의 formOptionDatas 값이 array가 아닙니다.\n\'Equipment/Server.SERVERPARTINFO_CPU_UID\'','10:56:34[debug]: getFormFieldOption에서 serverpartinfo_cpu_uid}의 formOptionDatas 값이 array가 아닙니다.\n'Equipment/Server.SERVERPARTINFO_CPU_UID'','normal',NULL,'2025-08-27 01:56:34',NULL),(25,1,'Equipment/Server->create Undefined array key \"part\"','15:36:27[info]: [HP DL360 Gen9]생성되었습니다.:\n15:36:27[debug]: Undefined array key "part"','normal',NULL,'2025-08-27 06:36:27',NULL),(26,1,'Equipment/Server->create Undefined array key \"serverpart\"','15:39:25[info]: [HP DL360 Gen9]생성되었습니다.:\n15:39:25[debug]: Undefined array key "serverpart"','normal',NULL,'2025-08-27 06:39:25',NULL),(27,1,'Equipment/Server->create_form Undefined array key \"entity\"','16:04:47[debug]: Undefined array key "entity"','normal',NULL,'2025-08-27 07:04:47',NULL),(28,1,'Equipment/Server->create_form Undefined array key \"entity\"','16:04:49[debug]: Undefined array key "entity"','normal',NULL,'2025-08-27 07:04:49',NULL),(29,1,'Equipment/Server->create_form Undefined array key \"entity\"','16:05:18[debug]: Undefined array key "entity"','normal',NULL,'2025-08-27 07:05:18',NULL),(30,1,'Equipment/Server->create_form Undefined array key \"entity\"','16:05:39[debug]: Undefined array key "entity"','normal',NULL,'2025-08-27 07:05:39',NULL),(31,1,'Equipment/Server->create_form Undefined array key \"entity\"','16:05:40[debug]: Undefined array key "entity"','normal',NULL,'2025-08-27 07:05:40',NULL); /*!40000 ALTER TABLE `user_history` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -588,4 +591,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2025-08-26 14:52:25 +-- Dump completed on 2025-08-27 16:28:50 diff --git a/app/Entities/Equipment/ServerEntity.php b/app/Entities/Equipment/ServerEntity.php index be20b67..7000d5e 100644 --- a/app/Entities/Equipment/ServerEntity.php +++ b/app/Entities/Equipment/ServerEntity.php @@ -13,13 +13,38 @@ class ServerEntity extends EquipmentEntity const STATUS_FORBIDDEN = "forbidden"; const DEFAULT_STATUS = self::STATUS_AVAILABLE; - public function setServerParts(array $datas): void + public function setServerPartEntity(string $partType, ServerPartENtity $entity): void { - $this->attributes['server_parts'] = $datas; + if (!array_key_exists('serverPartEntities', $this->attributes)) { + $this->attributes['serverPartEntities'] = []; + } + $this->attributes['serverPartEntities'][$partType] = $entity; } - public function getServerParts(): array + public function getServerPartEntity(string $partType): ServerPartENtity|null { - return $this->attributes['server_parts'] ?? []; + if (!array_key_exists('serverPartEntities', $this->attributes)) { + return null; + } + if (!array_key_exists($partType, $this->attributes['serverPartEntities'])) { + return null; + } + return $this->attributes['serverPartEntities'][$partType]; + } + public function setIPEntities(array $entities): void + { + $this->attributes['ipEntities'] = $entities; + } + public function getIPEntities(): array + { + return $this->attributes['ipEntities'] ?? []; + } + public function setCSEntities(array $entities): void + { + $this->attributes['csEntities'] = $entities; + } + public function getCSEntities(): array + { + return $this->attributes['csEntities'] ?? []; } //기본기능용 public function getCode(): string diff --git a/app/Entities/Equipment/ServerPartEntity.php b/app/Entities/Equipment/ServerPartEntity.php index e7928bf..cc6be10 100644 --- a/app/Entities/Equipment/ServerPartEntity.php +++ b/app/Entities/Equipment/ServerPartEntity.php @@ -12,21 +12,25 @@ class ServerPartEntity extends EquipmentEntity public function setPartEntity(PartEntity $entity): void { - $this->attributes['part'] = $entity; + $this->attributes['partEntity'] = $entity; + } + public function getPartEntity(): PartEntity + { + return $this->attributes['partEntity']; + } + public function getType(): string + { + return $this->getPartEntity()->getType() ?? ""; } public function getTitle(): string { - return $this->getPartEntity()->getTitle(); + return $this->getPartEntity()->getTitle() ?? ""; } - public function getPrice(): string + public function getPrice(): int { - return $this->getPartEntity()->getPrice(); + return $this->getPartEntity()->getPrice() ?? 0; } //기본기능용 - public function getPartEntity(): PartEntity - { - return $this->attributes['part'] ?? []; - } public function getPartInfoUID(): int { return $this->attributes['partinfo_uid']; diff --git a/app/Helpers/Equipment/ServerHelper.php b/app/Helpers/Equipment/ServerHelper.php index ca8b95b..6634b17 100644 --- a/app/Helpers/Equipment/ServerHelper.php +++ b/app/Helpers/Equipment/ServerHelper.php @@ -19,17 +19,18 @@ class ServerHelper extends EquipmentHelper $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' calender' : 'calender'; $form = form_input($field, $value ?? "", $extras); break; - case 'serverpartinfo_cpu_uid': - case 'serverpartinfo_ram_uid': - case 'serverpartinfo_disk_uid': - case 'serverpartinfo_software_uid': - case 'serverpartinfo_os_uid': - case 'serverpartinfo_db_uid': - $form = $this->form_dropdown_custom($field, $value, $viewDatas, $extras); + case 'CPU': + case 'RAM': + case 'SOFTWARE': + case 'OS': + case 'serverpartinfo_DB_uid': + $form = $this->form_dropdown_custom($field, old($field) ?? (array_key_exists('entity', $viewDatas) ? $viewDatas['entity']->getServerPartEntity('CPU')->getPK() : null), $viewDatas, $extras); $form .= " " . form_dropdown("{$field}_cnt", $viewDatas['serverpartinfo_cnt_range'], old("{$field}_cnt") ?? $viewDatas['entity']->$field ?? 1) . "개"; - if ($field === 'serverpartinfo_disk_uid') { - $form .= form_dropdown("{$field}_extra", $viewDatas['serverpartinfo_extra_options'], old("{$field}_extra") ?? $viewDatas['entity']->$field ?? 1); - } + break; + case 'DISK': + $form = $this->form_dropdown_custom($field, old($field) ?? (array_key_exists('entity', $viewDatas) ? $viewDatas['entity']->getPartInfoUID() : null), $viewDatas, $extras); + $form .= " " . form_dropdown("{$field}_cnt", $viewDatas['serverpartinfo_cnt_range'], old("{$field}_cnt") ?? $viewDatas['entity']->$field ?? 1) . "개"; + $form .= form_dropdown("{$field}_extra", $viewDatas['serverpartinfo_extra_options'], old("{$field}_extra") ?? $viewDatas['entity']->$field ?? 1); break; case 'ipinfo_uid': case 'csinfo_uid': @@ -50,16 +51,30 @@ class ServerHelper extends EquipmentHelper $value = $value ? date("Y-m-d", strtotime($value)) : ""; break; case 'serverpartinfo': + // dd($viewDatas['entity']); $value = ""; - foreach ($viewDatas['entity']->getServerParts() as $serverPart) { + foreach (SERVER['PARTTYPES'] as $partType) { + $serverPartEntity = $viewDatas['entity']->getServerPartEntity($partType); $value .= sprintf( - "
%s%s %s
", - $serverPart->getTitle(), - $serverPart->getCnt() > 1 ? "*" . $serverPart->getCnt() . "개" : "", - $serverPart->getExtra() ?? "" + "
%s : %s%s %s
", + $serverPartEntity->getType(), + $serverPartEntity->getTitle(), + $serverPartEntity->getCnt() > 1 ? "*" . $serverPartEntity->getCnt() . "개" : "", + $serverPartEntity->getExtra() ?? "" ); } - // dd($value); + break; + case 'ipinfo_uid': + $value = ""; + foreach ($viewDatas['entity']->getIPEntities() as $ipEntity) { + $value .= sprintf("
%s%s %s
", $ipEntity->getTitle(), $ipEntity->getAmount()); + } + break; + case 'csinfo_uid': + $value = ""; + foreach ($viewDatas['entity']->getCSEntities() as $csEntity) { + $value .= sprintf("
%s%s %s
", $csEntity->getTitle(), $csEntity->getAmount()); + } break; default: $value = parent::getFieldView($field, $value, $viewDatas, $extras); diff --git a/app/Language/en/Equipment/Server.php b/app/Language/en/Equipment/Server.php index 6c5d928..40ed112 100644 --- a/app/Language/en/Equipment/Server.php +++ b/app/Language/en/Equipment/Server.php @@ -18,12 +18,12 @@ return [ "serverpartinfo" => "부품정보", "ipinfo_uid" => "IP정보", "csinfo_uid" => "CS정보", - 'serverpartinfo_cpu_uid' => "CPU", - 'serverpartinfo_ram_uid' => "RAM", - 'serverpartinfo_disk_uid' => "DISK", - 'serverpartinfo_os_uid' => "OS", - 'serverpartinfo_db_uid' => "DB", - 'serverpartinfo_software_uid' => "기타SW", + 'CPU' => "CPU", + 'RAM' => "RAM", + 'DISK' => "DISK", + 'OS' => "OS", + 'serverpartinfo_DB_uid' => "DB", + 'SOFTWARE' => "기타SW", ], "TITLE" => [ 'HP DL360 Gen6' => "HP DL360 Gen6", diff --git a/app/Services/CommonService.php b/app/Services/CommonService.php index 731775b..24527f2 100644 --- a/app/Services/CommonService.php +++ b/app/Services/CommonService.php @@ -72,6 +72,8 @@ abstract class CommonService if ($where) { $this->getModel()->where($where); } + //출력순서 정의 + $this->setOrderBy(); $entities = []; foreach ($this->getModel()->select(implode(',', $columns))->findAll() as $entity) { $entities[$entity->getPK()] = $this->getEntity_process($entity); diff --git a/app/Services/Equipment/ServerPartService.php b/app/Services/Equipment/ServerPartService.php index 6242b2e..e99925e 100644 --- a/app/Services/Equipment/ServerPartService.php +++ b/app/Services/Equipment/ServerPartService.php @@ -2,12 +2,12 @@ namespace App\Services\Equipment; +use App\Entities\Equipment\ServerPartEntity; use App\Models\Equipment\ServerPartModel; use App\Services\Equipment\EquipmentService; class ServerPartService extends EquipmentService { - const BaseParts = ['cpu', 'ram', 'disk', 'os']; private ?PartService $_partService = null; public function __construct() { @@ -48,27 +48,33 @@ class ServerPartService extends EquipmentService } return $this->_partService; } + //partEntity 정보 추가 + protected function getEntity_process(mixed $entity): ServerPartEntity + { + $entity->setPartEntity($this->getPartService()->getEntity($entity->getPartInfoUID())); + return $entity; + } //기본 기능부분 //FieldForm관련용 public function getFormFieldOption(string $field, array $options = []): array { switch ($field) { - case 'partinfo_cpu_uid': + case 'partinfo_CPU_uid': $options = $this->getPartService()->getEntities(['type' => 'CPU']); break; - case 'partinfo_ram_uid': + case 'partinfo_RAM_uid': $options = $this->getPartService()->getEntities(['type' => 'RAM']); break; - case 'partinfo_disk_uid': + case 'partinfo_DISK_uid': $options = $this->getPartService()->getEntities(['type' => 'DISK']); break; - case 'partinfo_os_uid': + case 'partinfo_OS_uid': $options = $this->getPartService()->getEntities(['type' => 'OS']); break; - case 'partinfo_db_uid': + case 'partinfo_DB_uid': $options = $this->getPartService()->getEntities(['type' => 'DB']); break; - case 'partinfo_software_uid': + case 'partinfo_SOFTWARE_uid': $options = $this->getPartService()->getEntities(['type' => 'SOFTWARE']); break; case 'partinfo_uid': //수정때문에 전체가 필요 @@ -80,10 +86,4 @@ class ServerPartService extends EquipmentService } return $options; } - //partEntity 정보 추가 - protected function getEntity_process(mixed $entity): mixed - { - $entity->setPartEntity($this->getPartService()->getEntity($entity->getPartInfoUID())); - return $entity; - } } diff --git a/app/Services/Equipment/ServerService.php b/app/Services/Equipment/ServerService.php index bece5ac..e6a748c 100644 --- a/app/Services/Equipment/ServerService.php +++ b/app/Services/Equipment/ServerService.php @@ -22,10 +22,11 @@ class ServerService extends EquipmentService "code", "type", "title", - "serverpartinfo_cpu_uid", - "serverpartinfo_ram_uid", - "serverpartinfo_disk_uid", - "serverpartinfo_os_uid", + "CPU", + "RAM", + "DISK", + "OS", + "ipinfo_uid", "price", "amount", "manufactur_at", @@ -37,14 +38,42 @@ class ServerService extends EquipmentService "serviceinfo_uid", "type", "title", - "serverpartinfo_cpu_uid", - "serverpartinfo_ram_uid", - "serverpartinfo_disk_uid", - "serverpartinfo_os_uid", + "CPU", + "RAM", + "DISK", + "OS", + "ipinfo_uid", "status" ], ]; } + public function getViewFields(): array + { + return [ + 'fields' => [ + 'clientinfo_uid', + 'serviceinfo_uid', + "type", + 'title', + 'price', + 'amount', + "serverpartinfo", + "ipinfo_uid", + "csinfo_uid", + 'manufactur_at', + "format_at", + 'status' + ], + 'filters' => [ + 'clientinfo_uid', + 'serviceinfo_uid', + 'type', + "ipinfo_uid", + "csinfo_uid", + 'status' + ], + ]; + } public function getIndexFields(): array { return [ @@ -53,14 +82,23 @@ class ServerService extends EquipmentService 'serviceinfo_uid', "type", 'title', - "serverpartinfo", 'price', 'amount', + "serverpartinfo", + "ipinfo_uid", + "csinfo_uid", 'manufactur_at', "format_at", 'status' ], - 'filters' => ['clientinfo_uid', 'serviceinfo_uid', 'type', 'status'], + 'filters' => [ + 'clientinfo_uid', + 'serviceinfo_uid', + 'type', + "ipinfo_uid", + "csinfo_uid", + 'status' + ], ]; } public function getBatchjobFields(): array @@ -88,27 +126,43 @@ class ServerService extends EquipmentService } return $this->_csService; } + //partEntity 정보 추가 + protected function getEntity_process(mixed $entity): ServerEntity + { + //서버 부품정보 정의 + foreach (SERVER['PARTTYPES'] as $partType) { + $serverPartEnty = $this->getServerPartService()->getEntity(['serverinfo_uid' => $entity->getPK(), 'type' => $partType]); + if ($serverPartEnty) { + $entity->setServerPartEntity($partType, $serverPartEnty); + } + } + //서버 IP정보 정의 + $entity->setIPEntities($this->getIPService()->getEntities(['serverinfo_uid' => $entity->getPK()])); + //서버 CS정보 정의 + $entity->setCSEntities($this->getCSService()->getEntities(['serverinfo_uid' => $entity->getPK()])); + return $entity; + } //기본 기능부분 public function getFormFieldOption(string $field, array $options = []): array { switch ($field) { - case 'serverpartinfo_cpu_uid': - $options = $this->getServerPartService()->getFormFieldOption('partinfo_cpu_uid'); + case 'CPU': + $options = $this->getServerPartService()->getFormFieldOption('partinfo_CPU_uid'); break; - case 'serverpartinfo_ram_uid': - $options = $this->getServerPartService()->getFormFieldOption('partinfo_ram_uid'); + case 'RAM': + $options = $this->getServerPartService()->getFormFieldOption('partinfo_RAM_uid'); break; - case 'serverpartinfo_disk_uid': - $options = $this->getServerPartService()->getFormFieldOption('partinfo_disk_uid'); + case 'DISK': + $options = $this->getServerPartService()->getFormFieldOption('partinfo_DISK_uid'); break; - case 'serverpartinfo_os_uid': - $options = $this->getServerPartService()->getFormFieldOption('partinfo_os_uid'); + case 'OS': + $options = $this->getServerPartService()->getFormFieldOption('partinfo_OS_uid'); break; - case 'serverpartinfo_db_uid': - $options = $this->getServerPartService()->getFormFieldOption('partinfo_db_uid'); + case 'serverpartinfo_DB_uid': + $options = $this->getServerPartService()->getFormFieldOption('partinfo_DB_uid'); break; - case 'serverpartinfo_software_uid': - $options = $this->getServerPartService()->getFormFieldOption('partinfo_software_uid'); + case 'SOFTWARE': + $options = $this->getServerPartService()->getFormFieldOption('partinfo_SOFTWARE_uid'); break; case 'ipinfo_uid': //수정때문에 전체가 필요 $options = $this->getIPService()->getEntities();