bill.ts 8.9 KB

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