Files
bbq/src/app/shared/services/business/shipper-base.service.ts
Taric Xin 30b24c2e7a edit
2022-02-25 15:08:32 +08:00

241 lines
6.2 KiB
TypeScript

import { Injectable, Injector } from '@angular/core';
import { BaseService } from '../core/base.service';
import { map } from 'rxjs/operators';
import { cacheConf } from '@conf/cache.conf';
import { EACacheService } from '..';
import { of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class ShipperBaseService extends BaseService {
$api_get_carless_carrier = ``; // 获取承运人
$api_get_enterprise_project = `/api/mdc/cuc/enterpriseProject/getEnterpriseProjectList`; // 所属项目列表
$api_get_staff_list = `/api/mdc/cuc/userApp/getStaffList`; //查询企业项目员工列表(录单员)
$api_get_network_freight_forwarder_list = `/api/mdc/cuc/networkTransporter/findAll`; // 获取网络货运人
$api_get_settlement_customer_list = `/api/mdc/cuc/settlementCustomer/findAll`; // 查找所有结算客户信息(下拉)
$api_get_crm_customer_list = `/api/mdc/cuc/crmCustomer/findAll`; // 查找所有Crm客户信息(下拉)
$api_get_network_freight_forwarder_one = `/api/mdc/cuc/networkTransporter/get`; // 获取网络货运人
$api_get_roles = `/api/mdc/cuc/roleInfo/getRoleList`; // 获取角色列表
// 根据FullKey获取系统子配置(树)
$api_getSysConfigTreeByParentFullKey = `/api/mdc/pbc/sysConfig/getSysConfigTreeByParentFullKey`;
envCache: any;
list: any[] = [];
constructor(public injector: Injector, public eaCacheSrv: EACacheService) {
super(injector);
this.envCache = this.eaCacheSrv.get(cacheConf.env);
}
/**
* 获取无车承运人
* @returns
*/
getCarlessCarrier() {
const params = {};
return this.request(this.$api_get_carless_carrier, params, 'POST').pipe(
map(res => {
if (res) {
res.map((m: any) => {
return { label: m.platformName, value: m.operationId };
});
}
})
);
}
/**
* 获取所属项目
* @returns
*/
getEnterpriseProject(params?: any) {
if (this.list.length > 0) {
return of(this.list);
}
return this.request(this.$api_get_enterprise_project, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const list = res.map((item: any) => {
return {
label: item.projectName,
value: item.id
};
});
const obj = [{ value: '', label: '全部' }];
this.list = [...obj, ...list];
return [...obj, ...list];
})
);
}
/**
* 获取录单员
* @returns
*/
getStaffList(params = {}, containerAll = true) {
return this.request(this.$api_get_staff_list, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const list = res.map((item: any) => {
return {
label: item.name,
value: item.appUserId
};
});
const obj = [];
if (containerAll) {
obj.push({ label: '全部', value: '' });
}
return [...obj, ...list];
})
);
}
/**
* 获取调度员
* @returns
*/
getStaffList2(params = {}) {
return this.request(this.$api_get_staff_list, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const list = res.map((item: any) => {
return {
label: `${item.name}/${item.telephone}`,
value: item.appUserId
};
});
return [...list];
})
);
}
/**
* 获取网络货运人
* @returns
*/
getNetworkFreightForwarder(params = {}, containerAll = false) {
return this.request(this.$api_get_network_freight_forwarder_list, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const list = res.map((item: any) => {
return {
label: item.enterpriseName,
value: item.id
};
});
const obj = [];
if (containerAll) {
obj.push({ label: '全部', value: '' });
}
return [...obj, ...list];
})
);
}
/**
* 获取CRM客户
* @returns
*/
getCRM(params = {}, containerAll = false) {
return this.request(this.$api_get_crm_customer_list, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const list = res.map((item: any) => {
return {
label: item.customerName,
value: item.id
};
});
const obj = [];
if (containerAll) {
obj.push({ label: '全部', value: '' });
}
return [...obj, ...list];
})
);
}
/**
* 获取结算客户
* @returns
*/
getCloseAccount(params = {}, containerAll = false) {
return this.request(this.$api_get_settlement_customer_list, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const list = res.map((item: any) => {
return {
label: item.customerName,
value: item.id
};
});
const obj = [];
if (containerAll) {
obj.push({ label: '全部', value: '' });
}
return [...obj, ...list];
})
);
}
/**
* 获取角色列表
* @returns
*/
getRoles(params = {}, containerAll = false) {
return this.request(this.$api_get_roles, params).pipe(
map((res: any) => {
if (!res) {
return [];
}
const list = res.map((item: any) => {
return {
label: item.roleName,
value: item.id
};
});
const obj = [];
if (containerAll) {
obj.push({ label: '全部', value: '' });
}
return [...obj, ...list];
})
);
}
/**
* 根据ID获取网络货运人
* @returns
*/
getNetworkTransporterById(id: string) {
return this.request(this.$api_get_network_freight_forwarder_one, { id });
}
// 根据FullKey获取系统子配置(树)
loadConfigByKey(configFullKey: string = '') {
return this.http.post(this.$api_getSysConfigTreeByParentFullKey, { configFullKey }).pipe(
map((m: any) => {
if (m.success === true) {
return (m.data as any[]) || [];
} else {
this.msgSrv.warning(m.msg);
return [];
}
})
);
}
}