推送杭州银行
This commit is contained in:
parent
486805c35a
commit
cbc9cb8b93
|
@ -33,6 +33,7 @@ public class ZxBankEntity extends BaseEntity {
|
|||
private String summaryId;//
|
||||
private String mainId;//主表id
|
||||
private String workitemId;//主表id
|
||||
private String fDocumentNo;//主表id
|
||||
|
||||
public String getSummaryId() {
|
||||
return summaryId;
|
||||
|
@ -273,4 +274,12 @@ public class ZxBankEntity extends BaseEntity {
|
|||
public void setWorkitemId(String workitemId) {
|
||||
this.workitemId = workitemId;
|
||||
}
|
||||
|
||||
public String getfDocumentNo() {
|
||||
return fDocumentNo;
|
||||
}
|
||||
|
||||
public void setfDocumentNo(String fDocumentNo) {
|
||||
this.fDocumentNo = fDocumentNo;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<resultMap id="get-ZxBankEntity-result" type="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">
|
||||
<result property="sourceFlowNumber" column="sourceFlowNumber" />
|
||||
<result property="documentNo" column="documentNo" />
|
||||
<result property="fDocumentNo" column="fDocumentNo" />
|
||||
<result property="companyCode" column="companyCode" />
|
||||
<result property="fundType" column="fundType" />
|
||||
<result property="digest" column="digest" />
|
||||
|
@ -38,6 +39,7 @@
|
|||
data_id as dataId
|
||||
,source_flow_number as sourceFlowNumber
|
||||
,document_no as documentNo
|
||||
,f_document_no as fDocumentNo
|
||||
,company_code as companyCode
|
||||
,fund_type as fundType
|
||||
,digest as digest
|
||||
|
@ -94,12 +96,12 @@
|
|||
<select id="queryElecIsNullZX" resultMap="get-ZxBankEntity-result" parameterType="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">
|
||||
select
|
||||
<include refid="ZxBankEntity_Base_Column_List" />
|
||||
from v_hzya_pay where (pay_result='已支付' or pay_result='支付成功' ) and receipt is null and
|
||||
from v_hzya_pay where (pay_result='已支付' or pay_result='支付成功' ) and receipt is null
|
||||
</select>
|
||||
<select id="queryElecIsNullZXNew" resultMap="get-ZxBankEntity-result" parameterType="com.hzya.frame.seeyon.zxbank.entity.ZxBankEntity">
|
||||
select
|
||||
<include refid="ZxBankEntity_Base_Column_List" />
|
||||
from v_hzya_pay_new where (pay_result='已支付' or pay_result='支付成功' ) and receipt is null and
|
||||
from v_hzya_pay_new where (pay_result='已支付' or pay_result='支付成功' ) and receipt is null
|
||||
</select>
|
||||
|
||||
<!--通过主键修改方法-->
|
||||
|
|
|
@ -167,20 +167,14 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
|||
try {
|
||||
ZxBankEntity zxBankEntity = json.toJavaObject(ZxBankEntity.class);
|
||||
zxBankEntity.setDataSourceCode("HT-OA");
|
||||
logger.info("======开始查询中信返回的支付结果=====");
|
||||
logger.error("======开始查询中信返回的支付结果=====");
|
||||
List<ZxBankEntity> zxBankEntities = zxBankDao.queryResultIsNullZX(zxBankEntity);
|
||||
logger.error("======查询新试图=====");
|
||||
List<ZxBankEntity> zxBankEntities1 = zxBankDao.queryResultIsNullZXNew(zxBankEntity);
|
||||
if(zxBankEntities1 != null && zxBankEntities1.size() > 0){
|
||||
if(zxBankEntities == null){
|
||||
zxBankEntities = new ArrayList<>();
|
||||
}
|
||||
zxBankEntities.addAll(zxBankEntities1);
|
||||
}
|
||||
if(CollectionUtils.isEmpty(zxBankEntities)){
|
||||
logger.info("=====杭泰付款单中没有已推送并且支付结果为空的数据========");
|
||||
return BaseResult.getSuccessMessageEntity("查询成功");
|
||||
}
|
||||
logger.error("======查询新试图返回结果1=====");
|
||||
if(zxBankEntities != null&& zxBankEntities.size() > 0){
|
||||
for (ZxBankEntity bankEntity : zxBankEntities) {
|
||||
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add(bankEntity.getDocumentNo());
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
|
@ -221,6 +215,70 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
|||
String payStatus = jsonObjectList.getString("payStatus");//返回的状态
|
||||
String errorMsg = jsonObjectList.getString("errorMsg");//返回的错误信息
|
||||
logger.info("====付款單查询中信返回的单据号为:{},返回结果为:{},错误信息为:{}",documentNo,payStatus,errorMsg);
|
||||
if(documentNo.equals(bankEntity.getDocumentNo())){
|
||||
//修改支付状态
|
||||
bankEntity.setPayResult(PayState.payStateGetValue(payStatus));
|
||||
bankEntity.setDataSourceCode("HT-OA");
|
||||
bankEntity.setId(bankEntity.getDataId());
|
||||
//中信银行 有很多状态是PAYING的,也会提示错误信息
|
||||
if (StrUtil.isNotEmpty(errorMsg)){
|
||||
bankEntity.setPayResult(errorMsg);
|
||||
}
|
||||
zxBankDao.updateResultStatus(bankEntity);
|
||||
saveTaskLivingDetails(bankEntity.getDataId(), bankEntity.getDocumentNo(), jsonData.toJSONString(), resultJson.toJSONString(), true,"ZxBankResultPluginInitializer");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
logger.info("====查询支付结果返回值中的list为空====");
|
||||
//TODO 为空说明根本就没推到司库,这部分数据是推送时就报错了 ,这里要改下。 在推送司库时如果推送失败当时就要更新错误信息,避免这里查到为空的
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(zxBankEntities1 != null&& zxBankEntities1.size() > 0){
|
||||
for (ZxBankEntity bankEntity : zxBankEntities1) {
|
||||
|
||||
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add(bankEntity.getDocumentNo());
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("documentNoList",list);
|
||||
JSONObject objectData=new JSONObject();
|
||||
objectData.put("data",jsonObject);
|
||||
logger.info("=======杭泰付款单调用中信支付结果查询请求参数明文为:{}", objectData.toJSONString());
|
||||
String encrypt = SM2Util.encrypt(objectData.toJSONString(), publicKey);
|
||||
JSONObject jsonData=new JSONObject();
|
||||
jsonData.put("data",encrypt);
|
||||
logger.error("=======杭泰付款单调用中信支付结果查询请求参数密文为:{}铭文{}", jsonData.toJSONString(),bankEntity.getDocumentNo());
|
||||
//发送数据
|
||||
String result = HttpRequest.post(url).
|
||||
header("appId", "800058").
|
||||
header("apiCode", "8000580001").
|
||||
//header("access_token", tokenBody).
|
||||
header("publicKey", "ZJYALA1PchEI1s2D5vaapO9RZ6CiDFv/pJAV88lRYg0oBwBCe7eDIk+3zDUT+v578prj").
|
||||
header("secretKey", "jcoATYyty05KgDwL4O0xD+Ulq5ExYWkGvZGf2bhKrMaCehb3NIm5DUnJSK/r2SUaj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=").
|
||||
body(jsonData.toJSONString()).
|
||||
execute().
|
||||
body();
|
||||
logger.error("========杭泰付款单调用中信支付结果查询返回参数为:{}====={}=====", result,bankEntity.getDocumentNo());
|
||||
JSONObject resultJson = JSONObject.parseObject(result);
|
||||
if (!resultJson.getBoolean("flag")) {
|
||||
saveTaskLivingDetails(bankEntity.getDataId(), bankEntity.getDocumentNo(), jsonData.toJSONString(), resultJson.toJSONString(), false,"ZxBankResultPluginInitializer");
|
||||
} else {
|
||||
JSONObject attribute = resultJson.getJSONObject("attribute");
|
||||
String data = attribute.getString("data");
|
||||
// logger.info("=======杭泰付款单调用中信支付结果查询返回参数密文为:{}", data);
|
||||
String decrypt = SM2Util.decrypt(data, privateKey);
|
||||
logger.error("=======杭泰付款单调用中信支付结果查询返回参数明文为:{},{}", decrypt,bankEntity.getDocumentNo());
|
||||
JSONObject jsonObjectData = JSONObject.parseObject(decrypt);
|
||||
JSONArray jsonArray = jsonObjectData.getJSONArray("list");
|
||||
if(CollectionUtils.isNotEmpty(jsonArray)){
|
||||
for (Object o : jsonArray) {
|
||||
JSONObject jsonObjectList=(JSONObject) JSON.toJSON(o);
|
||||
String documentNo = jsonObjectList.getString("documentNo");//返回的业务单据号
|
||||
String payStatus = jsonObjectList.getString("payStatus");//返回的状态
|
||||
String errorMsg = jsonObjectList.getString("errorMsg");//返回的错误信息
|
||||
logger.error("====付款單查询中信返回的单据号为:{},返回结果为:{},错误信息为:{}",documentNo,payStatus,errorMsg);
|
||||
if(documentNo.equals(bankEntity.getDocumentNo())){
|
||||
//修改支付状态
|
||||
bankEntity.setPayResult(PayState.payStateGetValue(payStatus));
|
||||
|
@ -327,11 +385,15 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
|||
}
|
||||
}
|
||||
}else{
|
||||
if(bankEntity.getTabName().equals("formson_0329")){
|
||||
sendDatas(bankEntity);
|
||||
}
|
||||
logger.info("====查询支付结果返回值中的list为空====");
|
||||
//TODO 为空说明根本就没推到司库,这部分数据是推送时就报错了 ,这里要改下。 在推送司库时如果推送失败当时就要更新错误信息,避免这里查到为空的
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//logger.info("========杭泰付款单查询支付结果执行成功========");
|
||||
return BaseResult.getSuccessMessageEntity("支付结果查询成功");
|
||||
}catch (Exception e){
|
||||
|
@ -340,6 +402,164 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
|||
}
|
||||
return BaseResult.getFailureMessageEntity("支付结果查询失败");
|
||||
}
|
||||
|
||||
private void sendDatas(ZxBankEntity bankEntity) {
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add(bankEntity.getfDocumentNo());
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("documentNoList",list);
|
||||
JSONObject objectData=new JSONObject();
|
||||
objectData.put("data",jsonObject);
|
||||
logger.info("=======杭泰付款单调用中信支付结果查询请求参数明文为:{}", objectData.toJSONString());
|
||||
String encrypt = SM2Util.encrypt(objectData.toJSONString(), publicKey);
|
||||
JSONObject jsonData=new JSONObject();
|
||||
jsonData.put("data",encrypt);
|
||||
logger.error("=======杭泰付款单调用中信支付结果查询请求参数密文为:{}铭文{}", jsonData.toJSONString(),bankEntity.getfDocumentNo());
|
||||
//发送数据
|
||||
String result = HttpRequest.post(url).
|
||||
header("appId", "800058").
|
||||
header("apiCode", "8000580001").
|
||||
//header("access_token", tokenBody).
|
||||
header("publicKey", "ZJYALA1PchEI1s2D5vaapO9RZ6CiDFv/pJAV88lRYg0oBwBCe7eDIk+3zDUT+v578prj").
|
||||
header("secretKey", "jcoATYyty05KgDwL4O0xD+Ulq5ExYWkGvZGf2bhKrMaCehb3NIm5DUnJSK/r2SUaj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=").
|
||||
body(jsonData.toJSONString()).
|
||||
execute().
|
||||
body();
|
||||
logger.error("========杭泰付款单调用中信支付结果查询返回参数为:{}====={}=====", result,bankEntity.getfDocumentNo());
|
||||
JSONObject resultJson = JSONObject.parseObject(result);
|
||||
if (!resultJson.getBoolean("flag")) {
|
||||
saveTaskLivingDetails(bankEntity.getDataId(), bankEntity.getfDocumentNo(), jsonData.toJSONString(), resultJson.toJSONString(), false,"ZxBankResultPluginInitializer");
|
||||
} else {
|
||||
JSONObject attribute = resultJson.getJSONObject("attribute");
|
||||
String data = attribute.getString("data");
|
||||
// logger.info("=======杭泰付款单调用中信支付结果查询返回参数密文为:{}", data);
|
||||
String decrypt = null;
|
||||
try {
|
||||
decrypt = SM2Util.decrypt(data, privateKey);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
logger.error("=======杭泰付款单调用中信支付结果查询返回参数明文为:{},{}", decrypt,bankEntity.getfDocumentNo());
|
||||
JSONObject jsonObjectData = JSONObject.parseObject(decrypt);
|
||||
JSONArray jsonArray = jsonObjectData.getJSONArray("list");
|
||||
if(CollectionUtils.isNotEmpty(jsonArray)){
|
||||
for (Object o : jsonArray) {
|
||||
JSONObject jsonObjectList=(JSONObject) JSON.toJSON(o);
|
||||
String documentNo = jsonObjectList.getString("documentNo");//返回的业务单据号
|
||||
String payStatus = jsonObjectList.getString("payStatus");//返回的状态
|
||||
String errorMsg = jsonObjectList.getString("errorMsg");//返回的错误信息
|
||||
logger.error("====付款單查询中信返回的单据号为:{},返回结果为:{},错误信息为:{}",documentNo,payStatus,errorMsg);
|
||||
if(documentNo.equals(bankEntity.getfDocumentNo())){
|
||||
//修改支付状态
|
||||
bankEntity.setPayResult(PayState.payStateGetValue(payStatus));
|
||||
bankEntity.setDataSourceCode("HT-OA");
|
||||
bankEntity.setId(bankEntity.getDataId());
|
||||
//中信银行 有很多状态是PAYING的,也会提示错误信息
|
||||
if (StrUtil.isNotEmpty(errorMsg)){
|
||||
bankEntity.setPayResult(errorMsg);
|
||||
}
|
||||
zxBankDao.updateResultStatus(bankEntity);
|
||||
//1、查询单据是否全部流程结束
|
||||
logger.error("====付款單查询中信返回的单据号为:{},返回结果为:{},错误信息为:{}",documentNo,payStatus,errorMsg);
|
||||
|
||||
List<ZxBankEntity> resultList = null;
|
||||
bankEntity.setDataSourceCode("HT-OA");
|
||||
|
||||
//对公付款单
|
||||
if("formson_0329".equals(bankEntity.getTabName())){
|
||||
resultList = zxBankDao.queryResultStatusMx(bankEntity);
|
||||
}
|
||||
//招待报销单
|
||||
if("formmain_0294".equals(bankEntity.getTabName())) {
|
||||
resultList = zxBankDao.queryResultStatus(bankEntity);
|
||||
}
|
||||
//日常报销单
|
||||
if("formmain_0314".equals(bankEntity.getTabName())) {
|
||||
resultList = zxBankDao.queryResultStatus(bankEntity);
|
||||
|
||||
}
|
||||
// 差旅报销单-新
|
||||
if("formmain_0533".equals(bankEntity.getTabName())) {
|
||||
resultList = zxBankDao.queryResultStatus(bankEntity);
|
||||
|
||||
}
|
||||
// 借还款
|
||||
if("formmain_0293".equals(bankEntity.getTabName())) {
|
||||
resultList = zxBankDao.queryResultStatus(bankEntity);
|
||||
|
||||
}
|
||||
//资金归集
|
||||
if("formson_0378".equals(bankEntity.getTabName())) {
|
||||
resultList = zxBankDao.queryResultStatusMx(bankEntity);
|
||||
|
||||
}
|
||||
//资金拨付
|
||||
if("formson_0465".equals(bankEntity.getTabName())) {
|
||||
resultList = zxBankDao.queryResultStatusMx(bankEntity);
|
||||
|
||||
}
|
||||
//同名账户划转
|
||||
if("formson_0469".equals(bankEntity.getTabName())) {
|
||||
resultList = zxBankDao.queryResultStatusMx(bankEntity);
|
||||
|
||||
}
|
||||
//2、修改流程结果
|
||||
|
||||
if(resultList != null && resultList.size() > 0){
|
||||
int cg = 0;
|
||||
int zfz = 0;
|
||||
int sl = 0;
|
||||
String workitemId = null;
|
||||
for (int i = 0; i < resultList.size(); i++) {
|
||||
sl++;
|
||||
if(resultList.get(i).getPayResult() != null && ("已支付".equals(resultList.get(i).getPayResult()) || "支付成功".equals(resultList.get(i).getPayResult()) )){
|
||||
cg++;
|
||||
}
|
||||
if(resultList.get(i).getPayResult() == null || "".equals(resultList.get(i).getPayResult()) || "支付中".equals(resultList.get(i).getPayResult())){
|
||||
zfz++;
|
||||
}
|
||||
if(workitemId == null){
|
||||
workitemId = resultList.get(i).getWorkitemId();
|
||||
}
|
||||
}
|
||||
logger.error("付款單查询支付中状态:{}",zfz);
|
||||
if(zfz == 0){//没有支付中才处理流程
|
||||
if(workitemId != null && !"".equals(workitemId)){
|
||||
String token = getTokens();
|
||||
logger.error("付款單token状态:{}",token);
|
||||
|
||||
if(cg == sl){//流程提交
|
||||
|
||||
String senddata = finishValueOf(workitemId,"支付结果获取成功");
|
||||
logger.error("修改流程提交发送:{}",senddata);
|
||||
|
||||
String returnData = doSendData("8000590007",token,senddata);
|
||||
logger.error("修改流程提交返回结果"+returnData);
|
||||
|
||||
if (StrUtil.isNotEmpty(returnData)){
|
||||
logger.error("修改流程提交返回结果"+returnData);
|
||||
}
|
||||
}else {//流程回退
|
||||
String senddata = stepBackValueOf(workitemId,"支付错误退回");
|
||||
logger.error("修改流程回退发送:{}",senddata);
|
||||
String returnData = doSendData("8000590006",token,senddata);
|
||||
logger.error("修改流程回退返回结果"+returnData);
|
||||
if (StrUtil.isNotEmpty(returnData)){
|
||||
logger.error("修改流程回退返回结果"+returnData);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
saveTaskLivingDetails(bankEntity.getDataId(), bankEntity.getDocumentNo(), jsonData.toJSONString(), resultJson.toJSONString(), true,"ZxBankResultPluginInitializer");
|
||||
}
|
||||
}
|
||||
}else{
|
||||
logger.info("====查询支付结果返回值中的list为空====");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String getTokens() {
|
||||
String token = null;
|
||||
JSONObject param = new JSONObject();
|
||||
|
@ -481,6 +701,9 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
|||
elecDownlod(elecdata.toJSONString(),bankEntity);
|
||||
}
|
||||
}
|
||||
if(bankEntity.getTabName().equals("formson_0329")){
|
||||
getHdDatas(bankEntity);
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
logger.info("======杭泰付款单查询中信电子回单失败:{}",e.getMessage());
|
||||
|
@ -489,6 +712,53 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
|||
return null;
|
||||
}
|
||||
|
||||
private void getHdDatas(ZxBankEntity bankEntity) throws Exception {
|
||||
JSONObject jsonParam=new JSONObject();
|
||||
jsonParam.put("companyCode",bankEntity.getCompanyCode());//公司编码
|
||||
jsonParam.put("documentNo",bankEntity.getfDocumentNo());//单据号
|
||||
JSONObject jsonData=new JSONObject();
|
||||
jsonData.put("data",jsonParam);
|
||||
String params = jsonData.toJSONString();
|
||||
logger.info("======杭泰付款单调用中信电子回单查询请求参数明文为:{}========",params);
|
||||
String encrypt = SM2Util.encrypt(params, publicKey);
|
||||
JSONObject objectData=new JSONObject();
|
||||
objectData.put("data",encrypt);
|
||||
logger.info("======杭泰付款单调用中信电子回单查询请求参数密文为:{}========",objectData.toJSONString());
|
||||
//发送数据
|
||||
String result = HttpRequest.post(url).
|
||||
header("appId", "800058").
|
||||
header("apiCode", "8000580002").
|
||||
//header("access_token", tokenBody).
|
||||
header("publicKey", "ZJYALA1PchEI1s2D5vaapO9RZ6CiDFv/pJAV88lRYg0oBwBCe7eDIk+3zDUT+v578prj").
|
||||
header("secretKey", "jcoATYyty05KgDwL4O0xD+Ulq5ExYWkGvZGf2bhKrMaCehb3NIm5DUnJSK/r2SUaj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=").
|
||||
body(objectData.toJSONString()).
|
||||
execute().
|
||||
body();
|
||||
logger.info("======杭泰付款单调用中信电子回单查询返回参数为:{}========",result);
|
||||
JSONObject resultJson = JSONObject.parseObject(result);
|
||||
if (!resultJson.getBoolean("flag")) {
|
||||
saveTaskLivingDetails(bankEntity.getDataId(), bankEntity.getfDocumentNo(), params, resultJson.toJSONString(), false,"ZxBankElecPluginInitializer");
|
||||
} else {
|
||||
JSONObject attribute = resultJson.getJSONObject("attribute");
|
||||
String data = attribute.getString("data");
|
||||
logger.info("=======杭泰付款单调用中信支付结果查询返回参数密文为:{}", data);
|
||||
String decrypt = SM2Util.decrypt(data, privateKey);
|
||||
JSONObject jsonObjectData = JSONObject.parseObject(decrypt);
|
||||
String billId = jsonObjectData.getString("billId"); //电子回单id 电子回单下载需要
|
||||
logger.info("======中信电子回单返回的电子回单id为:{}====",billId);
|
||||
if(StrUtil.isNotEmpty(billId)){
|
||||
List<String> list=new ArrayList<>();
|
||||
list.add(billId);
|
||||
JSONObject billIds=new JSONObject();
|
||||
billIds.put("billIds",list);
|
||||
JSONObject elecdata=new JSONObject();
|
||||
elecdata.put("data",billIds);
|
||||
logger.info("====调用中信电子回单下载得请求参数明文为:{}=======",elecdata.toJSONString());
|
||||
elecDownlod(elecdata.toJSONString(),bankEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private JsonResultEntity elecDownlod(String params,ZxBankEntity zxBankEntity){
|
||||
try {
|
||||
String encrypt = SM2Util.encrypt(params, publicKey);
|
||||
|
@ -1079,7 +1349,7 @@ public class ZxBankServiceImpl extends BaseService<ZxBankEntity, String> impleme
|
|||
//对公付款单
|
||||
if("formmain_0327".equals(tableName)){
|
||||
parent.put("sourceFlowNumber", mxData.getString("id")+"_"+hour+minute);
|
||||
parent.put("documentNo", mainData.getString("field0146"));
|
||||
parent.put("documentNo", mxData.getString("field0368"));
|
||||
parent.put("companyCode", mainData.getString("field0149"));
|
||||
parent.put("fundType", "0001");
|
||||
parent.put("digest","付对公付款"+mxData.getString("field0368"));
|
||||
|
|
Loading…
Reference in New Issue