bill.ts 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. import { IComponent } from './glj';
  2. import { FileType } from './project';
  3. import { IElfItem } from './billGuide';
  4. import { BRType, IBRBase, 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. }
  112. // 修改书签
  113. export interface ISetBookmark {
  114. ID: string;
  115. content: string;
  116. }
  117. // 价格区间
  118. export interface IPriceScope {
  119. minUnitPrice: number;
  120. maxUnitPrice: number;
  121. }
  122. export interface ICheckOptions {
  123. fileType: string;
  124. year: string;
  125. projLocation: string;
  126. projectType: string;
  127. engineerType: string;
  128. classCode?: string;
  129. indexType?: string;
  130. unit?: string;
  131. }
  132. export interface IBill extends IBRBase {
  133. flag?: FixedFlag; // 清单固定类别
  134. recharge?: string; // 补注
  135. ruleText?: string; // 工程量计算规则
  136. jobContents?: IJobContent[]; // 工作内容
  137. jobContentText?: string;
  138. itemCharacters?: IItemCharacter[]; // 项目特征
  139. itemCharacterText?: string;
  140. elfItems?: IElfItem[]; // 选中的清单精灵选项
  141. formula?: string; // 基数计算
  142. formulaValue?: number; // 基数计算的值
  143. readjustFormulaValue?: number; // 调价基数计算的值
  144. isAdd?: boolean; // 是否用户新增的清单
  145. feeRateID?: string; // 费率ID
  146. feeRate?: number; // 费率值
  147. mainBills?: boolean; // 主要清单
  148. lockUnitPrice?: boolean; // 锁定单价
  149. maxPrice?: number; // 最高限价
  150. minPrice?: number; // 最低限价
  151. engContent?: string; // 工程内容
  152. serviceContent?: string; // 服务内容
  153. claimVisa?: string; // 签证及索赔依据
  154. checkFormResult?: string; // 形式检测结果
  155. checkMaterialResult?: string; // 材料检测结果
  156. checkPriceDiffResult?: string; // 材价差检测结果
  157. priceScope?: IPriceScope; // 价格区间
  158. classCode?: string; // 类别别名,清单经过机器检测后会加上
  159. groupCode?: string; // 类别组,当机器检测结果不正确时,纠正措施
  160. checkRationResult?: string; // 机器检测结果(必套、选套、错套定额相关)
  161. checked?: boolean; // 是否已经进行清单检测过的清单,为true表式已经检测过了(用来计算通过率)
  162. checkOptions?: ICheckOptions; // 清单检测时保存的筛选条件
  163. setParentQuantity?: boolean; // 是否打勾了填父量
  164. [key: string]: any; // 剩下的之后补充
  165. }
  166. export interface IBills {
  167. projectID: string;
  168. bills: IBill[];
  169. }
  170. export interface IStdJobContent {
  171. id: number;
  172. code: number;
  173. content: string;
  174. billsLibId: number;
  175. deleted: boolean;
  176. }
  177. export interface IStdItemCharacter {
  178. id: number;
  179. code: number;
  180. content: string;
  181. itemValue: any;
  182. billsLibId: number;
  183. deleted: boolean;
  184. }
  185. export interface IJobOrItem {
  186. id: string;
  187. serialNo: number;
  188. }
  189. // 标准清单原始数据
  190. export interface IStdBillResult {
  191. ID: string;
  192. ParentID: string;
  193. NextSiblingID: string;
  194. code: string;
  195. name: string;
  196. unit: string;
  197. ruleText: string;
  198. engineering: number; // 工程专业,填计算程序工程专业ID
  199. Expression: string;
  200. comment: string; // 备注,后台清单精灵录入
  201. jobs: IJobOrItem[];
  202. items: IJobOrItem[];
  203. recharge: string;
  204. billsLibId: number;
  205. sectionInfo?: { first?: string; second?: string; third?: string };
  206. // 经济指标属性
  207. economicType: string; // 工程经济指标类别
  208. quantityIndexType: string; // 工程量指标类别
  209. quantityIndexUnit: string; // 工程量指标单位
  210. quantityIndexCoe: number; // 单位转换系数
  211. deleted?: boolean;
  212. }
  213. // 标准清单(更正属性命名规范)
  214. export interface IStdBill extends ITreeScm {
  215. code: string;
  216. name: string;
  217. unit: string;
  218. ruleText: string;
  219. engineering: number; // 工程专业,填计算程序工程专业ID
  220. expression: string;
  221. comment: string; // 备注,后台清单精灵录入
  222. jobs: IJobOrItem[];
  223. items: IJobOrItem[];
  224. recharge: string;
  225. billLibID: number;
  226. // 经济指标属性
  227. economicType: string; // 工程经济指标类别
  228. quantityIndexType: string; // 工程量指标类别
  229. quantityIndexUnit: string; // 工程量指标单位
  230. quantityIndexCoe: number; // 单位转换系数
  231. }
  232. export interface IStdBillCodesMap {
  233. [libID: string]: string[];
  234. }
  235. export interface IBillClass {
  236. compilationID: string;
  237. class: number; // 类别
  238. code: string;
  239. name: string;
  240. itemCharacter: string; // 必填特征排列组合
  241. classCode: string; // 类别别名 040101001@一、二类土@人工
  242. requiredRationIDs: number[][]; // 必套定额ID
  243. optionalRationIDs: number[]; // 选套定额ID
  244. errorRationIDs: number[]; // 错套定额ID
  245. }
  246. export interface IIndexComponent extends IComponent {
  247. marketPrice: string;
  248. basePrice: string;
  249. }
  250. export interface IBillIndexGlj {
  251. code: string;
  252. name: string;
  253. specs: string;
  254. unit: string;
  255. quantity: string;
  256. marketPrice: string;
  257. basePrice: string;
  258. rationQuantity: string;
  259. components?: IIndexComponent[];
  260. }
  261. export interface IBillIndexRation {
  262. ID?: string;
  263. parentID?: string;
  264. seq?: number;
  265. code: string;
  266. name: string;
  267. unit: string;
  268. quantity: string;
  269. unitPrice: string;
  270. rationGljList: IBillIndexGlj[];
  271. dynamicIndex?: Record<string, string>; // 动态指标,年-月为key 综合指标的映射
  272. }
  273. export interface IFBIndex {
  274. ID?: string;
  275. parentID?: string;
  276. seq?: number;
  277. constructionName: string;
  278. singleName: string;
  279. unitName: string;
  280. constructionID: string;
  281. singleID: string;
  282. unitID: string;
  283. code: string;
  284. name: string;
  285. unit: string;
  286. quantity: string;
  287. unitPrice: string; // 经济指标--综合单价
  288. projLocation?: string; // 工程所在地
  289. year?: string; // 信息价年
  290. month?: string; // 信息价月
  291. fileType?: FileType; // 文件类型
  292. indexTypes?: string[]; // 项目分类或者说功能分类--
  293. dynamicIndex?: Record<string, string>; // 动态指标,年-月为key 综合指标的映射
  294. minUnitPrice?: string;
  295. maxUnitPrice?: string;
  296. }
  297. export interface IBillIndex extends IFBIndex {
  298. classCode: string; // 类别别名
  299. groupCode?: string;
  300. itemCharacter: string;
  301. rations?: IBillIndexRation[];
  302. }
  303. export enum LibType {
  304. BILL = '1',
  305. NORM = '2',
  306. }
  307. export interface IBillOption extends INumFileRef {
  308. libType?: LibType;
  309. }