bill.ts 8.5 KB

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