bill.ts 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. import { GljType, IComponent } from './glj';
  2. import { FileType, ProjectType } from './project';
  3. import { IElfItem } from './billGuide';
  4. import { BRType, IBRBase, IFees, INumFileRef, ITreeScm } from './base';
  5. import { ICalcItem } from './calculation';
  6. // 清单固定类别
  7. export enum FixedFlag {
  8. // 分部分项工程
  9. SUB_ENGINERRING = 1,
  10. // 措施项目
  11. MEASURE = 2,
  12. // 施工技术措施项目
  13. CONSTRUCTION_TECH = 3,
  14. // 安全文明施工按实计算费用
  15. SAFETY_CONSTRUCTION_ACTUAL = 4,
  16. // 施工组织措施专项费用
  17. CONSTRUCTION_ORGANIZATION = 5,
  18. // 安全文明施工专项费用
  19. SAFETY_CONSTRUCTION = 6,
  20. // 其他项目
  21. OTHER = 7,
  22. // 暂列金额
  23. PROVISIONAL = 8,
  24. // 暂估价
  25. ESTIMATE = 9,
  26. // 材料(工程设备)暂估价
  27. MATERIAL_PROVISIONAL = 10,
  28. // 专业工程暂估价
  29. ENGINEERING_ESITIMATE = 11,
  30. // 计日工
  31. DAYWORK = 12,
  32. // 总承包服务费
  33. TURN_KEY_CONTRACT = 13,
  34. // 索赔与现场签证
  35. CLAIM_VISA = 14,
  36. // 规费
  37. CHARGE = 15,
  38. // 社会保险费及住房公积金 Social insurance fee and housing accumulation fund
  39. SOCIAL_INSURANCE_HOUSING_FUND = 16,
  40. // 工程排污费 charges for disposing pollutants
  41. POLLUTANTS = 17,
  42. // 税金
  43. TAX = 18,
  44. // 工程造价
  45. ENGINEERINGCOST = 19,
  46. // 增值税
  47. ADDED_VALUE_TAX = 20,
  48. // 专项技术措施暂估价
  49. SPECIAL_TECH_PROVISIONAL = 21,
  50. // 专业发包工程管理费
  51. LET_CONTRACT_MANAGEMENT = 22,
  52. // 人工
  53. LABOUR = 23,
  54. // 材料
  55. MATERIAL = 24,
  56. // 施工机械
  57. MACHINE = 25,
  58. // 索赔
  59. CLAIM = 26,
  60. // 现场签证
  61. VISA = 27,
  62. // 附加税
  63. ADDITIONAL_TAX = 28,
  64. // 环境保护税
  65. ENVIRONMENTAL_PROTECTION_TAX = 29,
  66. // 建设工程竣工档案编制费
  67. PROJECT_COMPLETE_ARCH_FEE = 30,
  68. // 住宅工程质量分户验收费
  69. HOUSE_QUALITY_ACCEPT_FEE = 31,
  70. // 组织措施费
  71. ORGANIZATION = 32,
  72. // 其他措施费
  73. OTHER_MEASURE_FEE = 33,
  74. // 绿色施工安全防护措施费
  75. GREEN_MEASURE_FEE = 34,
  76. // 预算包干费
  77. BUDGET_INCLUDE_WORK_FEE = 35,
  78. // 工程优质费
  79. PROJECT_HIGH_QUALITY_FEE = 36,
  80. // 概算幅度差
  81. BUDGET_ESTIMATE_DIFF = 37,
  82. // 其他费用(与其他项目不同,参考广东的用法)
  83. OTHER_FEE = 38,
  84. }
  85. export interface IJobContent {
  86. seq: number;
  87. content: string;
  88. isChecked: boolean;
  89. }
  90. export interface IEigenvalue {
  91. value: string;
  92. isSelected: boolean;
  93. }
  94. export interface IItemCharacter {
  95. seq: number;
  96. character: string;
  97. eigenvalueList: string[]; // 特征值下拉项(以前需要,现在暂时取消了下拉。保留以扩展)
  98. eigenvalue: string;
  99. isChecked: boolean;
  100. }
  101. // 书签
  102. export interface IBookmark {
  103. ID: string;
  104. type: string;
  105. content: string;
  106. creatorName: string;
  107. creatorID: string;
  108. createTime: number;
  109. telNo: string;
  110. kind: BRType;
  111. institution?: string;
  112. procunit?: string;
  113. processID?: string;
  114. }
  115. // 修改书签
  116. export interface ISetBookmark {
  117. ID: string;
  118. content: string;
  119. }
  120. // 价格区间
  121. export interface IPriceScope {
  122. minUnitPrice: number;
  123. maxUnitPrice: number;
  124. }
  125. export enum IndexCalcType {
  126. STDEV = 1, // 均方差
  127. AVG = 2, // 平均值
  128. }
  129. export interface ICheckOptions {
  130. fileType: string | string[];
  131. year: string | string[];
  132. projLocation: string | string[];
  133. projectType: string;
  134. engineerType: string;
  135. classCode?: string;
  136. indexType?: string;
  137. constructionIndexTypes?: string[]; // 建设项目的工程分类,查询条件用
  138. firstSingleIndexTypes?: string[]; // 第一个单项工程的工程分类,查询用
  139. unit?: string;
  140. calcType?: IndexCalcType;
  141. type?: ProjectType; // 项目类型
  142. keyword?: string; // 区间来源中的输入搜索框
  143. }
  144. export interface IBill extends IBRBase {
  145. flag?: FixedFlag; // 清单固定类别
  146. recharge?: string; // 补注
  147. ruleText?: string; // 工程量计算规则
  148. jobContents?: IJobContent[]; // 工作内容
  149. jobContentText?: string;
  150. itemCharacters?: IItemCharacter[]; // 项目特征
  151. itemCharacterText?: string;
  152. elfItems?: IElfItem[]; // 选中的清单精灵选项
  153. formula?: string; // 基数计算
  154. formulaValue?: number; // 基数计算的值
  155. readjustFormulaValue?: number; // 调价基数计算的值
  156. isAdd?: boolean; // 是否用户新增的清单
  157. feeRateID?: string; // 费率ID
  158. feeRate?: number; // 费率值
  159. mainBills?: boolean; // 主要清单
  160. lockUnitPrice?: boolean; // 锁定单价
  161. maxPrice?: number; // 最高限价
  162. minPrice?: number; // 最低限价
  163. engContent?: string; // 工程内容
  164. serviceContent?: string; // 服务内容
  165. claimVisa?: string; // 签证及索赔依据
  166. checkFormResult?: string; // 形式检测结果
  167. checkMaterialResult?: string; // 材料检测结果
  168. checkPriceDiffResult?: string; // 材价差检测结果
  169. priceScope?: IPriceScope; // 价格区间
  170. classCode?: string; // 类别别名,清单经过机器检测后会加上
  171. groupCode?: string; // 类别组,当机器检测结果不正确时,纠正措施
  172. checkRationResult?: string; // 机器检测结果(必套、选套、错套定额相关)
  173. checked?: boolean; // 是否已经进行清单检测过的清单,为true表式已经检测过了(用来计算通过率)
  174. billFormChecked?: boolean; // 是否已经进行清单形式检测
  175. priceFormChecked?: boolean; // 是否已经进行清单形式检测
  176. checkOptions?: ICheckOptions; // 清单检测时保存的筛选条件
  177. setParentQuantity?: boolean; // 是否打勾了填父量
  178. [key: string]: any; // 剩下的之后补充
  179. }
  180. export interface IBills {
  181. projectID: string; // 项目ID
  182. bills: IBill[];
  183. }
  184. export interface IStdJobContent {
  185. id: number;
  186. code: number;
  187. content: string;
  188. billsLibId: number;
  189. deleted: boolean;
  190. }
  191. export interface IStdItemCharacter {
  192. id: number;
  193. code: number;
  194. content: string;
  195. itemValue: any;
  196. billsLibId: number;
  197. deleted: boolean;
  198. }
  199. export interface IJobOrItem {
  200. id: string;
  201. serialNo: number;
  202. }
  203. // 标准清单原始数据
  204. export interface IStdBillResult {
  205. ID: string;
  206. ParentID: string;
  207. NextSiblingID: string;
  208. code: string;
  209. name: string;
  210. unit: string;
  211. ruleText: string;
  212. engineering: number; // 工程专业,填计算程序工程专业ID
  213. Expression: string;
  214. comment: string; // 备注,后台清单精灵录入
  215. jobs: IJobOrItem[];
  216. items: IJobOrItem[];
  217. recharge: string;
  218. billsLibId: number;
  219. sectionInfo?: { first?: string; second?: string; third?: string };
  220. // 经济指标属性
  221. economicType: string; // 工程经济指标类别
  222. quantityIndexType: string; // 工程量指标类别
  223. quantityIndexUnit: string; // 工程量指标单位
  224. quantityIndexCoe: number; // 单位转换系数
  225. deleted?: boolean;
  226. }
  227. // 标准清单(更正属性命名规范)
  228. export interface IStdBill extends ITreeScm {
  229. code: string;
  230. name: string;
  231. unit: string;
  232. ruleText: string;
  233. engineering: number; // 工程专业,填计算程序工程专业ID
  234. expression: string;
  235. comment: string; // 备注,后台清单精灵录入
  236. jobs: IJobOrItem[];
  237. items: IJobOrItem[];
  238. recharge: string;
  239. billLibID: number;
  240. // 经济指标属性
  241. economicType: string; // 工程经济指标类别
  242. quantityIndexType: string; // 工程量指标类别
  243. quantityIndexUnit: string; // 工程量指标单位
  244. quantityIndexCoe: number; // 单位转换系数
  245. }
  246. export interface IStdBillCodesMap {
  247. [libID: string]: string[];
  248. }
  249. export interface IBillClass {
  250. compilationID: string;
  251. class: number; // 类别
  252. code: string;
  253. name: string;
  254. itemCharacter: string; // 必填特征排列组合
  255. classCode: string; // 类别别名 040101001@一、二类土@人工
  256. requiredRationIDs: number[][]; // 必套定额ID
  257. optionalRationIDs: number[]; // 选套定额ID
  258. errorRationIDs: number[]; // 错套定额ID
  259. }
  260. export interface IIndexComponent extends IComponent {
  261. marketPrice: string;
  262. basePrice: string;
  263. }
  264. export interface IBillIndexGlj {
  265. ID: string;
  266. type: GljType;
  267. code: string;
  268. name: string;
  269. specs?: string;
  270. unit: string;
  271. quantity: string;
  272. marketPrice: string;
  273. basePrice: string;
  274. rationQuantity: string;
  275. components?: IIndexComponent[];
  276. }
  277. export interface IBillIndexRation {
  278. ID?: string;
  279. parentID?: string;
  280. seq?: number;
  281. code: string;
  282. name: string;
  283. unit: string;
  284. quantity: string;
  285. unitPrice: string;
  286. rationGljList: IBillIndexGlj[];
  287. dynamicIndex?: Record<string, IFees>; // 动态指标,年-月为key 综合指标的映射
  288. fees?: IFees; // 费用字段
  289. calcItems?: ICalcItem[];
  290. }
  291. export interface IFBIndex {
  292. ID: string;
  293. parentID: string;
  294. seq: number;
  295. sourceName?: string; // 来源项目
  296. constructionName: string;
  297. singleName: string;
  298. unitName: string;
  299. constructionID: string;
  300. singleID: string;
  301. unitID: string;
  302. code: string;
  303. name: string;
  304. unit: string;
  305. quantity: string;
  306. unitPrice: string; // 经济指标--综合单价
  307. projLocation?: string; // 工程所在地
  308. year?: string; // 信息价年
  309. month?: string; // 信息价月
  310. fileType?: FileType; // 文件类型
  311. indexTypes?: string[]; // 项目分类或者说功能分类--
  312. constructionIndexType?: string; // 建设项目的工程分类,查询条件用
  313. firstSingleIndexType?: string; // 第一个单项工程的工程分类,查询用
  314. dynamicIndex?: Record<string, IFees>; // 动态指标,年-月为key 综合指标的映射
  315. minUnitPrice?: string;
  316. maxUnitPrice?: string;
  317. fees?: IFees; // 费用字段
  318. compilationID?: string;
  319. }
  320. export interface IBillIndex extends IFBIndex {
  321. classCode: string; // 类别别名
  322. groupCode?: string;
  323. itemCharacter: string;
  324. rations?: IBillIndexRation[];
  325. dynamicGljMap?: Record<string, Record<string, string>>; // 动态工料机价格指标,年-月为key 工料机工五大项为子key value为市场价
  326. }
  327. export enum LibType {
  328. BILL = '1',
  329. NORM = '2',
  330. }
  331. export interface IBillOption extends INumFileRef {
  332. libType?: LibType;
  333. }
  334. // 清单检测方法
  335. export enum BillCheckBy {
  336. CODE = 'code',
  337. AI = 'AI',
  338. }