材料付款
This commit is contained in:
parent
e891eaba26
commit
43f368a4f1
|
@ -1,5 +1,6 @@
|
||||||
package com.hzya.frame.plugin.oa.payment.service.impl;
|
package com.hzya.frame.plugin.oa.payment.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
@ -7,6 +8,7 @@ import cn.hutool.http.HttpRequest;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.hzya.frame.plugin.oa.payapply.dao.ICLPayApplyDao;
|
||||||
import com.hzya.frame.plugin.oa.payapply.entity.CLPayApplyEntity;
|
import com.hzya.frame.plugin.oa.payapply.entity.CLPayApplyEntity;
|
||||||
import com.hzya.frame.plugin.oa.payapply.service.ICLPayApplyService;
|
import com.hzya.frame.plugin.oa.payapply.service.ICLPayApplyService;
|
||||||
import com.hzya.frame.plugin.oa.payment.service.IPaybillPluginService;
|
import com.hzya.frame.plugin.oa.payment.service.IPaybillPluginService;
|
||||||
|
@ -40,6 +42,8 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
Logger logger = LoggerFactory.getLogger(PaybillPluginServiceImpl.class);
|
Logger logger = LoggerFactory.getLogger(PaybillPluginServiceImpl.class);
|
||||||
@Autowired
|
@Autowired
|
||||||
private ICLPayApplyService clpayApplyService;
|
private ICLPayApplyService clpayApplyService;
|
||||||
|
@Autowired
|
||||||
|
private ICLPayApplyDao clPayApplyDao;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 付款单传到NCC
|
* 付款单传到NCC
|
||||||
|
@ -77,9 +81,9 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
* 如果支付类型是开票,保证金要单独生成一张付款结算单
|
* 如果支付类型是开票,保证金要单独生成一张付款结算单
|
||||||
*/
|
*/
|
||||||
//付款单
|
//付款单
|
||||||
apPaybill(datasourceCode, formmainData, headers, forsonDataList);
|
Boolean flag = apPaybill(datasourceCode, formmainData, headers, forsonDataList);
|
||||||
String orgCode = formmainData.getString("field0053");
|
String orgCode = formmainData.getString("field0053");
|
||||||
if ("002".equals(orgCode)) {
|
if (flag && "002".equals(orgCode)) {
|
||||||
cmpPaybill(datasourceCode, formmainData, headers, forsonDataList);
|
cmpPaybill(datasourceCode, formmainData, headers, forsonDataList);
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
|
@ -90,6 +94,7 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
* 付款结算单
|
* 付款结算单
|
||||||
* 结算方式编码, 10备用金、20开票、21背书、3网银
|
* 结算方式编码, 10备用金、20开票、21背书、3网银
|
||||||
* 如果是开票 总部要生成2张付款结算单,一张是保证金 一张是承兑汇票
|
* 如果是开票 总部要生成2张付款结算单,一张是保证金 一张是承兑汇票
|
||||||
|
* 对于材料类付款来说,付款组织是002的情况 基本上就是要生成总部付款结算单,因为总部自己不会采购材料
|
||||||
*
|
*
|
||||||
* @param datasourceCode
|
* @param datasourceCode
|
||||||
* @param formmainData
|
* @param formmainData
|
||||||
|
@ -97,14 +102,13 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
* @param forsonDataList
|
* @param forsonDataList
|
||||||
*/
|
*/
|
||||||
private void cmpPaybill(String datasourceCode, JSONObject formmainData, JSONObject headers, List<JSONObject> forsonDataList) {
|
private void cmpPaybill(String datasourceCode, JSONObject formmainData, JSONObject headers, List<JSONObject> forsonDataList) {
|
||||||
String orgCode = formmainData.getString("field0053");
|
String pk_billmaker = headers.getString("pk_billmaker");
|
||||||
String billmaker = headers.getString("billmaker");
|
|
||||||
String groupCode = headers.getString("groupCode");
|
|
||||||
boolean flag = true;
|
|
||||||
//结算方式编码, 10备用金、20开票、21背书、3网银
|
//结算方式编码, 10备用金、20开票、21背书、3网银
|
||||||
String balaTypeCode = formmainData.getString("field0076");
|
String balaTypeCode = formmainData.getString("field0076");
|
||||||
|
//背书和开票 才要生成付款结算单
|
||||||
|
if ("20".equals(balaTypeCode) || "21".equals(balaTypeCode) || "3".equals(balaTypeCode)) {
|
||||||
//付款结算单
|
//付款结算单
|
||||||
JSONObject param = getCmpPayBillVO(formmainData, forsonDataList, orgCode, billmaker, groupCode);
|
JSONObject param = getCmpPayBillVO(formmainData, forsonDataList, headers,false);
|
||||||
String req = JSONObject.toJSONString(param);
|
String req = JSONObject.toJSONString(param);
|
||||||
logger.info("======OA付款单传NCC付款结算单请求参数:{}======", req);
|
logger.info("======OA付款单传NCC付款结算单请求参数:{}======", req);
|
||||||
String access_token = getAccessToken();
|
String access_token = getAccessToken();
|
||||||
|
@ -117,17 +121,15 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
.body(req)//表单内容
|
.body(req)//表单内容
|
||||||
.timeout(30000)//超时,毫秒
|
.timeout(30000)//超时,毫秒
|
||||||
.execute().body();
|
.execute().body();
|
||||||
logger.info("======OA付款单传NCC付款结算单响应参数:{}======",result);
|
logger.info("======OA付款单传NCC付款结算单响应参数:{}======", result);
|
||||||
if (StrUtil.isNotEmpty(result)){
|
//结算单审批
|
||||||
JSONObject resultJson = JSONObject.parseObject(result);
|
String orgCode = formmainData.getString("field0053");
|
||||||
flag = resultJson.getBoolean("flag");
|
String auditResult = cmpBillAudit(result, access_token, pk_billmaker, orgCode);
|
||||||
}
|
if (StrUtil.isNotEmpty(auditResult) && null != getData(auditResult)) {
|
||||||
|
|
||||||
if (flag){
|
|
||||||
//保证金单独生成一张付款结算单
|
//保证金单独生成一张付款结算单
|
||||||
if ("20".equals(balaTypeCode)) {
|
if ("20".equals(balaTypeCode)) {
|
||||||
logger.info("======OA付款单传开票的方式保证金传NCC付款结算单请求参数:{}======");
|
logger.info("======OA付款单传开票的方式保证金传NCC付款结算单请求参数:{}======");
|
||||||
JSONObject bzjParam = getCmpPayBillVO(formmainData, forsonDataList, orgCode, billmaker, groupCode);
|
JSONObject bzjParam = getCmpPayBillVO(formmainData, forsonDataList, headers,true);
|
||||||
String bzjReq = JSONObject.toJSONString(bzjParam);
|
String bzjReq = JSONObject.toJSONString(bzjParam);
|
||||||
String bazjResult = HttpRequest.post(baseUrl)
|
String bazjResult = HttpRequest.post(baseUrl)
|
||||||
.header("appId", "800065")//NCC应用
|
.header("appId", "800065")//NCC应用
|
||||||
|
@ -138,14 +140,62 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
.body(bzjReq)//表单内容
|
.body(bzjReq)//表单内容
|
||||||
.timeout(30000)//超时,毫秒
|
.timeout(30000)//超时,毫秒
|
||||||
.execute().body();
|
.execute().body();
|
||||||
logger.info("======OA付款单传开票的方式保证金传NCC付款结算单返回参数:{}",bazjResult);
|
logger.info("======OA付款单传开票的方式保证金传NCC付款结算单返回参数:{}", bazjResult);
|
||||||
|
//审批结算单
|
||||||
|
cmpBillAudit(bazjResult, access_token, pk_billmaker,orgCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 付款结算单审批
|
||||||
|
*
|
||||||
|
* @param str 付款结算单新增返回的报文
|
||||||
|
* @param access_token token
|
||||||
|
* @param pk_billmaker 审批人pk
|
||||||
|
* @param org_code 业务单元
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String cmpBillAudit(String str, String access_token, String pk_billmaker,String org_code) {
|
||||||
|
if (StrUtil.isNotEmpty(str)) {
|
||||||
|
JsonResultEntity resultEntity = JSONObject.parseObject(str, JsonResultEntity.class);
|
||||||
|
if (resultEntity.isFlag()) {
|
||||||
|
JSONObject attribute = (JSONObject) resultEntity.getAttribute();
|
||||||
|
Boolean success = attribute.getBoolean("success");
|
||||||
|
if (success) {
|
||||||
|
String bill_no = attribute.getJSONObject("data").getString("bill_no");
|
||||||
|
String pk_org = attribute.getJSONObject("data").getString("pk_org");
|
||||||
|
JSONObject reqParams = new JSONObject();
|
||||||
|
reqParams.put("bill_no", bill_no);
|
||||||
|
reqParams.put("pk_org", org_code);
|
||||||
|
reqParams.put("checknote", "同意");
|
||||||
|
reqParams.put("pk_approver", pk_billmaker);
|
||||||
|
String approverParam = reqParams.toJSONString();
|
||||||
|
String approverResult = HttpRequest.post(baseUrl)
|
||||||
|
.header("appId", "800065")//NCC应用
|
||||||
|
.header("apiCode", "8000650007")//NCC付款结算单审批
|
||||||
|
.header("publicKey", "ZJYAbkr9+XjnDrlfQCRKXtpVvg/BjxqtxzcLgg5TIGagEKJCe7eDIk+3zDUT+v578prj")//OA公钥
|
||||||
|
.header("secretKey", "2GR4+yrcx+Ev+pN0Q6V6wxCdvisPX7wzNKBgc5SsIYGxYI5GTISXT6GvTPfp1u2Rj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//OA密钥
|
||||||
|
.header("access_token", access_token)//token
|
||||||
|
.body(approverParam)//表单内容
|
||||||
|
.timeout(30000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
logger.info("付款结算单审批接口返回数据:{}", approverResult);
|
||||||
|
return approverResult;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
//付款结算单
|
//付款结算单
|
||||||
@NotNull
|
@NotNull
|
||||||
private static JSONObject getCmpPayBillVO(JSONObject formmainData, List<JSONObject> forsonDataList, String orgCode, String billmaker, String groupCode) {
|
private static JSONObject getCmpPayBillVO(JSONObject formmainData, List<JSONObject> forsonDataList, JSONObject headers,Boolean isBzj) {
|
||||||
|
String orgCode = formmainData.getString("field0053");
|
||||||
|
String billmaker = headers.getString("billmaker");
|
||||||
|
String groupCode = headers.getString("groupCode");
|
||||||
|
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
JSONObject head = new JSONObject();
|
JSONObject head = new JSONObject();
|
||||||
List<JSONObject> body = new LinkedList<>();
|
List<JSONObject> body = new LinkedList<>();
|
||||||
|
@ -153,19 +203,24 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
param.put("head", head);
|
param.put("head", head);
|
||||||
param.put("body", body);
|
param.put("body", body);
|
||||||
head.put("pk_org", orgCode);//组织编码
|
head.put("pk_org", orgCode);//组织编码
|
||||||
head.put("pk_group", "ZJJH");//集团编码
|
head.put("pk_group", groupCode);//集团编码
|
||||||
head.put("bill_type", "F5");//单据类型
|
head.put("bill_type", "F5");//单据类型
|
||||||
head.put("trade_type", "D5");//付款结算类型
|
head.put("trade_type", "D5");//付款结算类型
|
||||||
head.put("source_flag", "2");//来源系统
|
head.put("source_flag", "2");//来源系统
|
||||||
head.put("bill_date", formatDate(formmainData.getString("field0004")));//单据日期
|
head.put("bill_date", formatDate(formmainData.getString("field0004")));//单据日期
|
||||||
if (!"20".equals(balaTypeCode)) {
|
if (!isBzj) {
|
||||||
head.put("primal_money", formmainData.getString("field0019"));//付款原币金额
|
head.put("primal_money", formmainData.getString("field0019"));//付款原币金额
|
||||||
|
head.put("pk_balatype", formmainData.getString("field0076"));//结算方式
|
||||||
} else {
|
} else {
|
||||||
head.put("primal_money", "field0096");//付款原币金额, 这里要取保证金
|
head.put("primal_money", formmainData.getString("field0096"));//付款原币金额, 这里要取保证金
|
||||||
|
//如果是汇票保证金,则结算方式用网银
|
||||||
|
head.put("pk_balatype", "3");//结算方式
|
||||||
}
|
}
|
||||||
|
|
||||||
head.put("pk_currtype", formmainData.getString("field0087"));//币种名称
|
head.put("pk_currtype", formmainData.getString("field0087"));//币种名称
|
||||||
head.put("billmaker", billmaker);//制单人名称
|
head.put("billmaker", billmaker);//制单人名称
|
||||||
|
head.put("def1", formmainData.getString("field0083"));//账户属性
|
||||||
|
head.put("def2", formmainData.getString("field0001"));//OA单据号
|
||||||
for (JSONObject item : forsonDataList) {
|
for (JSONObject item : forsonDataList) {
|
||||||
JSONObject b = new JSONObject();
|
JSONObject b = new JSONObject();
|
||||||
b.put("pk_org", orgCode);//组织编码
|
b.put("pk_org", orgCode);//组织编码
|
||||||
|
@ -173,25 +228,33 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
b.put("bill_type", head.getString("bill_type"));//单据类型
|
b.put("bill_type", head.getString("bill_type"));//单据类型
|
||||||
b.put("trade_type", head.getString("trade_type"));//付款结算类型
|
b.put("trade_type", head.getString("trade_type"));//付款结算类型
|
||||||
b.put("pk_currtype", head.getString("pk_currtype"));//币种编码
|
b.put("pk_currtype", head.getString("pk_currtype"));//币种编码
|
||||||
|
b.put("pk_balatype", head.getString("pk_balatype"));//结算方式
|
||||||
b.put("bill_date", formatDate(head.getString("bill_date")));//单据日期
|
b.put("bill_date", formatDate(head.getString("bill_date")));//单据日期
|
||||||
if (!"20".equals(balaTypeCode)) {
|
b.put("memo",item.getString("field0074"));
|
||||||
|
if (!isBzj) {
|
||||||
b.put("pay_primal", item.getString("field0030"));//付款原币金额
|
b.put("pay_primal", item.getString("field0030"));//付款原币金额
|
||||||
|
b.put("pk_customer", item.getString("field0065"));//这里传项目部的编码,是在和项目部做结算
|
||||||
|
b.put("pk_recproject", headers.getString("付-往来款"));//收支项目, 固定写付往来款
|
||||||
} else {
|
} else {
|
||||||
b.put("pay_primal", "field0096");//这里要取保证金
|
b.put("pay_primal", formmainData.getString("field0096"));//这里要取保证金
|
||||||
|
b.put("pk_customer", "006");//保证金情况 固定写006浙江建辉矿建集团有限公司(汇票保证金户)
|
||||||
|
b.put("pk_recproject", headers.getString("付-汇票保证金"));//收支项目, 固定写付-汇票保证金
|
||||||
}
|
}
|
||||||
b.put("creationtime", DateUtil.now());//创建时间
|
b.put("creationtime", DateUtil.now());//创建时间
|
||||||
b.put("direction", "-1");//方向 :1=收;-1=付;
|
b.put("direction", "-1");//方向 :1=收;-1=付;
|
||||||
b.put("objecttype", formmainData.getString("field0085"));//交易类型:0=客户;1=供应商;2=部门;3=人员;4=散户;
|
b.put("objecttype", "0");//交易类型:0=客户;1=供应商;2=部门;3=人员;4=散户; 总部结算单固定写客户
|
||||||
b.put("pk_oppaccount", formmainData.getString("field0041"));//付款银行账号
|
b.put("pk_oppaccount", formmainData.getString("field0041"));//付款银行账号
|
||||||
b.put("pk_supplier", formmainData.getString("field0054"));//供应商编码
|
//b.put("pk_supplier", formmainData.getString("field0065"));//这里传项目部的编码,是在和项目部做结算
|
||||||
b.put("pk_account", formmainData.getString("field0044"));//收款银行账户
|
b.put("pk_account", item.getString("field0099"));//对方银行账号 :指的是付款结算单的收款银行账户
|
||||||
b.put("pk_recproject", item.getString("field0091"));//收支项目
|
|
||||||
body.add(b);
|
body.add(b);
|
||||||
|
//质保金 明细行
|
||||||
|
if (isBzj) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return param;
|
return param;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 付款单
|
* 付款单
|
||||||
*
|
*
|
||||||
|
@ -200,40 +263,57 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
* @param headers
|
* @param headers
|
||||||
* @param forsonDataList
|
* @param forsonDataList
|
||||||
*/
|
*/
|
||||||
private void apPaybill(String datasourceCode, JSONObject formmainData, JSONObject headers, List<JSONObject> forsonDataList) {
|
private Boolean apPaybill(String datasourceCode, JSONObject formmainData, JSONObject headers, List<JSONObject> forsonDataList) {
|
||||||
String orgCode = formmainData.getString("field0053");
|
|
||||||
String billmaker = headers.getString("billmaker");
|
String billmaker = headers.getString("billmaker");
|
||||||
if (StrUtil.isNotEmpty(orgCode)) {
|
boolean falg = true;
|
||||||
Map<String, List<JSONObject>> groupedMap = forsonDataList.stream()
|
//付款明细行,每一行都生成一张NCC付款单
|
||||||
.collect(Collectors.groupingBy(item -> item.getString("field0065")));
|
for (int i = 0; i < forsonDataList.size(); i++) {
|
||||||
//付款明细按项目部代码分组,几个项目部就生成几张单子
|
if (falg){
|
||||||
for (Map.Entry<String, List<JSONObject>> entry : groupedMap.entrySet()) {
|
JSONObject forson = forsonDataList.get(i);
|
||||||
//每个项目部的付款总额
|
String req = payBillValueOf(datasourceCode, formmainData, forsonDataList, billmaker, forson);
|
||||||
BigDecimal money = BigDecimal.ZERO;
|
String access_token = getAccessToken();
|
||||||
List<JSONObject> payList = entry.getValue();
|
String result = HttpRequest.post(baseUrl)
|
||||||
|
.header("appId", "800065")//NCC应用
|
||||||
|
.header("apiCode", "8000650012")//NCC付款单新增保存提交
|
||||||
|
.header("publicKey", "ZJYAbkr9+XjnDrlfQCRKXtpVvg/BjxqtxzcLgg5TIGagEKJCe7eDIk+3zDUT+v578prj")//OA公钥
|
||||||
|
.header("secretKey", "2GR4+yrcx+Ev+pN0Q6V6wxCdvisPX7wzNKBgc5SsIYGxYI5GTISXT6GvTPfp1u2Rj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//OA密钥
|
||||||
|
.header("access_token", access_token)//token
|
||||||
|
.body(req)//表单内容
|
||||||
|
.timeout(30000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
logger.info("======OA付款单传NCC付款单响应参数:{}======", result);
|
||||||
|
//解析返回结果 并把NCC单据号更新到OA表单
|
||||||
|
falg = parseRes(result,datasourceCode,headers,forson.getString("id"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return falg;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String payBillValueOf(String datasourceCode, JSONObject formmainData, List<JSONObject> forsonDataList, String billmaker, JSONObject forson) {
|
||||||
|
BigDecimal totalMoney = BigDecimal.ZERO;
|
||||||
JSONObject head = new JSONObject();
|
JSONObject head = new JSONObject();
|
||||||
head.put("pk_org", payList.get(0).getString("field0065"));//财务组织编码
|
head.put("pk_org", forson.getString("field0065"));//财务组织编码
|
||||||
head.put("pk_tradetype", "D3");//交易类型编码
|
head.put("pk_tradetype", "D3");//交易类型编码
|
||||||
head.put("isinit", "");//期初标记
|
|
||||||
head.put("billdate", formmainData.getString("field0004"));//制单日期
|
head.put("billdate", formmainData.getString("field0004"));//制单日期
|
||||||
head.put("busidate", "");//起算日期
|
|
||||||
head.put("objtype", formmainData.getString("field0085"));//往来对象1-供应商 2-部门 3-业务员
|
head.put("objtype", formmainData.getString("field0085"));//往来对象1-供应商 2-部门 3-业务员
|
||||||
head.put("supplier", formmainData.getString("field0054"));//供应商编码
|
head.put("supplier", formmainData.getString("field0054"));//供应商编码
|
||||||
head.put("pk_dept", formmainData.getString("field0057"));//部门编码
|
head.put("pk_dept", formmainData.getString("field0057"));//部门编码
|
||||||
head.put("pk_psndoc", formmainData.getString("field0056"));//业务员编码
|
head.put("pk_psndoc", formmainData.getString("field0056"));//业务员编码
|
||||||
head.put("pk_currtype", formmainData.getString("field0087"));//币种编码
|
head.put("pk_currtype", formmainData.getString("field0087"));//币种编码
|
||||||
head.put("pk_busitype", "");//业务流程编码
|
|
||||||
head.put("ap_payaccount", formmainData.getString("field0041"));//付款银行账户
|
head.put("ap_payaccount", formmainData.getString("field0041"));//付款银行账户
|
||||||
head.put("ap_recaccount", formmainData.getString("field0044"));//收款银行账户
|
head.put("ap_recaccount", formmainData.getString("field0044"));//收款银行账户
|
||||||
head.put("ap_cashaccount", formmainData.getString("field0046"));//现金银行账户
|
head.put("ap_cashaccount", formmainData.getString("field0046"));//现金银行账户
|
||||||
head.put("pk_balatype", formmainData.getString("field0076"));//结算方式编码
|
head.put("pk_balatype", formmainData.getString("field0076"));//结算方式编码
|
||||||
head.put("money", money);//原币金额
|
head.put("money", totalMoney);//原币金额
|
||||||
head.put("rate", "1");//组织本币汇率
|
head.put("rate", "1");//组织本币汇率
|
||||||
head.put("local_money", money);//组织本币金额
|
head.put("local_money", totalMoney);//组织本币金额
|
||||||
head.put("grouprate", "1");//集团本币汇率
|
head.put("grouprate", "1");//集团本币汇率
|
||||||
head.put("grouplocal", money);//集团本币金额
|
head.put("grouplocal", totalMoney);//集团本币金额
|
||||||
head.put("globalrate", "1");//全局本币汇率
|
head.put("globalrate", "1");//全局本币汇率
|
||||||
head.put("globallocal", money);//全局本币金额
|
head.put("globallocal", totalMoney);//全局本币金额
|
||||||
|
head.put("isinit", "");//期初标记
|
||||||
|
head.put("busidate", "");//起算日期
|
||||||
|
head.put("pk_busitype", "");//业务流程编码
|
||||||
head.put("accessorynum", "");//附件张数
|
head.put("accessorynum", "");//附件张数
|
||||||
head.put("sett_org", "");//结算财务组织编码
|
head.put("sett_org", "");//结算财务组织编码
|
||||||
head.put("pk_pcorg", "");//利润中心编码
|
head.put("pk_pcorg", "");//利润中心编码
|
||||||
|
@ -254,11 +334,10 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
head.put("pk_ratetype", "");//组织汇率类型
|
head.put("pk_ratetype", "");//组织汇率类型
|
||||||
head.put("ratedate", "");//组织汇率来源日期
|
head.put("ratedate", "");//组织汇率来源日期
|
||||||
head.put("def1", formmainData.getString("field0083"));//账户属性
|
head.put("def1", formmainData.getString("field0083"));//账户属性
|
||||||
|
head.put("def2", formmainData.getString("field0001"));//OA单据号
|
||||||
List<JSONObject> itemList = new LinkedList<>();
|
List<JSONObject> itemList = new LinkedList<>();
|
||||||
|
|
||||||
//付款明细行
|
//付款申请单号
|
||||||
for (int i = 0; i < payList.size(); i++) {
|
|
||||||
JSONObject forson = payList.get(i);
|
|
||||||
String billNO = forson.getString("field0023");
|
String billNO = forson.getString("field0023");
|
||||||
//联查OA付款申请单明细行
|
//联查OA付款申请单明细行
|
||||||
CLPayApplyEntity clPayApply = new CLPayApplyEntity();
|
CLPayApplyEntity clPayApply = new CLPayApplyEntity();
|
||||||
|
@ -266,41 +345,48 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
clPayApply.setField0001(billNO);
|
clPayApply.setField0001(billNO);
|
||||||
List<CLPayApplyEntity> clPayApplyList = clpayApplyService.queryByBillNo(clPayApply);
|
List<CLPayApplyEntity> clPayApplyList = clpayApplyService.queryByBillNo(clPayApply);
|
||||||
if (CollectionUtils.isNotEmpty(clPayApplyList)) {
|
if (CollectionUtils.isNotEmpty(clPayApplyList)) {
|
||||||
|
if (clPayApplyList.get(0).getSource_bill_type().equals("采购订单")) {
|
||||||
|
clPayApplyList = clPayApplyList.stream().limit(1).collect(Collectors.toList());
|
||||||
|
} else if (clPayApplyList.get(0).getSource_bill_type().equals("应付单")) {
|
||||||
|
clPayApplyList = clPayApplyList.stream()
|
||||||
|
.filter(c -> StrUtil.isNotEmpty(c.getField0066()))
|
||||||
|
.filter(c -> new BigDecimal(c.getField0066()).compareTo(BigDecimal.ZERO) > 0)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
for (CLPayApplyEntity payApply : clPayApplyList) {
|
for (CLPayApplyEntity payApply : clPayApplyList) {
|
||||||
//采购订单号,如果是参照的采购订单 这个值不为空
|
//单据类型
|
||||||
String orderNo = payApply.getField0048();
|
String sourceBillType = payApply.getSource_bill_type();
|
||||||
//应付订单号 如果参照的是应付单 这个值不为空
|
String money = payApply.getField0066();
|
||||||
String payablebillNO = payApply.getField0047();
|
if ("采购订单".equals(sourceBillType)) {
|
||||||
|
money = payApply.getField0071();
|
||||||
|
}
|
||||||
JSONObject payApplyJson = new JSONObject();
|
JSONObject payApplyJson = new JSONObject();
|
||||||
payApplyJson.put("contractno", "");//合同号
|
payApplyJson.put("contractno", "");//合同号
|
||||||
payApplyJson.put("purchaseorder", "");//订单号
|
payApplyJson.put("purchaseorder", "");//订单号
|
||||||
payApplyJson.put("invoiceno", "");//发票号
|
payApplyJson.put("invoiceno", "");//发票号
|
||||||
payApplyJson.put("innerorderno", "");//调拨订单号
|
payApplyJson.put("innerorderno", "");//调拨订单号
|
||||||
payApplyJson.put("scomment", payApply.getField0031());//摘要
|
payApplyJson.put("scomment", forson.getString("field0074"));//摘要
|
||||||
payApplyJson.put("material", payApply.getField0027());//物料编码
|
|
||||||
payApplyJson.put("ap_pk_payterm", "");//付款协议编码
|
payApplyJson.put("ap_pk_payterm", "");//付款协议编码
|
||||||
payApplyJson.put("objtype", formmainData.getString("field0085"));//往来对象1-供应商 2-部门 3-业务员,
|
payApplyJson.put("objtype", formmainData.getString("field0085"));//往来对象1-供应商 2-部门 3-业务员,
|
||||||
payApplyJson.put("supplier", formmainData.getString("field0054"));//供应商编码,往来对象选择供应商时必输
|
payApplyJson.put("supplier", formmainData.getString("field0054"));//供应商编码,往来对象选择供应商时必输
|
||||||
|
payApplyJson.put("supplier_v", formmainData.getString("field0094"));//供应商版本编码
|
||||||
payApplyJson.put("pk_dept", head.getString("pk_dept"));//部门编码,往来对象选择部门时必输
|
payApplyJson.put("pk_dept", head.getString("pk_dept"));//部门编码,往来对象选择部门时必输
|
||||||
payApplyJson.put("pk_psndoc", head.getString("pk_psndoc"));//业务员编码,往来对象选择业务员时必输
|
payApplyJson.put("pk_psndoc", head.getString("pk_psndoc"));//业务员编码,往来对象选择业务员时必输
|
||||||
payApplyJson.put("pk_recpaytype", forson.getString("field0031"));//付款业务类型名称
|
payApplyJson.put("pk_recpaytype", forson.getString("field0031"));//付款业务类型名称
|
||||||
payApplyJson.put("pk_currtype", payApply.getField0051());//币种编码
|
payApplyJson.put("pk_currtype", payApply.getField0051());//币种编码
|
||||||
payApplyJson.put("money_de", payApply.getField0064());//贷方原币金额
|
payApplyJson.put("money_de", money);//贷方原币金额
|
||||||
payApplyJson.put("occupationmny", payApply.getField0064());//预占用核销原币余额
|
payApplyJson.put("occupationmny", money);//预占用核销原币余额
|
||||||
payApplyJson.put("rate", "1");//组织本币汇率
|
payApplyJson.put("rate", "1");//组织本币汇率
|
||||||
payApplyJson.put("local_money_de", payApply.getField0064());//组织本币金额
|
payApplyJson.put("local_money_de", money);//组织本币金额
|
||||||
payApplyJson.put("grouprate", "1");//组织本币汇率
|
payApplyJson.put("grouprate", "1");//组织本币汇率
|
||||||
payApplyJson.put("groupdebit", payApply.getField0064());//集团本币金额
|
payApplyJson.put("groupdebit", money);//集团本币金额
|
||||||
payApplyJson.put("globalrate", "1");//全局本币汇率
|
payApplyJson.put("globalrate", "1");//全局本币汇率
|
||||||
payApplyJson.put("globaldebit", payApply.getField0064());//全局本币金额
|
payApplyJson.put("globaldebit", money);//全局本币金额
|
||||||
payApplyJson.put("quantity_de", payApply.getField0044());//贷方数量
|
payApplyJson.put("pk_balatype", head.getString("pk_balatype"));//结算方式编码
|
||||||
payApplyJson.put("price", payApply.getField0041());//单价
|
payApplyJson.put("pk_subjcode", forson.getString("field0091"));//收支项目编码
|
||||||
payApplyJson.put("local_price", payApply.getField0041());//本币单价
|
payApplyJson.put("ap_payaccount", formmainData.getString("field0089"));//这里有传付款银行子户pk
|
||||||
payApplyJson.put("quantity_bal", "");//数量余额
|
|
||||||
payApplyJson.put("taxprice", payApply.getField0030());//含税单价
|
|
||||||
payApplyJson.put("local_taxprice", payApply.getField0030());//本币含税单价
|
|
||||||
payApplyJson.put("taxcodeid", "");//税码编码
|
payApplyJson.put("taxcodeid", "");//税码编码
|
||||||
payApplyJson.put("taxrate", payApply.getField0043());//税率
|
|
||||||
payApplyJson.put("local_tax_de", "");//税额
|
payApplyJson.put("local_tax_de", "");//税额
|
||||||
payApplyJson.put("notax_de", "");//贷方无税金额
|
payApplyJson.put("notax_de", "");//贷方无税金额
|
||||||
payApplyJson.put("sett_org", "");//结算财务组织编码
|
payApplyJson.put("sett_org", "");//结算财务组织编码
|
||||||
|
@ -309,38 +395,33 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
payApplyJson.put("pu_deptid", "");//业务部门编码
|
payApplyJson.put("pu_deptid", "");//业务部门编码
|
||||||
payApplyJson.put("pu_psndoc", "");//业务人员编码
|
payApplyJson.put("pu_psndoc", "");//业务人员编码
|
||||||
payApplyJson.put("equipmentcode", "");//设备编码
|
payApplyJson.put("equipmentcode", "");//设备编码
|
||||||
payApplyJson.put("pk_subjcode", forson.getString("field0091"));//收支项目编码
|
|
||||||
payApplyJson.put("cashitem", "");//现金流量项目编码
|
payApplyJson.put("cashitem", "");//现金流量项目编码
|
||||||
payApplyJson.put("bankrollproject", "");//资金计划项目编码
|
payApplyJson.put("bankrollproject", "");//资金计划项目编码
|
||||||
payApplyJson.put("checkelement", "");//责任核算要素编码
|
payApplyJson.put("checkelement", "");//责任核算要素编码
|
||||||
payApplyJson.put("subjcode", "");//科目编码
|
payApplyJson.put("subjcode", "");//科目编码
|
||||||
payApplyJson.put("ap_payaccount", formmainData.getString("field0089"));//这里有传付款银行子户pk
|
|
||||||
payApplyJson.put("ap_recaccount", "");//收款银行账户编码
|
payApplyJson.put("ap_recaccount", "");//收款银行账户编码
|
||||||
payApplyJson.put("ordercubasdoc", "");//订单供应商编码
|
payApplyJson.put("ordercubasdoc", "");//订单供应商编码
|
||||||
payApplyJson.put("freecust", "");//散户编码
|
payApplyJson.put("freecust", "");//散户编码
|
||||||
payApplyJson.put("costcenter", "");//成本中心编码
|
payApplyJson.put("costcenter", "");//成本中心编码
|
||||||
payApplyJson.put("productline", "");//产品线编码
|
payApplyJson.put("productline", "");//产品线编码
|
||||||
payApplyJson.put("pk_balatype", head.getString("pk_balatype"));//结算方式编码
|
|
||||||
payApplyJson.put("checktype", "");//票据类型编码
|
payApplyJson.put("checktype", "");//票据类型编码
|
||||||
payApplyJson.put("checkno", "");//票据号
|
payApplyJson.put("checkno", "");//票据号
|
||||||
payApplyJson.put("pk_ratetype", "");//组织汇率类型
|
payApplyJson.put("pk_ratetype", "");//组织汇率类型
|
||||||
payApplyJson.put("ratedate", "");//组织汇率来源日期
|
payApplyJson.put("ratedate", "");//组织汇率来源日期
|
||||||
payApplyJson.put("supplier_v", formmainData.getString("field0094"));//供应商版本编码
|
|
||||||
payApplyJson.put("customer_v", "");//客户版本编码
|
payApplyJson.put("customer_v", "");//客户版本编码
|
||||||
//如果是参照订单做预付,那么源头和来源是一样的
|
//如果是参照订单做预付,那么源头和来源是一样的
|
||||||
if (StrUtil.isNotEmpty(orderNo)) {
|
if ("采购订单".equals(payApply.getSource_bill_type())) {
|
||||||
payApplyJson.put("src_tradetype", payApply.getField0059());//源头交易类型
|
payApplyJson.put("src_tradetype", payApply.getField0059());//源头交易类型
|
||||||
payApplyJson.put("src_billtype", payApply.getField0052());//源头单据类型
|
payApplyJson.put("src_billtype", payApply.getField0052());//源头单据类型
|
||||||
payApplyJson.put("src_billid", payApply.getField0061());//源头单据表头id
|
payApplyJson.put("src_billid", payApply.getField0061());//源头单据表头id
|
||||||
//payApplyJson.put("src_itemid", payApply.getField0062());//源头单据表体id
|
|
||||||
payApplyJson.put("src_itemid", payApply.getField0063());//源头单据表体id
|
payApplyJson.put("src_itemid", payApply.getField0063());//源头单据表体id
|
||||||
payApplyJson.put("top_billid", payApply.getField0061());//上层单据表头id
|
payApplyJson.put("top_billid", payApply.getField0061());//上层单据表头id
|
||||||
//payApplyJson.put("top_itemid", payApply.getField0062());//上层单据表体id // 这里可能是取采购付款计划的pk
|
|
||||||
payApplyJson.put("top_itemid", payApply.getField0063());//上层单据表体id // 这里可能是取采购付款计划的pk
|
payApplyJson.put("top_itemid", payApply.getField0063());//上层单据表体id // 这里可能是取采购付款计划的pk
|
||||||
payApplyJson.put("top_billtype", payApply.getField0052());//上层单据类型
|
payApplyJson.put("top_billtype", payApply.getField0052());//上层单据类型
|
||||||
payApplyJson.put("top_tradetype", payApply.getField0059());//上层交易类型
|
payApplyJson.put("top_tradetype", payApply.getField0059());//上层交易类型
|
||||||
payApplyJson.put("purchaseorder", payApply.getField0048());//订单号
|
payApplyJson.put("purchaseorder", payApply.getField0048());//订单号
|
||||||
payApplyJson.put("prepay", "1");//付款性质(0应付款、1预付款)
|
payApplyJson.put("prepay", "预付款");//付款性质(0应付款、1预付款)
|
||||||
|
payApplyJson.put("taxrate", "0");//税率
|
||||||
} else {
|
} else {
|
||||||
//如果是参照应付 那正常取数
|
//如果是参照应付 那正常取数
|
||||||
payApplyJson.put("src_tradetype", payApply.getField0053());//源头交易类型
|
payApplyJson.put("src_tradetype", payApply.getField0053());//源头交易类型
|
||||||
|
@ -351,36 +432,78 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
payApplyJson.put("top_itemid", payApply.getField0062());//上层单据表体id
|
payApplyJson.put("top_itemid", payApply.getField0062());//上层单据表体id
|
||||||
payApplyJson.put("top_billtype", payApply.getField0052());//上层单据类型
|
payApplyJson.put("top_billtype", payApply.getField0052());//上层单据类型
|
||||||
payApplyJson.put("top_tradetype", payApply.getField0059());//上层交易类型
|
payApplyJson.put("top_tradetype", payApply.getField0059());//上层交易类型
|
||||||
payApplyJson.put("prepay", "0");//付款性质(0应付款、1预付款)
|
payApplyJson.put("prepay", "应付款");//付款性质(0应付款、1预付款)
|
||||||
|
payApplyJson.put("material", payApply.getField0027());//物料编码
|
||||||
|
payApplyJson.put("taxrate", payApply.getField0043());//税率
|
||||||
|
payApplyJson.put("quantity_de", payApply.getField0044());//贷方数量
|
||||||
|
payApplyJson.put("price", payApply.getField0041());//单价
|
||||||
|
payApplyJson.put("local_price", payApply.getField0041());//本币单价
|
||||||
|
payApplyJson.put("quantity_bal", "");//数量余额
|
||||||
|
payApplyJson.put("taxprice", payApply.getField0030());//含税单价
|
||||||
|
payApplyJson.put("local_taxprice", payApply.getField0030());//本币含税单价
|
||||||
}
|
}
|
||||||
//累加付款总额
|
//累加付款总额
|
||||||
money = money.add(new BigDecimal(payApply.getField0064()));
|
totalMoney = totalMoney.add(new BigDecimal(money));
|
||||||
itemList.add(payApplyJson);
|
itemList.add(payApplyJson);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
head.put("money", money);//原币金额
|
head.put("money", totalMoney);//原币金额
|
||||||
head.put("local_money", money);//组织本币金额
|
head.put("local_money", totalMoney);//组织本币金额
|
||||||
head.put("grouplocal", money);//集团本币金额
|
head.put("grouplocal", totalMoney);//集团本币金额
|
||||||
head.put("globallocal", money);//全局本币金额
|
head.put("globallocal", totalMoney);//全局本币金额
|
||||||
head.put("items", itemList);
|
head.put("items", itemList);
|
||||||
String req = JSONObject.toJSONString(head);
|
String req = JSONObject.toJSONString(head);
|
||||||
logger.info("======OA付款单传NCC付款单请求参数:{}======", req);
|
logger.info("======OA付款单传NCC付款单请求参数:{}======", req);
|
||||||
String access_token = getAccessToken();
|
return req;
|
||||||
String result = HttpRequest.post(baseUrl)
|
}
|
||||||
.header("appId", "800065")//NCC应用
|
|
||||||
.header("apiCode", "8000650012")//NCC付款单新增保存提交
|
|
||||||
.header("publicKey", "ZJYAbkr9+XjnDrlfQCRKXtpVvg/BjxqtxzcLgg5TIGagEKJCe7eDIk+3zDUT+v578prj")//OA公钥
|
|
||||||
.header("secretKey", "2GR4+yrcx+Ev+pN0Q6V6wxCdvisPX7wzNKBgc5SsIYGxYI5GTISXT6GvTPfp1u2Rj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//OA密钥
|
|
||||||
.header("access_token", access_token)//token
|
|
||||||
.body(req)//表单内容
|
|
||||||
.timeout(30000)//超时,毫秒
|
|
||||||
.execute().body();
|
|
||||||
logger.info("======OA付款单传NCC付款单响应参数:{}======",result);
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析返回结果,并把单号更新到OA
|
||||||
|
* @param result
|
||||||
|
* @param datasourceCode
|
||||||
|
* @param headers
|
||||||
|
* @param id OA付款单明细行id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Boolean parseRes(String result,String datasourceCode,JSONObject headers,String id){
|
||||||
|
boolean flag = false;
|
||||||
|
JSONObject attribute = getAttribute(result);
|
||||||
|
if (null != attribute){
|
||||||
|
String sql = null;
|
||||||
|
Boolean success = attribute.getBoolean("success");
|
||||||
|
if (success){
|
||||||
|
flag = true;
|
||||||
|
JSONObject data = attribute.getJSONObject("data");
|
||||||
|
String message = Convert.toStr(attribute.getString("message"), "成功");
|
||||||
|
String billno = data.getString("billno");
|
||||||
|
if (StrUtil.isNotEmpty(billno)){
|
||||||
|
String sqlTemplate = "update {} set {} = '{}',{} = '{}' where {} = '{}'";
|
||||||
|
sql = StrUtil.format(sqlTemplate,headers.getString("forsonTableName"),"field0100",billno,"field0101",message,"id",id);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
String message = Convert.toStr(attribute.getString("message"), "失败");
|
||||||
|
String sqlTemplate = "update {} set {} = '{}' where {} = '{}'";
|
||||||
|
//更新错误信息
|
||||||
|
sql = StrUtil.format(sqlTemplate,headers.getString("forsonTableName"),"field0101",message,"id",id);
|
||||||
|
}
|
||||||
|
CLPayApplyEntity entity = new CLPayApplyEntity();
|
||||||
|
entity.setDataSourceCode(datasourceCode);
|
||||||
|
try {
|
||||||
|
clPayApplyDao.execUpdateSql(sql,entity);
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.error("更新NCC付款单号到OA失败:{}",e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日期格式化
|
||||||
|
* @param dateStr
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private static String formatDate(String dateStr) {
|
private static String formatDate(String dateStr) {
|
||||||
if (StrUtil.isNotEmpty(dateStr)) {
|
if (StrUtil.isNotEmpty(dateStr)) {
|
||||||
return DateUtil.format(DateUtil.parseDate(dateStr), "yyyy-MM-dd HH:mm:ss");
|
return DateUtil.format(DateUtil.parseDate(dateStr), "yyyy-MM-dd HH:mm:ss");
|
||||||
|
@ -388,7 +511,11 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getAccessToken(){
|
/**
|
||||||
|
* 获取token
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String getAccessToken() {
|
||||||
try {
|
try {
|
||||||
String result = HttpRequest.post(baseUrl)
|
String result = HttpRequest.post(baseUrl)
|
||||||
.header("appId", "800065")//NCC应用
|
.header("appId", "800065")//NCC应用
|
||||||
|
@ -398,19 +525,71 @@ public class PaybillPluginServiceImpl implements IPaybillPluginService {
|
||||||
.body("")//表单内容
|
.body("")//表单内容
|
||||||
.timeout(30000)//超时,毫秒
|
.timeout(30000)//超时,毫秒
|
||||||
.execute().body();
|
.execute().body();
|
||||||
if (StrUtil.isNotEmpty(result)){
|
JSONObject data = getData(result);
|
||||||
JSONObject resultJson = JSONObject.parseObject(result);
|
if (null != data) {
|
||||||
JSONObject attribute = resultJson.getJSONObject("attribute");
|
|
||||||
if (null != attribute && attribute.getBoolean("success")){
|
|
||||||
JSONObject data = attribute.getJSONObject("data");
|
|
||||||
if (null != data){
|
|
||||||
return data.getString("access_token");
|
return data.getString("access_token");
|
||||||
}
|
}
|
||||||
}
|
} catch (Exception e) {
|
||||||
}
|
logger.error("获取NCCtoken失败:{}", e);
|
||||||
}catch (Exception e){
|
|
||||||
logger.error("获取NCCtoken失败:{}",e);
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NCC返回值data值
|
||||||
|
*
|
||||||
|
* @param result
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private JSONObject getData(String result) {
|
||||||
|
if (StrUtil.isNotEmpty(result)) {
|
||||||
|
JSONObject resultJson = JSONObject.parseObject(result);
|
||||||
|
JSONObject attribute = resultJson.getJSONObject("attribute");
|
||||||
|
if (null != attribute && attribute.getBoolean("success")) {
|
||||||
|
JSONObject data = attribute.getJSONObject("data");
|
||||||
|
if (null != data) {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//是否成功
|
||||||
|
private Boolean isSuccess(String result){
|
||||||
|
if (StrUtil.isNotEmpty(result)) {
|
||||||
|
JSONObject resultJson = JSONObject.parseObject(result);
|
||||||
|
JSONObject attribute = resultJson.getJSONObject("attribute");
|
||||||
|
if (null != attribute ) {
|
||||||
|
return attribute.getBoolean("success");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//NCC返回值
|
||||||
|
private JSONObject getAttribute(String result) {
|
||||||
|
if (StrUtil.isNotEmpty(result)) {
|
||||||
|
JSONObject resultJson = JSONObject.parseObject(result);
|
||||||
|
JSONObject attribute = resultJson.getJSONObject("attribute");
|
||||||
|
if (null != attribute) {
|
||||||
|
return attribute;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String message = Convert.toStr("111", "成功");
|
||||||
|
System.out.println(message);
|
||||||
|
String result = "{\"msg\":\"转发成功\",\"type\":null,\"flag\":true,\"status\":\"200\",\"attribute\":{\"code\":\"1000000000\",\"data\":{\"pk_bill\":\"1001A6100000000Z54H4\",\"billmaker\":\"1001A1100000000WFLXR\",\"billno\":\"D32025070900000861\",\"pk_org\":\"0001A11000000000EL8V\"},\"success\":true,\"message\":null,\"errorStack\":null}}";
|
||||||
|
PaybillPluginServiceImpl service = new PaybillPluginServiceImpl();
|
||||||
|
JSONObject data = service.getData(result);
|
||||||
|
if (null != data){
|
||||||
|
String billno = data.getString("billno");
|
||||||
|
if (StrUtil.isNotEmpty(billno)){
|
||||||
|
String sqlTemplate = "update {} set {} = '{}' where {} = '{}'";
|
||||||
|
String sql = StrUtil.format(sqlTemplate,"formmain_1","field0100",billno,"id","123");
|
||||||
|
System.out.println(sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue