From 1cb3a2bc2dcec99a51ad936704187587c01976ed Mon Sep 17 00:00:00 2001 From: x2Skyz Date: Tue, 25 Nov 2025 16:10:10 +0700 Subject: [PATCH] =?UTF-8?q?-=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84=E0=B8=82?= =?UTF-8?q?=20search=20=E0=B8=9E=E0=B8=A3=E0=B9=89=E0=B8=AD=E0=B8=A1=20fon?= =?UTF-8?q?ction=20=E0=B9=83=E0=B8=AB=E0=B8=A1=E0=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- @knowleadge/dbchange/11252025.txt | 33 +++++++++++++++++++ .../src/controllers/projectAddController.js | 2 +- .../controllers/projectSearchController.js | 14 +++++--- 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 @knowleadge/dbchange/11252025.txt diff --git a/@knowleadge/dbchange/11252025.txt b/@knowleadge/dbchange/11252025.txt new file mode 100644 index 0000000..dd0f2e1 --- /dev/null +++ b/@knowleadge/dbchange/11252025.txt @@ -0,0 +1,33 @@ +-- FUNCTION: dbo.translatebdg(text) + +-- DROP FUNCTION IF EXISTS dbo.translatebdg(text); + +CREATE OR REPLACE FUNCTION dbo.translatebdg( + p_bdgcod text) + RETURNS text + LANGUAGE 'plpgsql' + COST 100 + VOLATILE PARALLEL UNSAFE +AS $BODY$ +DECLARE + resultName TEXT; +BEGIN + -- ใช้ string_to_array เพื่อแยก text '24,33' เป็น array ['24','33'] + -- ใช้ ANY เพื่อหาว่า bdgcod อยู่ใน array นั้นไหม + -- ใช้ string_agg เพื่อรวมชื่อที่ได้กลับมาเป็น text เดียว คั่นด้วย ', ' + SELECT string_agg(bdgnam, ', ') + INTO resultName + FROM dbo.bdgmst + WHERE bdgcod = ANY(string_to_array(p_bdgcod, ',')); + + -- ถ้าหาไม่เจอเลย ให้คืนค่าเดิมกลับไป (Optional: หรือจะคืน NULL ก็ได้) + IF resultName IS NULL THEN + RETURN p_bdgcod; + END IF; + + RETURN resultName; +END; +$BODY$; + +ALTER FUNCTION dbo.translatebdg(text) + OWNER TO postgres; \ No newline at end of file diff --git a/exthernal-ttc-api/src/controllers/projectAddController.js b/exthernal-ttc-api/src/controllers/projectAddController.js index 56c3278..c805795 100644 --- a/exthernal-ttc-api/src/controllers/projectAddController.js +++ b/exthernal-ttc-api/src/controllers/projectAddController.js @@ -60,7 +60,7 @@ export class projectAdd { prjusrseq: req.body.request.prjusrseq, prjwntbdg: req.body.request.prjwntbdg, prjacpbdg: '0.00', - prjbdgcod: req.body.request.prjbdgcod, + prjbdgcod: '', prjcomstt: req.body.request.prjcomstt, prjacpdtm: req.body.request.prjacpdtm } diff --git a/exthernal-ttc-api/src/controllers/projectSearchController.js b/exthernal-ttc-api/src/controllers/projectSearchController.js index 3aed154..7854f11 100644 --- a/exthernal-ttc-api/src/controllers/projectSearchController.js +++ b/exthernal-ttc-api/src/controllers/projectSearchController.js @@ -50,14 +50,20 @@ export class projectSearch { prjseq, prjnam, usrthinam as prjusrnam, - prjwntbdg, - bdgnam, + prjwntbdg, + ${database}.translatebdg( + ( + SELECT string_agg(DISTINCT trnbdgcod, ',') + FROM ${database}.trnmst + WHERE trnprjseq = prjseq + ) + ) as bdgnam, ( SELECT string_agg(DISTINCT trnbdgcod, ',') FROM ${database}.trnmst - WHERE trnprjseq = p.prjseq - ) as approved_bdg_codes, + WHERE trnprjseq = prjseq + ) as bdgcod, p.prjacpbdg, ${database}.translatedtl('COMSTT', prjcomstt) as prjcomstt,