anhui_maanshan.js 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * @Descripttion: 安徽-马鞍山 接口
  3. * @Author: vian
  4. * @Date: 2020-08-17 15:40:08
  5. */
  6. // INTERFACE_EXPORT =,必须这么写,这样才能在导出时动态加载脚本后,覆盖前端代码
  7. INTERFACE_EXPORT = (() => {
  8. 'use strict';
  9. /**
  10. *
  11. * @param {String} userID - 用户ID
  12. * @param {String} areaKey - 地区标识,如:'安徽@马鞍山',有些地区的接口只是取值上有不同,共有一个接口脚本, 需要通过地区标识确定一些特殊处理
  13. * @param {Number} exportKind - 导出类型,招标、投标、控制价
  14. * @param {Object} projectData - 项目表数据:{ 建设项目Data, children: [单位工程...] }
  15. * @param {Object} tenderDetailMap - 单位工程ID与getData接口数据(projectObj.project的结构)的映射。
  16. * @return {Promise<Array>} - 返回的数据结构必须按照规定:[{ data, exportKind, fileName }],参考web\building_saas\standard_interface\index.js中的注释说明
  17. */
  18. async function entry(userID, areaKey, exportKind, projectData, tenderDetailMap) {
  19. const {
  20. CONFIG: { TYPE, EXPORT_KIND },
  21. UTIL: {
  22. getValueByKey,
  23. },
  24. Element,
  25. } = XML_EXPORT_BASE;
  26. const czzt = {
  27. [EXPORT_KIND.BID_INVITATION]: '招标',
  28. [EXPORT_KIND.BID_SUBMISSION]: '投标',
  29. [EXPORT_KIND.CONTROL]: '招标控制',
  30. };
  31. // 建设项目基本信息
  32. function JingJiBiao(projectName, information) {
  33. const attrs = [
  34. { name: 'Xmbh', value: getValueByKey(information, 'projNum') }, // 项目编号
  35. { name: 'Xmmc', value: projectName }, // 项目名称
  36. { name: 'Bzlx', value: '清单' }, // 项目编制类型
  37. { name: 'Jjyj', value: '【18清单】2018部颁清单计价依据' }, // 计价依据
  38. { name: 'Xmqzzh', value: getValueByKey(information, '') }, // 项目起止桩号
  39. { name: 'Jsdw', value: getValueByKey(information, '') }, // 建设单位
  40. { name: 'Czzt', value: czzt[exportKind] }, // 操作状态:招标、投标、招标控制,即导出接口时,所选的文件类型
  41. { name: 'Jsfs', value: getValueByKey(information, '') || '1', type: TYPE.INT }, // 计税方式,默认1。1=一般计税 2=简易计税
  42. { name: 'Version', value: '1.0' },
  43. ];
  44. Element.call(this, 'JingJiBiao', attrs);
  45. }
  46. // 招标信息
  47. function ZhaoBiaoXx(information) {
  48. const attrs = [
  49. { name: 'Zbr', value: getValueByKey(information, '') }, // 招标人
  50. { name: 'Zxr', value: getValueByKey(information, '') }, // 造价咨询人
  51. { name: 'ZbrDb', value: getValueByKey(information, '') }, // 招标人法定代表人或其授权人
  52. { name: 'ZxrDb', value: getValueByKey(information, '') }, // 造价咨询人法定代表人或其授权人
  53. { name: 'Bzr', value: getValueByKey(information, '') }, // 编制人
  54. { name: 'Fhr', value: getValueByKey(information, '') }, // 复核人
  55. { name: 'BzTime', value: getValueByKey(information, ''), type: TYPE.DATE }, // 编制时间
  56. { name: 'FhTime', value: getValueByKey(information, ''), type: TYPE.DATE }, // 复核时间
  57. ];
  58. Element.call(this, 'ZhaoBiaoXx', attrs);
  59. }
  60. // 招标信息
  61. function ZhaoBiaoXx(information) {
  62. const attrs = [
  63. { name: 'Zbr', value: getValueByKey(information, '') }, // 招标人
  64. { name: 'Zxr', value: getValueByKey(information, '') }, // 造价咨询人
  65. { name: 'ZbrDb', value: getValueByKey(information, '') }, // 招标人法定代表人或其授权人
  66. { name: 'ZxrDb', value: getValueByKey(information, '') }, // 造价咨询人法定代表人或其授权人
  67. { name: 'Bzr', value: getValueByKey(information, '') }, // 编制人
  68. { name: 'Fhr', value: getValueByKey(information, '') }, // 复核人
  69. { name: 'BzTime', value: getValueByKey(information, ''), type: TYPE.DATE }, // 编制时间
  70. { name: 'FhTime', value: getValueByKey(information, ''), type: TYPE.DATE }, // 复核时间
  71. ];
  72. Element.call(this, 'ZhaoBiaoXx', attrs);
  73. }
  74. }
  75. return {
  76. entry,
  77. };
  78. })();