    import WorkFlowServer from './WorkFlowServer'
    import { defaultValue } from '../../../util'
    /**
     * 路径分析
     * @class WorkFlowServer600233
     *
     * @extends WorkFlowServer
     * @param {Object} options 构造参数
     * @param {String} [options.url] 工作流基地址,必传
     * @param {String} [options.netClsUrl] 网络类的URL,必传,例如:GDBP://mapgislocal/Sample/sfcls/pathAnalyst
     * @param {Geometry} [options.flagGeometry] 网标点序列,必传,必须为多点类型MutiPoint,
     * @param {Number} [options.elementType] 添加网标方式,1:点,2:线,必传,例如:{"1":"点","2":"线"}
     * @param {Geometry} [options.barrierGeometry] 障碍点序列,必传,必须为多点类型MutiPoint
     * @param {Number} [options.nearDis] 容差,必传,例如:0.001
     * @param {String} [options.analyTp] 分析模式，默认UserMode,必传,例如:{"UserMode":"UserMode","SysModeCommwayPrefer":"SysModeCommwayPrefer","SysModeHighWayPrefer":"SysModeHighWayPrefer","SysModeSysRecommend":"SysModeSysRecommend","SysModeMinCost":"SysModeMinCost","SysModeMinDis":"SysModeMinDis","SysModeMinTime":"SysModeMinTime"}
     * @param {String} [options.weight] 权值,可为空,逗号分隔,例如:2,3
     * @param {String} [options.outFormat] 输出格式,必传,例如:{"JSON":"JSON","XML":"XML"}
     * @example
          const workFlowServer600233 = WorkFlowServer.createWorkFlow({
            url: "http://localhost:8089/igs/rest/services/workflow/600233/WorkflowServer",
            netClsUrl: "gdbp://MapGISLocalPlus/sample/ds/网络分析/ncls/道路交通网",
            flagGeometry: new Zondy.Geometry.MultiPoint({
              coordinates: [
                [114.45731, 38.017986],
                [114.46711, 38.023956],
                [114.44601, 38.031006],
                [114.51202, 38.023586],
              ],
            }),
            elementType: 1,
            barrierGeometry: new Zondy.Geometry.MultiPoint({
              coordinates: [
                [114.46147, 38.008148],
                [114.43793, 38.014698],
                [114.43784, 38.026852],
                [114.45159, 38.026764],
              ],
            }),
            nearDis: 0.001,
            analyTp: "UserMode",
            outFormat: "JSON",
          });
          workFlowServer600233.execute({
            method: Zondy.Enum.FetchMethod.get,
            success: function (res) {
              console.log("execute: ", res);
            },
          });
     */
    class WorkFlowServer600233 extends WorkFlowServer {
      constructor(options) {
        super(options)
        const opt = options || {}
        /**
         * @description 工作流基地址,必传
         * @member {String} WorkFlowServer600233.prototype.url
         * */
        this.url = opt.url
        /**
         * @description 600233
         * @member {Number} WorkFlowServer600233.prototype.flowId
         * @readonly
         * */
        this.flowId = 600233
        /**
         * @description 路径分析
         * @member {String} WorkFlowServer600233.prototype.description
         * @readonly
         * */
        this.description = '路径分析'
        /**
         * @description 网络分析
         * @member {String} WorkFlowServer600233.prototype.groupName
         * @readonly
         * */
        this.groupName = '网络分析'
        /**
         * @description 网络类的URL,必传,例如:GDBP://mapgislocal/Sample/sfcls/pathAnalyst
         * @member {String} WorkFlowServer600233.prototype.netClsUrl
         * */
        this.netClsUrl = opt.netClsUrl
        /**
         * @description 网标点序列,必传,必须为多点类型MutiPoint或者Polyline
         * @member {Geometry} WorkFlowServer600233.prototype.flagGeometry
         * */
        this.flagGeometry = opt.flagGeometry
        /**
         * @description 添加网标方式,1:点,2:线,必传,例如:{"1":"点","2":"线"}
         * @member {Number} WorkFlowServer600233.prototype.elementType
         * */
        this.elementType = opt.elementType
        /**
         * @description 障碍点序列,必传
         * @member {Geometry} WorkFlowServer600233.prototype.barrierGeometry
         * */
        this.barrierGeometry = opt.barrierGeometry
        /**
         * @description 容差,必传,例如:0.001
         * @member {Number} WorkFlowServer600233.prototype.nearDis
         * */
        this.nearDis = opt.nearDis
        /**
         * @description 分析模式，默认UserMode,必传,例如:{"UserMode":"UserMode","SysModeCommwayPrefer":"SysModeCommwayPrefer","SysModeHighWayPrefer":"SysModeHighWayPrefer","SysModeSysRecommend":"SysModeSysRecommend","SysModeMinCost":"SysModeMinCost","SysModeMinDis":"SysModeMinDis","SysModeMinTime":"SysModeMinTime"}
         * @member {String} WorkFlowServer600233.prototype.analyTp
         * */
        this.analyTp = opt.analyTp
        /**
         * @description 权值,可为空,逗号分隔,例如:2,3
         * @member {String} WorkFlowServer600233.prototype.weight
         * */
        this.weight = defaultValue(opt.weight, ',Weight1,Weight1')
        /**
         * @description 输出格式,必传,例如:{"JSON":"JSON","XML":"XML"}
         * @member {String} WorkFlowServer600233.prototype.outFormat
         * */
        this.outFormat = opt.outFormat
      }

      /**
       * @description 获取执行工作流check对象
       * @private
       * @return {Object}
       */
      _getCheckQueryOpts() {
        return {
          netClsUrl: {
            required: true,
            type: 'String'
          },
          flagGeometry: {
            required: true,
            type: 'Geometry',
            alias: 'flagPosStr',
            process(v) {
              return v.toString()
            }
          },
          elementType: {
            required: true,
            type: 'Number'
          },
          barrierGeometry: {
            required: true,
            type: 'Geometry',
            alias: 'barrierPosStr',
            process(v) {
              return v.toString()
            }
          },
          nearDis: {
            required: true,
            type: 'Number'
          },
          analyTp: {
            required: true,
            type: 'String'
          },
          weight: {
            type: 'String'
          },
          outFormat: {
            required: true,
            type: 'String'
          }
        }
      }
    }
    export default WorkFlowServer600233