    import WorkFlowServer from './WorkFlowServer'

    /**
     * 多边形叠加分析
     * @class WorkFlowServer600237
     *
     * @extends WorkFlowServer
     * @param {Object} options 构造参数
     * @param {String} [options.url] 工作流基地址,必传
     * @param {String} [options.srcInfo1] 被叠加简单要素类的URL,必传,例如:GDBP://mapgislocal/Sample/sfcls/overLay
     * @param {Geometry} [options.geometry] 多边形几何,必传,必须为Polygon
     * @param {String} [options.desInfo] 结果简单要素类的URL,必传,例如:GDBP://mapgislocal/Sample/sfcls/overLayDes
     * @param {Number} [options.attOptType] 是否进行属性操作,1:是 0:否,必传,例如:{"activeValue":"1","inactiveValue":"0"}
     * @param {Number} [options.infoOptType] 共有部分的图形参数操作,0:随机,1:使用第一个类的图形参数,2:使用第二个类的图形参数,必传,例如:{"0":"随机","1":"使用第一个类的图形参数","2":"使用第二个类的图形参数"}
     * @param {Number} [options.overType] 图层叠加类型,0:求并,1:求交(默认),2:求差,3:内裁,4:外裁,5:叠加,6:对称差,7:判别,必传,例如:{"0":"求并","1":"求交","2":"求差","3":"内裁","4":"外裁","5":"叠加","6":"对称差","7":"判别"}
     * @param {Number} [options.radius] 容差半径,必传,例如:0.001
     * @param {String} [options.inFormat] 字符串格式,必传,例如:{"JSON":"JSON","XML":"XML"}
     * @example
        const workFlowServer600237 = WorkFlowServer.createWorkFlow({
          url: "http://localhost:8089/igs/rest/services/workflow/600237/WorkflowServer",
          srcInfo1: "gdbp://MapGISLocalPlus/test/sfcls/林地-gs",
          geometry: new Zondy.Geometry.Polygon({
            coordinates: [
              [
                [11.2203627335275, 532.624659163762],
                [2732.66363429598, 532.624659163762],
                [2933.75550165281, -1310.71745827386],
                [-266.956720443423, -1927.39918483481],
                [-1259.00993273713, -747.660229674732],
                [11.2203627335275, 532.624659163762],
              ],
            ],
          }),
          desInfo: "gdbp://MapGISLocalPlus/test/sfcls/林地-gs-clip" + Math.random(),
          attOptType: 1,
          infoOptType: 1,
          overType: 1,
          radius: 0.001,
          inFormat: "JSON",
        });
        workFlowServer600237.execute({
          method: Zondy.Enum.FetchMethod.get,
          success: function (res) {
            console.log("execute: ", res);
          },
        });
     */
    class WorkFlowServer600237 extends WorkFlowServer {
      constructor(options) {
        super(options)
        const opt = options || {}
        /**
         * @description 工作流基地址,必传
         * @member {String} WorkFlowServer600237.prototype.url
         * */
        this.url = opt.url
        /**
         * @description 600237
         * @member {Number} WorkFlowServer600237.prototype.flowId
         * @readonly
         * */
        this.flowId = 600237
        /**
         * @description 多边形叠加分析
         * @member {String} WorkFlowServer600237.prototype.description
         * @readonly
         * */
        this.description = '多边形叠加分析'
        /**
         * @description 叠加分析
         * @member {String} WorkFlowServer600237.prototype.groupName
         * @readonly
         * */
        this.groupName = '叠加分析'
        /**
         * @description 被叠加简单要素类的URL,必传,例如:GDBP://mapgislocal/Sample/sfcls/overLay
         * @member {String} WorkFlowServer600237.prototype.srcInfo1
         * */
        this.srcInfo1 = opt.srcInfo1
        /**
         * @description 多边形几何,必传,必须为Polygon
         * @member {Geometry} WorkFlowServer600237.prototype.geometry
         * */
        this.geometry = opt.geometry
        /**
         * @description 结果简单要素类的URL,必传,例如:GDBP://mapgislocal/Sample/sfcls/overLayDes
         * @member {String} WorkFlowServer600237.prototype.desInfo
         * */
        this.desInfo = opt.desInfo
        /**
         * @description 是否进行属性操作,1:是 0:否,必传,例如:{"activeValue":"1","inactiveValue":"0"}
         * @member {Number} WorkFlowServer600237.prototype.attOptType
         * */
        this.attOptType = opt.attOptType
        /**
         * @description 共有部分的图形参数操作,0:随机,1:使用第一个类的图形参数,2:使用第二个类的图形参数,必传,例如:{"0":"随机","1":"使用第一个类的图形参数","2":"使用第二个类的图形参数"}
         * @member {Number} WorkFlowServer600237.prototype.infoOptType
         * */
        this.infoOptType = opt.infoOptType
        /**
         * @description 图层叠加类型,0:求并,1:求交(默认),2:求差,3:内裁,4:外裁,5:叠加,6:对称差,7:判别,必传,例如:{"0":"求并","1":"求交","2":"求差","3":"内裁","4":"外裁","5":"叠加","6":"对称差","7":"判别"}
         * @member {Number} WorkFlowServer600237.prototype.overType
         * */
        this.overType = opt.overType
        /**
         * @description 容差半径,必传,例如:0.001
         * @member {Number} WorkFlowServer600237.prototype.radius
         * */
        this.radius = opt.radius
        /**
         * @description 字符串格式,必传,例如:{"JSON":"JSON","XML":"XML"}
         * @member {String} WorkFlowServer600237.prototype.inFormat
         * */
        this.inFormat = opt.inFormat
      }

      /**
       * @description 获取执行工作流check对象
       * @private
       * @return {Object}
       */
      _getCheckQueryOpts() {
        return {
          srcInfo1: {
            required: true,
            type: 'String'
          },
          geometry: {
            required: true,
            type: 'Geometry',
            alias: 'strGRegionXML',
            process(v) {
              const oldGeo = v.toOldIGSGeometry().RegGeom[0]
              return JSON.stringify(oldGeo)
            }
          },
          desInfo: {
            required: true,
            type: 'String'
          },
          attOptType: {
            required: true,
            type: 'Number'
          },
          infoOptType: {
            required: true,
            type: 'Number'
          },
          overType: {
            required: true,
            type: 'Number'
          },
          radius: {
            required: true,
            type: 'Number'
          },
          inFormat: {
            required: true,
            type: 'String'
          }
        }
      }
    }

    export default WorkFlowServer600237