bill.ts 9.4 KB

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