report tamplate
This commit is contained in:
parent
9c8fb66601
commit
f4140f45f8
1 changed files with 161 additions and 134 deletions
|
|
@ -25,7 +25,6 @@ export class ReportController extends Controller {
|
||||||
*/
|
*/
|
||||||
@Get("main")
|
@Get("main")
|
||||||
async GetReportDevelopemtMain(/*@Path() type: string*/) {
|
async GetReportDevelopemtMain(/*@Path() type: string*/) {
|
||||||
|
|
||||||
// const _type = type.trim().toUpperCase();
|
// const _type = type.trim().toUpperCase();
|
||||||
const formattedData = {
|
const formattedData = {
|
||||||
org: "_type",
|
org: "_type",
|
||||||
|
|
@ -52,9 +51,9 @@ export class ReportController extends Controller {
|
||||||
"SUM(DISTINCT planGoals.amount) AS goalParticipants",
|
"SUM(DISTINCT planGoals.amount) AS goalParticipants",
|
||||||
"COUNT(DISTINCT history.id) AS actualParticipants",
|
"COUNT(DISTINCT history.id) AS actualParticipants",
|
||||||
"strategy1.strategyChild1Name AS strategy1",
|
"strategy1.strategyChild1Name AS strategy1",
|
||||||
"strategy2.strategyChild2Name AS strategy2",
|
"strategy2.strategyChild2Name AS strategy2",
|
||||||
"strategy3.strategyChild3Name AS strategy3",
|
"strategy3.strategyChild3Name AS strategy3",
|
||||||
"strategy4.strategyChild4Name AS strategy4",
|
"strategy4.strategyChild4Name AS strategy4",
|
||||||
"strategy5.strategyChild5Name AS strategy5",
|
"strategy5.strategyChild5Name AS strategy5",
|
||||||
"development.accept AS acceptBudget",
|
"development.accept AS acceptBudget",
|
||||||
"development.receive AS receiveBudget",
|
"development.receive AS receiveBudget",
|
||||||
|
|
@ -64,117 +63,142 @@ export class ReportController extends Controller {
|
||||||
.groupBy("development.id")
|
.groupBy("development.id")
|
||||||
.getRawMany();
|
.getRawMany();
|
||||||
|
|
||||||
const mappedDataDev = dataDevelopment.map((item, index) => {
|
const mappedDataDev = dataDevelopment.map((item, index) => {
|
||||||
let budget = null;
|
let budget = null;
|
||||||
if (item.budget == "REGULATIONBUDGET") {
|
if (item.budget == "REGULATIONBUDGET") {
|
||||||
budget = "งบตามข้อบัญญัติ";
|
budget = "งบตามข้อบัญญัติ";
|
||||||
}else if (item.budget == "OTHERBUDGET") {
|
} else if (item.budget == "OTHERBUDGET") {
|
||||||
budget = "เงินนอกงบประมาณ";
|
budget = "เงินนอกงบประมาณ";
|
||||||
}else if (item.budget == "BANGKOKBUDGET") {
|
} else if (item.budget == "BANGKOKBUDGET") {
|
||||||
budget = "ไม่ใช้งบประมาณ";
|
budget = "ไม่ใช้งบประมาณ";
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
strategy: item.strategy1,
|
strategy: item.strategy1,
|
||||||
projectName: item.projectName,
|
projectName: item.projectName,
|
||||||
totalDate: item.totalDate != null && item.totalDate != "" ? Extension.ToThaiNumber(item.totalDate.toString()): "-",
|
totalDate:
|
||||||
goalParticipants: item.goalParticipants != null && item.goalParticipants != "" ? Extension.ToThaiNumber(item.goalParticipants.toString()): "-",
|
item.totalDate != null && item.totalDate != ""
|
||||||
actualParticipants: item.actualParticipants != null && item.actualParticipants != "" ? Extension.ToThaiNumber(item.actualParticipants.toString()): "-",
|
? Extension.ToThaiNumber(item.totalDate.toString())
|
||||||
budget: budget,
|
: "-",
|
||||||
acceptBudget: item.acceptBudget != null && item.acceptBudget != "" ? Extension.ToThaiNumber(item.acceptBudget.toString()): "-",
|
goalParticipants:
|
||||||
receiveBudget: item.receiveBudget != null && item.receiveBudget != "" ? Extension.ToThaiNumber(item.receiveBudget.toString()): "-",
|
item.goalParticipants != null && item.goalParticipants != ""
|
||||||
obstacle: item.obstacle,
|
? Extension.ToThaiNumber(item.goalParticipants.toString())
|
||||||
root: item.root,
|
: "-",
|
||||||
output: "-",
|
actualParticipants:
|
||||||
outcome: "-",
|
item.actualParticipants != null && item.actualParticipants != ""
|
||||||
position: "-",
|
? Extension.ToThaiNumber(item.actualParticipants.toString())
|
||||||
indicators: "-",
|
: "-",
|
||||||
devResult: "-",
|
budget: budget,
|
||||||
positionActual: "-",
|
acceptBudget:
|
||||||
};
|
item.acceptBudget != null && item.acceptBudget != ""
|
||||||
});
|
? Extension.ToThaiNumber(item.acceptBudget.toString())
|
||||||
|
: "-",
|
||||||
|
receiveBudget:
|
||||||
|
item.receiveBudget != null && item.receiveBudget != ""
|
||||||
|
? Extension.ToThaiNumber(item.receiveBudget.toString())
|
||||||
|
: "-",
|
||||||
|
obstacle: item.obstacle,
|
||||||
|
root: item.root,
|
||||||
|
output: "-",
|
||||||
|
outcome: "-",
|
||||||
|
position: "-",
|
||||||
|
indicators: "-",
|
||||||
|
devResult: "-",
|
||||||
|
positionActual: "-",
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
const resultAllStrategy = await AppDataSource.getRepository(Development)
|
const resultAllStrategy = await AppDataSource.getRepository(Development)
|
||||||
.createQueryBuilder("development")
|
.createQueryBuilder("development")
|
||||||
.leftJoinAndSelect("development.strategyChild1Actual", "strategy1")
|
.leftJoinAndSelect("development.strategyChild1Actual", "strategy1")
|
||||||
.where("development.status = :status", { status: "FINISH" })
|
.where("development.status = :status", { status: "FINISH" })
|
||||||
.andWhere("development.strategyChild1ActualId IS NOT NULL")
|
.andWhere("development.strategyChild1ActualId IS NOT NULL")
|
||||||
.select([
|
.select([
|
||||||
"development.rootId AS rootId",
|
"development.rootId AS rootId",
|
||||||
"development.strategyChild1ActualId AS strategyId",
|
"development.strategyChild1ActualId AS strategyId",
|
||||||
"strategy1.strategyChild1Name AS strategyName",
|
"strategy1.strategyChild1Name AS strategyName",
|
||||||
"COUNT(development.id) AS devCount",
|
"COUNT(development.id) AS devCount",
|
||||||
"SUM(development.receive) AS receiveBudget",
|
"SUM(development.receive) AS receiveBudget",
|
||||||
"development.root AS root",
|
"development.root AS root",
|
||||||
])
|
])
|
||||||
.groupBy("development.rootId, development.strategyChild1ActualId, strategy1.strategyChild1Name, development.root")
|
.groupBy(
|
||||||
|
"development.rootId, development.strategyChild1ActualId, strategy1.strategyChild1Name, development.root",
|
||||||
|
)
|
||||||
.orderBy("strategy1.createdAt", "ASC")
|
.orderBy("strategy1.createdAt", "ASC")
|
||||||
.getRawMany();
|
.getRawMany();
|
||||||
|
|
||||||
interface Strategy {
|
|
||||||
strategyId: string;
|
|
||||||
strategyName: string;
|
|
||||||
devCount: string;
|
|
||||||
receiveBudget: string;
|
|
||||||
sumDev: string;
|
|
||||||
sumTraget: string;
|
|
||||||
sumBudget: string;
|
|
||||||
sumRowDev: string,
|
|
||||||
sumRowTarget: string,
|
|
||||||
sumRowBudget: string,
|
|
||||||
}
|
|
||||||
|
|
||||||
interface GroupedData {
|
|
||||||
rootId: string;
|
|
||||||
root: string;
|
|
||||||
strategy: Strategy[];
|
|
||||||
}
|
|
||||||
|
|
||||||
// สมมติว่า 'resultAllStrategy' ถูกกำหนดไว้แล้วและมีข้อมูลที่คุณให้มา
|
|
||||||
const groupedData: GroupedData[] = resultAllStrategy.reduce((acc: GroupedData[], item) => {
|
|
||||||
const existingRoot = acc.find(entry => entry.rootId === item.rootId);
|
|
||||||
|
|
||||||
if (existingRoot) {
|
interface Strategy {
|
||||||
existingRoot.strategy.push({
|
strategyId: string;
|
||||||
strategyId: item.strategyId,
|
strategyName: string;
|
||||||
strategyName: item.strategyName,
|
devCount: string;
|
||||||
devCount: item.devCount?Extension.ToThaiNumber(item.devCount.toString()):"0",
|
receiveBudget: string;
|
||||||
receiveBudget: item.receiveBudget?Extension.ToThaiNumber(item.receiveBudget.toString()):"0",
|
sumDev: string;
|
||||||
sumDev: "",
|
sumTraget: string;
|
||||||
sumTraget: "",
|
sumBudget: string;
|
||||||
sumBudget: "",
|
sumRowDev: string;
|
||||||
sumRowDev:"",
|
sumRowTarget: string;
|
||||||
sumRowTarget:"",
|
sumRowBudget: string;
|
||||||
sumRowBudget:"",
|
}
|
||||||
});
|
|
||||||
} else {
|
interface GroupedData {
|
||||||
acc.push({
|
rootId: string;
|
||||||
rootId: item.rootId,
|
root: string;
|
||||||
root: item.root,
|
strategy: Strategy[];
|
||||||
strategy: [{
|
}
|
||||||
|
|
||||||
|
// สมมติว่า 'resultAllStrategy' ถูกกำหนดไว้แล้วและมีข้อมูลที่คุณให้มา
|
||||||
|
const groupedData: GroupedData[] = resultAllStrategy.reduce((acc: GroupedData[], item) => {
|
||||||
|
const existingRoot = acc.find((entry) => entry.rootId === item.rootId);
|
||||||
|
|
||||||
|
if (existingRoot) {
|
||||||
|
existingRoot.strategy.push({
|
||||||
|
strategyId: item.strategyId,
|
||||||
|
strategyName: item.strategyName,
|
||||||
|
devCount: item.devCount ? Extension.ToThaiNumber(item.devCount.toString()) : "0",
|
||||||
|
receiveBudget: item.receiveBudget
|
||||||
|
? Extension.ToThaiNumber(item.receiveBudget.toString())
|
||||||
|
: "0",
|
||||||
|
sumDev: "",
|
||||||
|
sumTraget: "",
|
||||||
|
sumBudget: "",
|
||||||
|
sumRowDev: "",
|
||||||
|
sumRowTarget: "",
|
||||||
|
sumRowBudget: "",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
acc.push({
|
||||||
|
rootId: item.rootId,
|
||||||
|
root: item.root,
|
||||||
|
strategy: [
|
||||||
|
{
|
||||||
strategyId: item.strategyId,
|
strategyId: item.strategyId,
|
||||||
strategyName: item.strategyName,
|
strategyName: item.strategyName,
|
||||||
devCount: item.devCount?Extension.ToThaiNumber(item.devCount.toString()):"0",
|
devCount: item.devCount ? Extension.ToThaiNumber(item.devCount.toString()) : "0",
|
||||||
receiveBudget: item.receiveBudget?Extension.ToThaiNumber(item.receiveBudget.toString()):"0",
|
receiveBudget: item.receiveBudget
|
||||||
|
? Extension.ToThaiNumber(item.receiveBudget.toString())
|
||||||
|
: "0",
|
||||||
sumDev: "",
|
sumDev: "",
|
||||||
sumTraget: "",
|
sumTraget: "",
|
||||||
sumBudget: "",
|
sumBudget: "",
|
||||||
sumRowDev:"",
|
sumRowDev: "",
|
||||||
sumRowTarget:"",
|
sumRowTarget: "",
|
||||||
sumRowBudget:"",
|
sumRowBudget: "",
|
||||||
}]
|
},
|
||||||
});
|
],
|
||||||
}
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return acc;
|
return acc;
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
// ตอนนี้คุณสามารถ map ข้อมูลใน 'groupedData' เพื่อสร้าง 'formattedData' ได้แล้ว
|
// ตอนนี้คุณสามารถ map ข้อมูลใน 'groupedData' เพื่อสร้าง 'formattedData' ได้แล้ว
|
||||||
const reformattedData = groupedData.map((group,x) => {
|
const reformattedData = groupedData.map((group, x) => {
|
||||||
const formattedGroup = {
|
const formattedGroup = {
|
||||||
rowNo: x?Extension.ToThaiNumber((x + 1).toString()):Extension.ToThaiNumber("๑"),
|
rowNo: x ? Extension.ToThaiNumber((x + 1).toString()) : Extension.ToThaiNumber("๑"),
|
||||||
rootId: group.rootId,
|
rootId: group.rootId,
|
||||||
root: group.root,
|
root: group.root,
|
||||||
strategy: Array(4).fill(null).map((_, index) => {
|
strategy: Array(4)
|
||||||
|
.fill(null)
|
||||||
|
.map((_, index) => {
|
||||||
const strategy = group.strategy[index] || {
|
const strategy = group.strategy[index] || {
|
||||||
strategyName: "0",
|
strategyName: "0",
|
||||||
devCount: "0",
|
devCount: "0",
|
||||||
|
|
@ -183,9 +207,9 @@ export class ReportController extends Controller {
|
||||||
sumDev: "0",
|
sumDev: "0",
|
||||||
sumTraget: "0",
|
sumTraget: "0",
|
||||||
sumBudget: "0",
|
sumBudget: "0",
|
||||||
sumRowDev:"0",
|
sumRowDev: "0",
|
||||||
sumRowTarget:"0",
|
sumRowTarget: "0",
|
||||||
sumRowBudget:"0",
|
sumRowBudget: "0",
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
@ -201,46 +225,45 @@ export class ReportController extends Controller {
|
||||||
[`sumRowBudget`]: strategy.sumRowBudget ?? "0",
|
[`sumRowBudget`]: strategy.sumRowBudget ?? "0",
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
return formattedGroup;
|
return formattedGroup;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// const fmdata = reformattedData.map(rfmData => {
|
||||||
|
// return {
|
||||||
|
// rowNo: rfmData.rowNo,
|
||||||
|
// rootId: rfmData.rootId,
|
||||||
|
// root: rfmData.root,
|
||||||
|
// strategy: [
|
||||||
|
// {
|
||||||
|
// strategyName1: rfmData.strategy[0].strategyName1,
|
||||||
|
// devCount1: rfmData.strategy[0].devCount1,
|
||||||
|
// target1: rfmData.strategy[0].target1,
|
||||||
|
// receiveBudget1: rfmData.strategy[0].receiveBudget1
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// strategyName2: rfmData.strategy[1].strategyName2,
|
||||||
|
// devCount2: rfmData.strategy[1].devCount2,
|
||||||
|
// target2: rfmData.strategy[1].target2,
|
||||||
|
// receiveBudget2: rfmData.strategy[1].receiveBudget2
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// strategyName3: rfmData.strategy[2].strategyName3,
|
||||||
|
// devCount3: rfmData.strategy[2].devCount3,
|
||||||
|
// target3: rfmData.strategy[2].target3,
|
||||||
|
// receiveBudget3: rfmData.strategy[2].receiveBudget3
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// strategyName4: rfmData.strategy[3].strategyName4,
|
||||||
|
// devCount4: rfmData.strategy[3].devCount4,
|
||||||
|
// target4: rfmData.strategy[3].target4,
|
||||||
|
// receiveBudget4: rfmData.strategy[3].receiveBudget4
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// };
|
||||||
|
// });
|
||||||
|
|
||||||
|
|
||||||
// const fmdata = reformattedData.map(rfmData => {
|
|
||||||
// return {
|
|
||||||
// rowNo: rfmData.rowNo,
|
|
||||||
// rootId: rfmData.rootId,
|
|
||||||
// root: rfmData.root,
|
|
||||||
// strategy: [
|
|
||||||
// {
|
|
||||||
// strategyName1: rfmData.strategy[0].strategyName1,
|
|
||||||
// devCount1: rfmData.strategy[0].devCount1,
|
|
||||||
// target1: rfmData.strategy[0].target1,
|
|
||||||
// receiveBudget1: rfmData.strategy[0].receiveBudget1
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// strategyName2: rfmData.strategy[1].strategyName2,
|
|
||||||
// devCount2: rfmData.strategy[1].devCount2,
|
|
||||||
// target2: rfmData.strategy[1].target2,
|
|
||||||
// receiveBudget2: rfmData.strategy[1].receiveBudget2
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// strategyName3: rfmData.strategy[2].strategyName3,
|
|
||||||
// devCount3: rfmData.strategy[2].devCount3,
|
|
||||||
// target3: rfmData.strategy[2].target3,
|
|
||||||
// receiveBudget3: rfmData.strategy[2].receiveBudget3
|
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// strategyName4: rfmData.strategy[3].strategyName4,
|
|
||||||
// devCount4: rfmData.strategy[3].devCount4,
|
|
||||||
// target4: rfmData.strategy[3].target4,
|
|
||||||
// receiveBudget4: rfmData.strategy[3].receiveBudget4
|
|
||||||
// }
|
|
||||||
// ],
|
|
||||||
// };
|
|
||||||
// });
|
|
||||||
|
|
||||||
return new HttpSuccess({
|
return new HttpSuccess({
|
||||||
template: "development",
|
template: "development",
|
||||||
reportName: "development",
|
reportName: "development",
|
||||||
|
|
@ -432,6 +455,10 @@ export class ReportController extends Controller {
|
||||||
getDevelopment.scholarshipType =
|
getDevelopment.scholarshipType =
|
||||||
"ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรประเภทนักบริหาร)";
|
"ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรประเภทนักบริหาร)";
|
||||||
break;
|
break;
|
||||||
|
case "RESEARCH":
|
||||||
|
getDevelopment.scholarshipType =
|
||||||
|
"ศึกษา ฝึกอบรม ประชุม ดูงาน และปฏิบัติการวิจัย ณ ต่างประเทศ";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue