添加基础表维护

This commit is contained in:
lzm
2026-04-25 18:10:45 +08:00
parent 8f9205a6a1
commit 38c634f8de
29 changed files with 4710 additions and 686 deletions

View File

@@ -0,0 +1,65 @@
import request from '@/config/axios'
export interface EmployeeVO {
id?: number
employeeName: string
gender: string
officeId: number
officeName?: string
registrationType?: string
jobTitle?: string
registrationSealNo?: string
entryDate?: string
leaveDate?: string
employeeStatus: string
remark?: string
sortNo?: number
enabledFlag?: boolean
createTime?: string
}
export interface EmployeePageReqVO extends PageParam {
employeeName?: string
officeId?: number
employeeStatus?: string
enabledFlag?: boolean
}
export interface EmployeeSimpleVO {
id: number
employeeName: string
officeId?: number
officeName?: string
employeeStatus?: string
registrationType?: string
jobTitle?: string
}
export const getEmployeePage = (params: EmployeePageReqVO) => {
return request.get({ url: '/tjt/employee/page', params })
}
export const getEmployee = (id: number) => {
return request.get({ url: '/tjt/employee/get', params: { id } })
}
export const createEmployee = (data: EmployeeVO) => {
return request.post({ url: '/tjt/employee/create', data })
}
export const updateEmployee = (data: EmployeeVO) => {
return request.put({ url: '/tjt/employee/update', data })
}
export const deleteEmployee = (id: number) => {
return request.delete({ url: '/tjt/employee/delete', params: { id } })
}
export const getEmployeeSimpleList = (params: {
keyword?: string
officeId?: number
status?: string
enabledFlag?: boolean
}) => {
return request.get({ url: '/tjt/employee/simple-list', params })
}

View File

@@ -0,0 +1,40 @@
import request from '@/config/axios'
export interface EmployeeYearCostBudgetVO {
id?: number
employeeId: number
employeeName?: string
budgetYear: number
expectedCostAmount: number
remark?: string
sortNo?: number
enabledFlag?: boolean
createTime?: string
}
export interface EmployeeYearCostBudgetPageReqVO extends PageParam {
employeeId?: number
employeeName?: string
budgetYear?: number
enabledFlag?: boolean
}
export const getEmployeeYearCostBudgetPage = (params: EmployeeYearCostBudgetPageReqVO) => {
return request.get({ url: '/tjt/employee-year-cost-budget/page', params })
}
export const getEmployeeYearCostBudget = (id: number) => {
return request.get({ url: '/tjt/employee-year-cost-budget/get', params: { id } })
}
export const createEmployeeYearCostBudget = (data: EmployeeYearCostBudgetVO) => {
return request.post({ url: '/tjt/employee-year-cost-budget/create', data })
}
export const updateEmployeeYearCostBudget = (data: EmployeeYearCostBudgetVO) => {
return request.put({ url: '/tjt/employee-year-cost-budget/update', data })
}
export const deleteEmployeeYearCostBudget = (id: number) => {
return request.delete({ url: '/tjt/employee-year-cost-budget/delete', params: { id } })
}

View File

@@ -0,0 +1,45 @@
import request from '@/config/axios'
export interface OfficeVO {
id?: number
officeName: string
officeCode?: string
sortNo?: number
enabledFlag?: boolean
remark?: string
createTime?: string
}
export interface OfficePageReqVO extends PageParam {
officeName?: string
enabledFlag?: boolean
}
export interface OfficeSimpleVO {
id: number
officeName: string
}
export const getOfficePage = (params: OfficePageReqVO) => {
return request.get({ url: '/tjt/office/page', params })
}
export const getOffice = (id: number) => {
return request.get({ url: '/tjt/office/get', params: { id } })
}
export const createOffice = (data: OfficeVO) => {
return request.post({ url: '/tjt/office/create', data })
}
export const updateOffice = (data: OfficeVO) => {
return request.put({ url: '/tjt/office/update', data })
}
export const deleteOffice = (id: number) => {
return request.delete({ url: '/tjt/office/delete', params: { id } })
}
export const getOfficeSimpleList = () => {
return request.get({ url: '/tjt/office/simple-list' })
}

View File

@@ -9,11 +9,10 @@ export interface ProjectOutputSplitVO {
year?: number
assessmentOutputValue?: number
projectManagerName?: string
projectManagerRatio: number
projectManagerAmount?: number
engineeringLeaderName?: string
engineeringLeaderRatio: number
engineeringLeaderAmount?: number
projectLeadName?: string
projectLeadRatio: number
projectLeadAmount?: number
officeRatio: number
officeAmount?: number
archRatio: number
@@ -35,8 +34,7 @@ export interface ProjectOutputSplitVO {
export type ProjectOutputSplitSaveVO = Pick<
ProjectOutputSplitVO,
| 'planningId'
| 'projectManagerRatio'
| 'engineeringLeaderRatio'
| 'projectLeadRatio'
| 'officeRatio'
| 'archRatio'
| 'decorRatio'

View File

@@ -4,6 +4,8 @@ export interface ProjectPlanningVO {
id?: number
projectId: number
ownershipType: string
designPart?: string
buildingType?: string
calculationMethod: string
planningContent: string
planningAmount?: number
@@ -31,7 +33,6 @@ export interface ProjectPlanningVO {
workingDayUnitPrice?: number
guidanceUnitPrice?: number
guidanceTotalPrice?: number
virtualTotalPrice?: number
calculationRatio?: number
contractUnitPrice?: number
totalAdjustmentFactor?: number

View File

@@ -9,8 +9,10 @@ export interface ProjectProfitVO {
comprehensivePlanningAmount?: number
subcontractPlanningAmount?: number
majorOutputValue?: number
expectedKValue?: number
majorExpectedPerformance?: number
innovationOutputRate?: number
innovationOutputValue?: number
otherCost?: number
profitLossValue?: number
profitLossRate?: number
projectStartYear?: number

View File

@@ -1,5 +1,15 @@
import request from '@/config/axios'
export interface ProjectRolePersonVO {
id?: number
projectId?: number
roleCode: 'project_manager' | 'engineering_principal'
roleName?: string
employeeId?: number
employeeName?: string
sortNo?: number
}
export interface ProjectVO {
id?: number
projectName: string
@@ -13,18 +23,30 @@ export interface ProjectVO {
projectManagerName?: string
engineeringPrincipalName?: string
projectType?: string
projectCategory?: string
projectStartYear?: number
projectStatus?: string
archiveFlag?: boolean
archiveTime?: string
pauseReason?: string
terminateReason?: string
finalSettlementAmount?: number
expectedKValue?: number
innovationOutputRate?: number
otherCost?: number
rolePersons?: ProjectRolePersonVO[]
createTime?: string
}
export type ProjectSaveVO = Omit<ProjectVO, 'createTime'>
export type ProjectSaveVO = Omit<
ProjectVO,
'createTime' | 'archiveTime' | 'projectManagerName' | 'engineeringPrincipalName'
>
export interface ProjectPageReqVO extends PageParam {
projectName?: string
contractSignedFlag?: boolean
projectStartYear?: number
projectStatus?: string
createTime?: string[]
}

View File

@@ -0,0 +1,48 @@
import request from '@/config/axios'
export interface ProjectOverviewExportReqVO {
year?: number
specialtyCode?: string
sortType?: string
}
export interface EmployeeOutputSummaryExportReqVO {
year?: number
officeId?: number
employeeId?: number
employeeStatus?: string
sortType?: string
}
export const exportProjectBudget = (projectId: number) => {
return request.download({ url: '/tjt/report/project-budget/export-excel', params: { projectId } })
}
export const exportProjectQuarterOutput = (planningId: number) => {
return request.download({
url: '/tjt/report/project-quarter-output/export-excel',
params: { planningId }
})
}
export const exportProjectLeadQuarterOutput = (planningId: number) => {
return request.download({
url: '/tjt/report/project-lead-quarter-output/export-excel',
params: { planningId }
})
}
export const exportSpecialtyPersonOutput = (params: {
planningId: number
specialtyCode: string
}) => {
return request.download({ url: '/tjt/report/specialty-person-output/export-excel', params })
}
export const exportProjectOverview = (params: ProjectOverviewExportReqVO) => {
return request.download({ url: '/tjt/report/project-overview/export-excel', params })
}
export const exportEmployeeOutputSummary = (params: EmployeeOutputSummaryExportReqVO) => {
return request.download({ url: '/tjt/report/employee-output-summary/export-excel', params })
}

View File

@@ -1,7 +1,8 @@
import request from '@/config/axios'
export interface SpecialtyRolePersonVO {
personName?: string
employeeId?: number
employeeName?: string
personRatio?: number
personAmount?: number
}

View File

@@ -0,0 +1,49 @@
import request from '@/config/axios'
export interface YearKValueVO {
id?: number
kYear?: number
kValue?: number
remark?: string
enabledFlag?: boolean
createTime?: string
}
export interface YearKValuePageReqVO extends PageParam {
kYear?: number
enabledFlag?: boolean
}
const normalizeYearKValue = (data: any): YearKValueVO => ({
id: data?.id,
kYear: data?.kYear ?? data?.kyear,
kValue: data?.kValue ?? data?.kvalue,
remark: data?.remark,
enabledFlag: data?.enabledFlag ?? data?.enabledflag,
createTime: data?.createTime ?? data?.createtime
})
export const getYearKValuePage = async (params: YearKValuePageReqVO) => {
const data = await request.get({ url: '/tjt/year-k-value/page', params })
return {
...data,
list: Array.isArray(data?.list) ? data.list.map(normalizeYearKValue) : []
}
}
export const getYearKValue = async (id: number) => {
const data = await request.get({ url: '/tjt/year-k-value/get', params: { id } })
return normalizeYearKValue(data)
}
export const createYearKValue = (data: YearKValueVO) => {
return request.post({ url: '/tjt/year-k-value/create', data })
}
export const updateYearKValue = (data: YearKValueVO) => {
return request.put({ url: '/tjt/year-k-value/update', data })
}
export const deleteYearKValue = (id: number) => {
return request.delete({ url: '/tjt/year-k-value/delete', params: { id } })
}