完善合同管理;

新增结算管理
This commit is contained in:
2023-06-12 01:33:08 +08:00
parent 7f080a4c54
commit df95f7d02c
31 changed files with 3815 additions and 319 deletions

View File

@@ -7,15 +7,15 @@ export interface Contract {
// 合同id
contractId?: any;
// 项目id
projectId: any;
projectId?: any;
// 承租方
companyId: any;
companyId?: any;
// 出租方
customerId: any;
customerId?: any;
// 业务负责人
customerContact?: string;
// 合同编号
contactNumber: string;
contactNumber?: string;
// 签订日期
signDate?: string;
// 开始日期
@@ -30,6 +30,10 @@ export interface Contract {
isInStock?: number;
// 是否自动结算
autoSettle?: number;
// 结算方式
settleMethod?: number;
// 跨月结算日期
extendMonthDate?: number;
userId?: any;
}
@@ -42,5 +46,12 @@ export interface ContractParam extends PageParam {
createTimeStart?: string;
createTimeEnd?: string;
betweenTime?: any;
}
export const ContractSettleMethod = [
'跨月结算',
'自然月结算',
'按日结算',
'系数结算-跨月',
'系数结算-自然月',
]

View File

@@ -0,0 +1,133 @@
import request from '@/utils/request';
import type {ApiResult, PageResult} from '@/api';
import type {ContractSettleEquipment, ContractSettleEquipmentParam} from './model';
/**
* 分页查询合同设备
*/
export async function pageContract(params: ContractSettleEquipmentParam) {
const res = await request.get<ApiResult<PageResult<ContractSettleEquipment>>>(
'/tower/tower-contract-settle-equipment/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询合同设备列表
*/
export async function listContractSettleEquipment(params?: ContractSettleEquipmentParam) {
const res = await request.get<ApiResult<ContractSettleEquipment[]>>(
'/tower/tower-contract-settle-equipment',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询合同设备
*/
export async function getContractSettleEquipment(id: number) {
const res = await request.get<ApiResult<ContractSettleEquipment>>(
'/tower/tower-contract-settle-equipment/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加合同设备
*/
export async function addContractSettleEquipment(data: ContractSettleEquipment) {
const res = await request.post<ApiResult<unknown>>(
'/tower/tower-contract-settle-equipment',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改合同设备
*/
export async function updateContractSettleEquipment(data: ContractSettleEquipment) {
const res = await request.put<ApiResult<unknown>>(
'/tower/tower-contract-settle-equipment',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改合同设备
*/
export async function updateBatchContractSettleEquipment(data: ContractSettleEquipment[]) {
const res = await request.put<ApiResult<unknown>>(
'/tower/tower-contract-settle-equipment/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量添加合同设备
*/
export async function addBatchContractSettleEquipment(data: ContractSettleEquipment[]) {
const res = await request.post<ApiResult<unknown>>(
'/tower/tower-contract-settle-equipment/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除合同设备
*/
export async function removeContractSettleEquipment(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/tower/tower-contract-settle-equipment/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除合同设备
*/
export async function removeBatchContractSettleEquipment(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/tower/tower-contract-settle-equipment/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,39 @@
import type { PageParam } from '@/api';
/**
* 合同
*/
export interface ContractSettleEquipment {
contractSettleId?: any;
// 合同id
contractId: any;
// 设备名
equipmentName: string;
// 规格
equipmentModel: string;
// 进场编号
factoryNo: any;
// 自编号
equipmentNo: any;
// 租期
rentMonth: any;
// 租金
rentAmount: any;
// 进退场费
inOutAmount: any;
// 劳务费
workerAmount: any;
// 其他费用
otherAmount: any;
// 备注
remark?: any;
userId?: any;
}
/**
* 合同搜索条件
*/
export interface ContractSettleEquipmentParam extends PageParam {
contractId?: string;
}

View File

@@ -0,0 +1,133 @@
import request from '@/utils/request';
import type {ApiResult, PageResult} from '@/api';
import type {ContractSettleRule, ContractSettleRuleParam} from './model';
/**
* 分页查询合同设备
*/
export async function pageContract(params: ContractSettleRuleParam) {
const res = await request.get<ApiResult<PageResult<ContractSettleRule>>>(
'/tower/tower-contract-settle-rule/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询合同设备列表
*/
export async function listContractSettleRule(params?: ContractSettleRuleParam) {
const res = await request.get<ApiResult<ContractSettleRule[]>>(
'/tower/tower-contract-settle-rule',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询合同设备
*/
export async function getContractSettleRule(id: number) {
const res = await request.get<ApiResult<ContractSettleRule>>(
'/tower/tower-contract-settle-rule/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加合同设备
*/
export async function addContractSettleRule(data: ContractSettleRule) {
const res = await request.post<ApiResult<unknown>>(
'/tower/tower-contract-settle-rule',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改合同设备
*/
export async function updateContractSettleRule(data: ContractSettleRule) {
const res = await request.put<ApiResult<unknown>>(
'/tower/tower-contract-settle-rule',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改合同设备
*/
export async function updateBatchContractSettleRule(data: ContractSettleRule[]) {
const res = await request.put<ApiResult<unknown>>(
'/tower/tower-contract-settle-rule/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量添加合同设备
*/
export async function addBatchContractSettleRule(data: ContractSettleRule[]) {
const res = await request.post<ApiResult<unknown>>(
'/tower/tower-contract-settle-rule/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除合同设备
*/
export async function removeContractSettleRule(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/tower/tower-contract-settle-rule/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除合同设备
*/
export async function removeBatchContractSettleRule(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/tower/tower-contract-settle-rule/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,18 @@
import type { PageParam } from '@/api';
/**
* 合同
*/
export interface ContractSettleRule {
contractSettleRuleId?: any;
contractId: any;
startDate: string;
endDate: string;
}
/**
* 合同搜索条件
*/
export interface ContractSettleRuleParam extends PageParam {
contractId?: string;
}

View File

@@ -0,0 +1,119 @@
import request from '@/utils/request';
import type {ApiResult, PageResult} from '@/api';
import type {Settle, SettleParam} from './model';
/**
* 分页查询结算
*/
export async function pageSettle(params: SettleParam) {
const res = await request.get<ApiResult<PageResult<Settle>>>(
'/tower/tower-settle/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询合同列表
*/
export async function listSettle(params?: SettleParam) {
const res = await request.get<ApiResult<Settle[]>>(
'/tower/tower-settle',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询合同
*/
export async function getSettle(id: number) {
const res = await request.get<ApiResult<Settle>>(
'/tower/tower-settle/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加合同
*/
export async function addSettle(data: Settle) {
const res = await request.post<ApiResult<unknown>>(
'/tower/tower-settle',
data
);
if (res.data.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改合同
*/
export async function updateSettle(data: Settle) {
const res = await request.put<ApiResult<unknown>>(
'/tower/tower-settle',
data
);
if (res.data.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改合同
*/
export async function updateBatchSettle(data: Settle[]) {
const res = await request.put<ApiResult<unknown>>(
'/tower/tower-settle/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除合同
*/
export async function removeSettle(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/tower/tower-settle/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除合同
*/
export async function removeBatchSettle(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/tower/tower-settle/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,27 @@
import type { PageParam } from '@/api';
/**
* 合同
*/
export interface Settle {
settleId?: any;
settleNo?: any;
status?: any;
contractId?: any;
startDate?: any;
endDate?: string;
settleMethod?: number;
extendMonthDate?: number;
totalAmount?: number;
userId?: any;
contactNumber?: any;
}
/**
* 合同搜索条件
*/
export interface SettleParam extends PageParam {
settleNo?: string;
contractId?: string;
}

View File

@@ -0,0 +1,129 @@
import request from '@/utils/request';
import type {ApiResult, PageResult} from '@/api';
import type {SettleDetail, SettleDetailParam} from './model';
/**
* 分页查询结算
*/
export async function pageSettleDetail(params: SettleDetailParam) {
const res = await request.get<ApiResult<PageResult<SettleDetail>>>(
'/tower/tower-settle-detail/page',
{
params
}
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询合同列表
*/
export async function listSettleDetail(params?: SettleDetailParam) {
const res = await request.get<ApiResult<SettleDetail[]>>(
'/tower/tower-settle-detail',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询合同
*/
export async function getSettleDetail(id: number) {
const res = await request.get<ApiResult<SettleDetail>>(
'/tower/tower-settle-detail/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加合同
*/
export async function addSettleDetail(data: SettleDetail) {
const res = await request.post<ApiResult<unknown>>(
'/tower/tower-settle-detail',
data
);
if (res.data.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改合同
*/
export async function updateSettleDetail(data: SettleDetail) {
const res = await request.put<ApiResult<unknown>>(
'/tower/tower-settle-detail',
data
);
if (res.data.code === 0) {
return res.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量修改合同
*/
export async function updateBatchSettleDetail(data: SettleDetail[]) {
const res = await request.put<ApiResult<unknown>>(
'/tower/tower-settle-detail/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
export async function addBatchSettleDetail(data: SettleDetail[]) {
const res = await request.post<ApiResult<unknown>>(
'/tower/tower-settle-detail/batch',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除合同
*/
export async function removeSettleDetail(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
'/tower/tower-settle-detail/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除合同
*/
export async function removeBatchSettleDetail(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
'/tower/tower-settle-detail/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}

View File

@@ -0,0 +1,33 @@
import type { PageParam } from '@/api';
/**
* 合同
*/
export interface SettleDetail {
settleDetailId?: any;
settleId?: any;
type?: any;
settleCostType?: string;
equipmentName?: string;
equipmentModel?: string;
factoryNo?: string;
startDate?: any;
endDate?: any;
monthAmount?: any;
taxRate?: any;
singleAmount?: any;
num?: any;
unit?: string;
remark?: string;
userId?: any;
days?: any;
dailyAmount?: any;
}
/**
* 合同搜索条件
*/
export interface SettleDetailParam extends PageParam {
settleId?: string;
type?: string;
}