编辑代码

import groovy.json.*
class QueryCashParam{
	String cashId
}
class CancelCashInfoParam{
	String creator
	String updater
	String settleUserId
	String settleUserName
	String systemModule
	String cashId
	String cashType
	String returnCardFlag
	String patiRecordId
	String orgCode
	
}
class CancelInvoiceParam{
	String id
	String reason
	String operator
	String busDateTime
}
class PayRefundParam{
    String appId
    String czyh
    String cdly
    String ddlx
    String ddly
    String discountableAmount
    int expiretime
    String hzxm
    String ksmc
    String lxdh
    String orderId
    String outerOrderNo
    String paytype
    String personId
    String outRefundNo
    String sfzh
    String tfje
    String yydm
    String remark
    String sign
    String refundAmount
    String orgName
    String settleClassId
    String patiMediaId
    String patiMediaNum
    String patiRecordNum
    String patiIdType
    String creatorName
    String creator
    String tradeBusyType
    String systemModule
    String tradeComputerName
}
def paramConvert(param){
	def now = new Date()
	def nowFormat = now.format('yyyy-MM-dd HH:mm:ss')
	def json = new JsonSlurper()
	def queryCashParam = new QueryCashParam(cashId:param.hisPaymentCode)
	def queryCashParamJson = JsonOutput.toJson(queryCashParam)
	def queryCashConn = new URL('https://test-his-gateway.rubikstack.com/ms-rcs/fi/queryCashInfoRecord').openConnection()
	queryCashConn.setRequestProperty("Content-Type", "application/json")
    queryCashConn.setRequestMethod("POST")
	queryCashConn.doOutput = true
    def queryCashWriter = new OutputStreamWriter(queryCashConn.outputStream)
    queryCashWriter.write(queryCashParamJson)
    queryCashWriter.flush()
    queryCashWriter.close()
	def queryCashResult = json.parseText(queryCashConn.content.text)
	assert queryCashResult.code == 200 : '获取结算信息失败'+queryCashResult.message
	assert queryCashResult.data.size() > 0 : "未查询到结算信息"
	def cashInfoRecord = queryCashResult.data[0]
    
	def cancelCashInfoParam = new CancelCashInfoParam(creator:'4435ebe366314358936c2e7bf751abdb',updater:'4435ebe366314358936c2e7bf751abdb',settleUserId:'4435ebe366314358936c2e7bf751abdb',settleUserName:'沈德红',systemModule:'PES',cashId:cashInfoRecord.cashId,cashType:cashInfoRecord.cashType,returnCardFlag:'0',patiRecordId:cashInfoRecord.cashInfoRecord,orgCode:'1sy5aa62f9b544d7acca5331dd4a0028')
	def cancelCashParamJson = JsonOutput.toJson(cancelCashInfoParam)
	def cancelCashConn = new URL('https://test-his-gateway.rubikstack.com/ms-rcs/fi/cancelCashInfo').openConnection()
	cancelCashConn.setRequestProperty("Content-Type", "application/json")
    cancelCashConn.setRequestMethod("POST")
	cancelCashConn.doOutput = true
    def cancelCashhWriter = new OutputStreamWriter(cancelCashConn.outputStream)
    cancelCashhWriter.write(cancelCashParamJson)
    cancelCashhWriter.flush()
    cancelCashhWriter.close()
	def cancelCashResult = json.parseText(cancelCashConn.content.text)
	assert cancelCashResult.code == 200 : '取消结算失败'+cancelCashResult.message
	try{
	
		def cancelInvoiceParam = new CancelInvoiceParam(id:cashInfoRecord.cashId,reason:'退费,取消结算',operator:'4435ebe366314358936c2e7bf751abdb',busDateTime:nowFormat)
		def cancelInvoiceParamJson = JsonOutput.toJson(cancelInvoiceParam)
		def cancelInvoiceConn = new URL('https://test-his-gateway.rubikstack.com/ms-di/invoice/cancelOutpatientInvoice').openConnection()
		cancelInvoiceConn.setRequestProperty("Content-Type", "application/json")
    	cancelInvoiceConn.setRequestMethod("POST")
		cancelInvoiceConn.doOutput = true
    	def queryCashWriter = new OutputStreamWriter(cancelInvoiceConn.outputStream)
    	queryCashWriter.write(cancelInvoiceParamJson)
    	queryCashWriter.flush()
    	queryCashWriter.close()
		def queryCashResult = json.parseText(cancelInvoiceConn.content.text)
		println queryCashResult
	}catch(Exception e){
		println e
	}
    def oldOrderId = cashInfoRecord.systemModule+cashInfoRecord.cashId
    def nextCashIdUrl = 'https://test-his-gateway.rubikstack.com/ms-pcs/sys/getNextSequence?seqName=patiMediaNum'
    def nextCashIdRes = nextCashIdUrl.toURL().text
    def nextCashIdResJson = json.parseText(nextCashIdRes)
    def newOrderId = 'PES'+nextCashIdResJson.data
    def payRefundParam = new PayRefundParam(appId:'21',cdly:'1',ddlx:'16',ddly:'3',discountableAmount:'0',expiretime:7200,hzxm:cashInfoRecord.patiName,ksmc:cashInfoRecord.departmentName,lxdh:phone,orderId:oldOrderId,orgCode:'1sy5aa62f9b544d7acca5331dd4a0028',outerOrderNo:oldOrderId,paytype)
	
}