收款推凭证从弹性域获取值;客商账户名称处理;凭证号回写接口设置年份
This commit is contained in:
parent
f01baa5898
commit
fe1f7e1445
|
|
@ -19,6 +19,7 @@ import kd.bos.logging.LogFactory;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
import shjh.jhzj7.fi.fi.plugin.form.info.RecFieldsInfo;
|
import shjh.jhzj7.fi.fi.plugin.form.info.RecFieldsInfo;
|
||||||
|
|
@ -40,6 +41,8 @@ import static shjh.jhzj7.fi.fi.utils.SapUtils.sap_accounVoucher;
|
||||||
public class RecPushVoucherOperation extends AbstractOperationServicePlugIn implements Plugin {
|
public class RecPushVoucherOperation extends AbstractOperationServicePlugIn implements Plugin {
|
||||||
|
|
||||||
private final static Log logger = LogFactory.getLog(RecPushVoucherOperation.class);
|
private final static Log logger = LogFactory.getLog(RecPushVoucherOperation.class);
|
||||||
|
private static final String glbdName = "gl_assist_bd";//核算项目组合纵表
|
||||||
|
private static final String customerName = "bd_customer";//客户标识
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -336,13 +339,19 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
||||||
QFilter voucherFilters = new QFilter("sourcebill", QCP.equals, recBill.getPkValue());
|
QFilter voucherFilters = new QFilter("sourcebill", QCP.equals, recBill.getPkValue());
|
||||||
voucherFilters.and(new QFilter("billstatus",QCP.equals,"C"));//已审核
|
voucherFilters.and(new QFilter("billstatus",QCP.equals,"C"));//已审核
|
||||||
DynamicObject gl_voucher = BusinessDataServiceHelper.loadSingle("gl_voucher",
|
DynamicObject gl_voucher = BusinessDataServiceHelper.loadSingle("gl_voucher",
|
||||||
"id,sourcebill,entries,entries.account,entries.debitlocal,entries.creditlocal,entries.entrydc,vouchertype",
|
"id,sourcebill,entries,entries.account,entries.assgrp,entries.debitlocal,entries.creditlocal,entries.entrydc,vouchertype",
|
||||||
voucherFilters.toArray());
|
voucherFilters.toArray());
|
||||||
|
|
||||||
if (gl_voucher != null) {
|
if (gl_voucher != null) {
|
||||||
|
DynamicObject assgrpinfo;
|
||||||
|
String asstype;
|
||||||
|
DynamicObject glassistbd;
|
||||||
|
DynamicObject hsxminfo;
|
||||||
json_HEADER.put("BLART", gl_voucher.getString("vouchertype.number"));//凭证类型
|
json_HEADER.put("BLART", gl_voucher.getString("vouchertype.number"));//凭证类型
|
||||||
DynamicObjectCollection entries = gl_voucher.getDynamicObjectCollection("entries");
|
DynamicObjectCollection entries = gl_voucher.getDynamicObjectCollection("entries");
|
||||||
if (entries != null && !entries.isEmpty()) {
|
if (entries != null && !entries.isEmpty()) {
|
||||||
|
//如果是客户拆分,则从凭证上获取客户编号
|
||||||
|
boolean customersplit = recBill.getBoolean(RecFieldsInfo.CUSTOMER_SPLIT);
|
||||||
for (DynamicObject entry : entries) {
|
for (DynamicObject entry : entries) {
|
||||||
JSONObject IT_ITEMS = new JSONObject();
|
JSONObject IT_ITEMS = new JSONObject();
|
||||||
// 设置科目
|
// 设置科目
|
||||||
|
|
@ -351,7 +360,7 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
||||||
IT_ITEMS.put("HKONT", account.getString("number"));
|
IT_ITEMS.put("HKONT", account.getString("number"));
|
||||||
//查找核算维度
|
//查找核算维度
|
||||||
DynamicObjectCollection checkItems = account.getDynamicObjectCollection("checkitementry");
|
DynamicObjectCollection checkItems = account.getDynamicObjectCollection("checkitementry");
|
||||||
if (checkItems!=null && checkItems.size()!=0){
|
if (!customersplit && checkItems!=null && checkItems.size()!=0){
|
||||||
//是否已经反写
|
//是否已经反写
|
||||||
boolean isMark = false;
|
boolean isMark = false;
|
||||||
for (DynamicObject checkItem : checkItems) {
|
for (DynamicObject checkItem : checkItems) {
|
||||||
|
|
@ -375,6 +384,25 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//从凭证弹性域获取客户编号
|
||||||
|
if(customersplit){
|
||||||
|
assgrpinfo = entry.getDynamicObject("assgrp");//核算维度(弹性域)
|
||||||
|
if(assgrpinfo != null){
|
||||||
|
DynamicObjectCollection gl_assist_bd = QueryServiceHelper.query(glbdName, "asstype,assval",
|
||||||
|
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});
|
||||||
|
|
||||||
|
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||||
|
glassistbd = gl_assist_bd.get(j);
|
||||||
|
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||||
|
if("f0001".equals(asstype) || "f000057".equals(asstype)){
|
||||||
|
//t_bas_flex_property 表中获取对应编号 客户-获利段 f0001 客户编码 f000057
|
||||||
|
hsxminfo = QueryServiceHelper.queryOne(customerName, "id,name,number",
|
||||||
|
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||||
|
IT_ITEMS.put("KUNNR",hsxminfo.getString("number"));//利润中心_利润中心
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理金额
|
// 处理金额
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,12 @@ public class SupplierInitOperation extends AbstractOperationServicePlugIn implem
|
||||||
}
|
}
|
||||||
bankinfo = doc_bank.addNew();
|
bankinfo = doc_bank.addNew();
|
||||||
bankinfo.set("bankaccount",json_bank.getString("banknumber"));//银行账号
|
bankinfo.set("bankaccount",json_bank.getString("banknumber"));//银行账号
|
||||||
|
if(EsbUtils.isEmpty(json_bank.getString("acctname"))){
|
||||||
|
//如果入参中没有账户名称,则使用当前名称
|
||||||
|
bankinfo.set("accountname",supname);//账户名称
|
||||||
|
}else{
|
||||||
bankinfo.set("accountname",json_bank.getString("acctname"));//账户名称
|
bankinfo.set("accountname",json_bank.getString("acctname"));//账户名称
|
||||||
|
}
|
||||||
bankinfo.set("bank",bebankinfo.getLong("id"));//开户银行-行名行号 根据入参查找
|
bankinfo.set("bank",bebankinfo.getLong("id"));//开户银行-行名行号 根据入参查找
|
||||||
bankinfo.set("currency",JhzjUtils.CNY);//币别 默认人民币
|
bankinfo.set("currency",JhzjUtils.CNY);//币别 默认人民币
|
||||||
bankinfo.set("shjh_banktype",json_bank.getString("banktype"));//合作银行类型
|
bankinfo.set("shjh_banktype",json_bank.getString("banktype"));//合作银行类型
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@ public class CustomerControler {
|
||||||
currentCus.set("masterid",currentSupId);
|
currentCus.set("masterid",currentSupId);
|
||||||
//处理银行-新增-员工类客户不需要处理
|
//处理银行-新增-员工类客户不需要处理
|
||||||
if(!"M400".equals(type)){
|
if(!"M400".equals(type)){
|
||||||
handleBank(banksJson,currentCus.getDynamicObjectCollection("entry_bank"),cusnumber);
|
handleBank(banksJson,currentCus.getDynamicObjectCollection("entry_bank"),cusnumber,cusname);
|
||||||
}else{
|
}else{
|
||||||
//如果是个人,则伙伴类型字段为个人
|
//如果是个人,则伙伴类型字段为个人
|
||||||
currentCus.set("type","4");//伙伴类型
|
currentCus.set("type","4");//伙伴类型
|
||||||
|
|
@ -158,7 +158,7 @@ public class CustomerControler {
|
||||||
handleFive(customerfivesJson,currentCus.getDynamicObjectCollection("shjh_entry_five"),cusnumber);
|
handleFive(customerfivesJson,currentCus.getDynamicObjectCollection("shjh_entry_five"),cusnumber);
|
||||||
//处理银行-新增-员工类客户不需要处理
|
//处理银行-新增-员工类客户不需要处理
|
||||||
if(!"M400".equals(type)){
|
if(!"M400".equals(type)){
|
||||||
handleBank(banksJson,currentCus.getDynamicObjectCollection("entry_bank"),cusnumber);
|
handleBank(banksJson,currentCus.getDynamicObjectCollection("entry_bank"),cusnumber,cusname);
|
||||||
}
|
}
|
||||||
SaveServiceHelper.save(new DynamicObject[]{currentCus});
|
SaveServiceHelper.save(new DynamicObject[]{currentCus});
|
||||||
}
|
}
|
||||||
|
|
@ -225,7 +225,7 @@ public class CustomerControler {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleBank(JSONArray banksJson,DynamicObjectCollection doc_bank,String cusnumber){
|
private void handleBank(JSONArray banksJson,DynamicObjectCollection doc_bank,String cusnumber,String cusname){
|
||||||
if(banksJson == null){
|
if(banksJson == null){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -240,7 +240,12 @@ public class CustomerControler {
|
||||||
bankinfo = doc_bank.addNew();
|
bankinfo = doc_bank.addNew();
|
||||||
}
|
}
|
||||||
bankinfo.set("bankaccount",json_body.getString("banknumber"));//银行账号
|
bankinfo.set("bankaccount",json_body.getString("banknumber"));//银行账号
|
||||||
|
if(EsbUtils.isEmpty(json_body.getString("acctname"))){
|
||||||
|
//如果入参中没有账户名称,则使用当前名称
|
||||||
|
bankinfo.set("accountname",cusname);//账户名称
|
||||||
|
}else{
|
||||||
bankinfo.set("accountname",json_body.getString("acctname"));//账户名称
|
bankinfo.set("accountname",json_body.getString("acctname"));//账户名称
|
||||||
|
}
|
||||||
//根据详细分机银行 查找对应的行名行号
|
//根据详细分机银行 查找对应的行名行号
|
||||||
bebankinfo = BusinessDataServiceHelper.loadSingleFromCache(bebankName,"id,name",new QFilter[]{new QFilter("name","=",json_body.getString("bankname"))});
|
bebankinfo = BusinessDataServiceHelper.loadSingleFromCache(bebankName,"id,name",new QFilter[]{new QFilter("name","=",json_body.getString("bankname"))});
|
||||||
if(bebankinfo != null){
|
if(bebankinfo != null){
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,12 @@ public class SupplierControler {
|
||||||
bankinfo = doc_bank.addNew();
|
bankinfo = doc_bank.addNew();
|
||||||
}
|
}
|
||||||
bankinfo.set("bankaccount",json_bank.getString("banknumber"));//银行账号
|
bankinfo.set("bankaccount",json_bank.getString("banknumber"));//银行账号
|
||||||
|
if(EsbUtils.isEmpty(json_bank.getString("acctname"))){
|
||||||
|
//如果入参中没有账户名称,则使用当前名称
|
||||||
|
bankinfo.set("accountname",supname);//账户名称
|
||||||
|
}else{
|
||||||
bankinfo.set("accountname",json_bank.getString("acctname"));//账户名称
|
bankinfo.set("accountname",json_bank.getString("acctname"));//账户名称
|
||||||
|
}
|
||||||
bankinfo.set("bank",bebankinfo.getLong("id"));//开户银行-行名行号 根据入参查找
|
bankinfo.set("bank",bebankinfo.getLong("id"));//开户银行-行名行号 根据入参查找
|
||||||
bankinfo.set("currency",JhzjUtils.CNY);//币别 默认人民币
|
bankinfo.set("currency",JhzjUtils.CNY);//币别 默认人民币
|
||||||
bankinfo.set("shjh_banktype",json_bank.getString("banktype"));//合作银行类型
|
bankinfo.set("shjh_banktype",json_bank.getString("banktype"));//合作银行类型
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,10 @@ public class VouchernumControler {
|
||||||
|
|
||||||
paybill.set("shjh_credentialnum",voucherNum);//SAP付款凭证号
|
paybill.set("shjh_credentialnum",voucherNum);//SAP付款凭证号
|
||||||
paybill.set("shjh_voucherdate",formattedDateAsDate);//SAP凭证过账日期
|
paybill.set("shjh_voucherdate",formattedDateAsDate);//SAP凭证过账日期
|
||||||
|
if(formattedDate != null && formattedDate.length() > 4){
|
||||||
|
paybill.set("shjh_sapfiscalyear",formattedDate.substring(0,4));//SAP的会计年度-过账日期的年份
|
||||||
|
}
|
||||||
|
|
||||||
fkBillNum = paybill.getString("billno");
|
fkBillNum = paybill.getString("billno");
|
||||||
SaveServiceHelper.save(new DynamicObject[]{paybill});
|
SaveServiceHelper.save(new DynamicObject[]{paybill});
|
||||||
// 可以添加更多的错误处理逻辑,如记录到数据库等
|
// 可以添加更多的错误处理逻辑,如记录到数据库等
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue