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")
|
||||
async GetReportDevelopemtMain(/*@Path() type: string*/) {
|
||||
|
||||
// const _type = type.trim().toUpperCase();
|
||||
const formattedData = {
|
||||
org: "_type",
|
||||
|
|
@ -52,9 +51,9 @@ export class ReportController extends Controller {
|
|||
"SUM(DISTINCT planGoals.amount) AS goalParticipants",
|
||||
"COUNT(DISTINCT history.id) AS actualParticipants",
|
||||
"strategy1.strategyChild1Name AS strategy1",
|
||||
"strategy2.strategyChild2Name AS strategy2",
|
||||
"strategy3.strategyChild3Name AS strategy3",
|
||||
"strategy4.strategyChild4Name AS strategy4",
|
||||
"strategy2.strategyChild2Name AS strategy2",
|
||||
"strategy3.strategyChild3Name AS strategy3",
|
||||
"strategy4.strategyChild4Name AS strategy4",
|
||||
"strategy5.strategyChild5Name AS strategy5",
|
||||
"development.accept AS acceptBudget",
|
||||
"development.receive AS receiveBudget",
|
||||
|
|
@ -64,117 +63,142 @@ export class ReportController extends Controller {
|
|||
.groupBy("development.id")
|
||||
.getRawMany();
|
||||
|
||||
const mappedDataDev = dataDevelopment.map((item, index) => {
|
||||
let budget = null;
|
||||
if (item.budget == "REGULATIONBUDGET") {
|
||||
budget = "งบตามข้อบัญญัติ";
|
||||
}else if (item.budget == "OTHERBUDGET") {
|
||||
budget = "เงินนอกงบประมาณ";
|
||||
}else if (item.budget == "BANGKOKBUDGET") {
|
||||
budget = "ไม่ใช้งบประมาณ";
|
||||
}
|
||||
return {
|
||||
strategy: item.strategy1,
|
||||
projectName: item.projectName,
|
||||
totalDate: item.totalDate != null && item.totalDate != "" ? Extension.ToThaiNumber(item.totalDate.toString()): "-",
|
||||
goalParticipants: item.goalParticipants != null && item.goalParticipants != "" ? Extension.ToThaiNumber(item.goalParticipants.toString()): "-",
|
||||
actualParticipants: item.actualParticipants != null && item.actualParticipants != "" ? Extension.ToThaiNumber(item.actualParticipants.toString()): "-",
|
||||
budget: budget,
|
||||
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 mappedDataDev = dataDevelopment.map((item, index) => {
|
||||
let budget = null;
|
||||
if (item.budget == "REGULATIONBUDGET") {
|
||||
budget = "งบตามข้อบัญญัติ";
|
||||
} else if (item.budget == "OTHERBUDGET") {
|
||||
budget = "เงินนอกงบประมาณ";
|
||||
} else if (item.budget == "BANGKOKBUDGET") {
|
||||
budget = "ไม่ใช้งบประมาณ";
|
||||
}
|
||||
return {
|
||||
strategy: item.strategy1,
|
||||
projectName: item.projectName,
|
||||
totalDate:
|
||||
item.totalDate != null && item.totalDate != ""
|
||||
? Extension.ToThaiNumber(item.totalDate.toString())
|
||||
: "-",
|
||||
goalParticipants:
|
||||
item.goalParticipants != null && item.goalParticipants != ""
|
||||
? Extension.ToThaiNumber(item.goalParticipants.toString())
|
||||
: "-",
|
||||
actualParticipants:
|
||||
item.actualParticipants != null && item.actualParticipants != ""
|
||||
? Extension.ToThaiNumber(item.actualParticipants.toString())
|
||||
: "-",
|
||||
budget: budget,
|
||||
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")
|
||||
.leftJoinAndSelect("development.strategyChild1Actual", "strategy1")
|
||||
.where("development.status = :status", { status: "FINISH" })
|
||||
.andWhere("development.strategyChild1ActualId IS NOT NULL")
|
||||
.select([
|
||||
"development.rootId AS rootId",
|
||||
"development.strategyChild1ActualId AS strategyId",
|
||||
"development.strategyChild1ActualId AS strategyId",
|
||||
"strategy1.strategyChild1Name AS strategyName",
|
||||
"COUNT(development.id) AS devCount",
|
||||
"SUM(development.receive) AS receiveBudget",
|
||||
"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")
|
||||
.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) {
|
||||
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: [{
|
||||
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) {
|
||||
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,
|
||||
strategyName: item.strategyName,
|
||||
devCount: item.devCount?Extension.ToThaiNumber(item.devCount.toString()):"0",
|
||||
receiveBudget: item.receiveBudget?Extension.ToThaiNumber(item.receiveBudget.toString()):"0",
|
||||
devCount: item.devCount ? Extension.ToThaiNumber(item.devCount.toString()) : "0",
|
||||
receiveBudget: item.receiveBudget
|
||||
? Extension.ToThaiNumber(item.receiveBudget.toString())
|
||||
: "0",
|
||||
sumDev: "",
|
||||
sumTraget: "",
|
||||
sumBudget: "",
|
||||
sumRowDev:"",
|
||||
sumRowTarget:"",
|
||||
sumRowBudget:"",
|
||||
}]
|
||||
});
|
||||
}
|
||||
sumRowDev: "",
|
||||
sumRowTarget: "",
|
||||
sumRowBudget: "",
|
||||
},
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, []);
|
||||
return acc;
|
||||
}, []);
|
||||
|
||||
// ตอนนี้คุณสามารถ map ข้อมูลใน 'groupedData' เพื่อสร้าง 'formattedData' ได้แล้ว
|
||||
const reformattedData = groupedData.map((group,x) => {
|
||||
const formattedGroup = {
|
||||
rowNo: x?Extension.ToThaiNumber((x + 1).toString()):Extension.ToThaiNumber("๑"),
|
||||
rootId: group.rootId,
|
||||
root: group.root,
|
||||
strategy: Array(4).fill(null).map((_, index) => {
|
||||
// ตอนนี้คุณสามารถ map ข้อมูลใน 'groupedData' เพื่อสร้าง 'formattedData' ได้แล้ว
|
||||
const reformattedData = groupedData.map((group, x) => {
|
||||
const formattedGroup = {
|
||||
rowNo: x ? Extension.ToThaiNumber((x + 1).toString()) : Extension.ToThaiNumber("๑"),
|
||||
rootId: group.rootId,
|
||||
root: group.root,
|
||||
strategy: Array(4)
|
||||
.fill(null)
|
||||
.map((_, index) => {
|
||||
const strategy = group.strategy[index] || {
|
||||
strategyName: "0",
|
||||
devCount: "0",
|
||||
|
|
@ -183,9 +207,9 @@ export class ReportController extends Controller {
|
|||
sumDev: "0",
|
||||
sumTraget: "0",
|
||||
sumBudget: "0",
|
||||
sumRowDev:"0",
|
||||
sumRowTarget:"0",
|
||||
sumRowBudget:"0",
|
||||
sumRowDev: "0",
|
||||
sumRowTarget: "0",
|
||||
sumRowBudget: "0",
|
||||
};
|
||||
|
||||
return {
|
||||
|
|
@ -201,46 +225,45 @@ export class ReportController extends Controller {
|
|||
[`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({
|
||||
template: "development",
|
||||
reportName: "development",
|
||||
|
|
@ -432,6 +455,10 @@ export class ReportController extends Controller {
|
|||
getDevelopment.scholarshipType =
|
||||
"ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรประเภทนักบริหาร)";
|
||||
break;
|
||||
case "RESEARCH":
|
||||
getDevelopment.scholarshipType =
|
||||
"ศึกษา ฝึกอบรม ประชุม ดูงาน และปฏิบัติการวิจัย ณ ต่างประเทศ";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue