diff --git a/src/api/tjt/employee/index.ts b/src/api/tjt/employee/index.ts index 91fe0a5..31aa86f 100644 --- a/src/api/tjt/employee/index.ts +++ b/src/api/tjt/employee/index.ts @@ -13,6 +13,7 @@ export interface EmployeeVO { leaveDate?: string employeeStatus: string remark?: string + officeLeaderFlag?: boolean sortNo?: number enabledFlag?: boolean createTime?: string @@ -23,6 +24,7 @@ export interface EmployeePageReqVO extends PageParam { officeId?: number employeeStatus?: string enabledFlag?: boolean + officeLeaderFlag?: boolean } export interface EmployeeSimpleVO { @@ -33,6 +35,7 @@ export interface EmployeeSimpleVO { employeeStatus?: string registrationType?: string jobTitle?: string + officeLeaderFlag?: boolean } export const getEmployeePage = (params: EmployeePageReqVO) => { @@ -60,6 +63,7 @@ export const getEmployeeSimpleList = (params: { officeId?: number status?: string enabledFlag?: boolean + officeLeaderFlag?: boolean }) => { return request.get({ url: '/tjt/employee/simple-list', params }) } diff --git a/src/api/tjt/employeeYearCostBudget/index.ts b/src/api/tjt/employeeYearCostBudget/index.ts index 1e82a3d..746ef54 100644 --- a/src/api/tjt/employeeYearCostBudget/index.ts +++ b/src/api/tjt/employeeYearCostBudget/index.ts @@ -19,6 +19,18 @@ export interface EmployeeYearCostBudgetPageReqVO extends PageParam { enabledFlag?: boolean } +export interface EmployeeYearCostBudgetGenerateReqVO { + budgetYear: number + expectedCostAmount?: number +} + +export interface EmployeeYearCostBudgetGenerateRespVO { + budgetYear: number + totalEnabledEmployeeCount: number + createdCount: number + skippedCount: number +} + export const getEmployeeYearCostBudgetPage = (params: EmployeeYearCostBudgetPageReqVO) => { return request.get({ url: '/tjt/employee-year-cost-budget/page', params }) } @@ -31,6 +43,10 @@ export const createEmployeeYearCostBudget = (data: EmployeeYearCostBudgetVO) => return request.post({ url: '/tjt/employee-year-cost-budget/create', data }) } +export const generateEmployeeYearCostBudget = (data: EmployeeYearCostBudgetGenerateReqVO) => { + return request.post({ url: '/tjt/employee-year-cost-budget/generate', data }) +} + export const updateEmployeeYearCostBudget = (data: EmployeeYearCostBudgetVO) => { return request.put({ url: '/tjt/employee-year-cost-budget/update', data }) } diff --git a/src/api/tjt/employeeYearLeaderOutput/index.ts b/src/api/tjt/employeeYearLeaderOutput/index.ts new file mode 100644 index 0000000..c2bd237 --- /dev/null +++ b/src/api/tjt/employeeYearLeaderOutput/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface EmployeeYearLeaderOutputVO { + id?: number + employeeId: number + employeeName?: string + outputYear: number + leaderOutputAmount: number + remark?: string + sortNo?: number + enabledFlag?: boolean + createTime?: string +} + +export interface EmployeeYearLeaderOutputPageReqVO extends PageParam { + employeeId?: number + employeeName?: string + outputYear?: number + enabledFlag?: boolean +} + +export interface EmployeeYearLeaderOutputGenerateReqVO { + outputYear: number + leaderOutputAmount?: number +} + +export interface EmployeeYearLeaderOutputGenerateRespVO { + outputYear: number + totalEnabledLeaderCount: number + createdCount: number + skippedCount: number +} + +export const getEmployeeYearLeaderOutputPage = (params: EmployeeYearLeaderOutputPageReqVO) => { + return request.get({ url: '/tjt/employee-year-leader-output/page', params }) +} + +export const getEmployeeYearLeaderOutput = (id: number) => { + return request.get({ url: '/tjt/employee-year-leader-output/get', params: { id } }) +} + +export const createEmployeeYearLeaderOutput = (data: EmployeeYearLeaderOutputVO) => { + return request.post({ url: '/tjt/employee-year-leader-output/create', data }) +} + +export const generateEmployeeYearLeaderOutput = (data: EmployeeYearLeaderOutputGenerateReqVO) => { + return request.post({ url: '/tjt/employee-year-leader-output/generate', data }) +} + +export const updateEmployeeYearLeaderOutput = (data: EmployeeYearLeaderOutputVO) => { + return request.put({ url: '/tjt/employee-year-leader-output/update', data }) +} + +export const deleteEmployeeYearLeaderOutput = (id: number) => { + return request.delete({ url: '/tjt/employee-year-leader-output/delete', params: { id } }) +} diff --git a/src/api/tjt/profit/index.ts b/src/api/tjt/profit/index.ts index 1bc30dc..d9cfd5f 100644 --- a/src/api/tjt/profit/index.ts +++ b/src/api/tjt/profit/index.ts @@ -7,6 +7,7 @@ export interface ProjectProfitVO { contractSignedFlag: boolean contractAmount?: number finalSettlementAmount?: number + effectiveSettlementAmount?: number comprehensivePlanningAmount?: number subcontractPlanningAmount?: number majorOutputValue?: number diff --git a/src/api/tjt/report/index.ts b/src/api/tjt/report/index.ts index 011e741..7e2a4d6 100644 --- a/src/api/tjt/report/index.ts +++ b/src/api/tjt/report/index.ts @@ -6,6 +6,41 @@ export interface ProjectOverviewExportReqVO { sortType?: string } +export interface ProjectOverviewPreviewRespVO { + year?: number + officeName?: string + employeeColumns?: ProjectOverviewEmployeeColumn[] + rows?: ProjectOverviewProjectRow[] + totalRow?: ProjectOverviewProjectRow +} + +export interface ProjectOverviewEmployeeColumn { + employeeId?: number + employeeName?: string +} + +export interface ProjectOverviewProjectRow { + serialNo?: number + totalRow?: boolean + projectName?: string + progressText?: string + workStage?: string + totalOutputAmountWan?: number + historicalIssuedRatio?: number + currentSettlementRatio?: number + currentSettlementAmountWan?: number + pendingRatio?: number + employeeAmountMap?: Record +} + +export interface ProjectOverviewEmployeeAmountValue { + quarterOneAmountWan?: number + quarterTwoAmountWan?: number + quarterThreeAmountWan?: number + quarterFourAmountWan?: number + annualTotalAmountWan?: number +} + export interface EmployeeOutputSummaryExportReqVO { year?: number officeId?: number @@ -14,6 +49,31 @@ export interface EmployeeOutputSummaryExportReqVO { sortType?: string } +export interface EmployeeOutputSummaryPreviewRespVO { + year?: number + kValue?: number + rows?: EmployeeOutputSummaryRow[] + totalRow?: EmployeeOutputSummaryRow +} + +export interface EmployeeOutputSummaryRow { + serialNo?: number + employeeName?: string + officeName?: string + quarterOneAmount?: number + quarterTwoAmount?: number + quarterThreeAmount?: number + quarterFourAmount?: number + annualTotalAmount?: number + officeLeaderOrBimAmount?: number + totalAssessmentOutputAmount?: number + expectedCostAmount?: number + basicAssessmentOutputAmount?: number + remainingOutputAmount?: number + estimatedYearEndPerformanceAmount?: number + totalRow?: boolean +} + export interface ProjectBudgetExportReqVO { projectId: number year?: number @@ -35,6 +95,65 @@ export interface SpecialtyPersonOutputExportReqVO { year?: number } +export interface SpecialtyPersonOutputPreviewReqVO { + planningId: number + year?: number +} + +export interface SpecialtyPersonOutputPreviewRespVO { + planningId: number + year: number + projectName?: string + groups?: SpecialtyPersonOutputPreviewGroupRow[] +} + +export interface SpecialtyPersonOutputPreviewGroupRow { + specialtyCode: string + specialtyName?: string + exportable?: boolean + specialtyAmount?: number + roleTotal?: number + personCount?: number + overRatio?: boolean + specialtyQuarterOneAmountWan?: number + specialtyQuarterTwoAmountWan?: number + specialtyQuarterThreeAmountWan?: number + specialtyQuarterFourAmountWan?: number + specialtyYearTotalAmountWan?: number + rows: SpecialtyPersonOutputPreviewRoleRow[] +} + +export interface SpecialtyPersonOutputPreviewRoleRow { + specialtyCode: string + specialtyName?: string + roleCode: string + roleName?: string + roleRatio?: number + roleAmount?: number + personTotalRatio?: number + persons: SpecialtyPersonOutputPreviewPersonRow[] +} + +export interface SpecialtyPersonOutputPreviewPersonRow { + personKey: string + employeeId?: number + employeeName?: string + personRatio?: number + personAmount?: number + roleNames?: string + adjustedPersonRatio?: number + quarterOneRatio?: number + quarterOneAmountWan?: number + quarterTwoRatio?: number + quarterTwoAmountWan?: number + quarterThreeRatio?: number + quarterThreeAmountWan?: number + quarterFourRatio?: number + quarterFourAmountWan?: number + yearTotalRatio?: number + yearTotalAmountWan?: number +} + export const exportProjectBudget = (params: ProjectBudgetExportReqVO) => { return request.download({ url: '/tjt/report/project-budget/export-excel', params }) } @@ -57,10 +176,28 @@ export const exportSpecialtyPersonOutput = (params: SpecialtyPersonOutputExportR return request.download({ url: '/tjt/report/specialty-person-output/export-excel', params }) } +export const getSpecialtyPersonOutputPreview = (params: SpecialtyPersonOutputPreviewReqVO) => { + return request.get({ url: '/tjt/report/specialty-person-output/preview', params }) +} + export const exportProjectOverview = (params: ProjectOverviewExportReqVO) => { return request.download({ url: '/tjt/report/project-overview/export-excel', params }) } +export const getProjectOverviewPreview = (params: ProjectOverviewExportReqVO) => { + return request.get({ + url: '/tjt/report/project-overview/preview', + params: { ...params, _t: Date.now() } + }) +} + export const exportEmployeeOutputSummary = (params: EmployeeOutputSummaryExportReqVO) => { return request.download({ url: '/tjt/report/employee-output-summary/export-excel', params }) } + +export const getEmployeeOutputSummaryPreview = (params: EmployeeOutputSummaryExportReqVO) => { + return request.get({ + url: '/tjt/report/employee-output-summary/preview', + params: { ...params, _t: Date.now() } + }) +} diff --git a/src/views/tjt/employee-year-cost-budget/index.vue b/src/views/tjt/employee-year-cost-budget/index.vue index 5e357c3..b958bda 100644 --- a/src/views/tjt/employee-year-cost-budget/index.vue +++ b/src/views/tjt/employee-year-cost-budget/index.vue @@ -50,13 +50,22 @@ 新增 + + + 按年度生成 + - + @@ -72,7 +81,13 @@ - + + + + + + + + + + + + + + diff --git a/src/views/tjt/employee/index.vue b/src/views/tjt/employee/index.vue index c3df498..5fcaceb 100644 --- a/src/views/tjt/employee/index.vue +++ b/src/views/tjt/employee/index.vue @@ -57,6 +57,17 @@ + + + + + + @@ -76,7 +87,7 @@ - + @@ -95,9 +106,28 @@ prop="registrationSealNo" show-overflow-tooltip /> - - + + + + + - + - +