###
- [x] 优化收款单携带资金计划科目的逻辑 - [x] 优化付款申请单携带资金计划科目的逻辑(不包含单据类型) - [x] 费控推送付款申请增加字段(业务大小类) --s
This commit is contained in:
parent
1197af0625
commit
feafef3c15
|
|
@ -38,9 +38,6 @@ public class PayApplySaveOperation extends AbstractOperationServicePlugIn implem
|
||||||
DynamicObject[] dataEntities = e.getDataEntities();
|
DynamicObject[] dataEntities = e.getDataEntities();
|
||||||
for (DynamicObject bill : dataEntities) {
|
for (DynamicObject bill : dataEntities) {
|
||||||
bill = BusinessDataServiceHelper.loadSingle(bill.getPkValue(),"ap_payapply");
|
bill = BusinessDataServiceHelper.loadSingle(bill.getPkValue(),"ap_payapply");
|
||||||
// DynamicObject shjhMembersubject = xdMembersubject(bill);
|
|
||||||
// bill.set("shjh_membersubject", shjhMembersubject);
|
|
||||||
// SaveServiceHelper.save(new DynamicObject[]{bill});
|
|
||||||
|
|
||||||
String sourcesystem = bill.getString("shjh_sourcesystem");//来源系统:SAP
|
String sourcesystem = bill.getString("shjh_sourcesystem");//来源系统:SAP
|
||||||
boolean shjhSapwhetherlocking = bill.getBoolean("shjh_sapwhetherlocking");//SAP是否锁定:未锁定
|
boolean shjhSapwhetherlocking = bill.getBoolean("shjh_sapwhetherlocking");//SAP是否锁定:未锁定
|
||||||
|
|
@ -78,9 +75,9 @@ public class PayApplySaveOperation extends AbstractOperationServicePlugIn implem
|
||||||
//成功:更新状态
|
//成功:更新状态
|
||||||
bill.set("shjh_sapwhetherlocking", true);
|
bill.set("shjh_sapwhetherlocking", true);
|
||||||
//SAP应付凭证生成付款申请单后,系统自动根据配置表带出资金计划科目
|
//SAP应付凭证生成付款申请单后,系统自动根据配置表带出资金计划科目
|
||||||
DynamicObject shjhMembersubject = xdMembersubject(bill);
|
// DynamicObject shjhMembersubject = xdMembersubject(bill);
|
||||||
bill.set("shjh_membersubject", shjhMembersubject);
|
// bill.set("shjh_membersubject", shjhMembersubject);
|
||||||
SaveServiceHelper.save(new DynamicObject[]{bill});
|
// SaveServiceHelper.save(new DynamicObject[]{bill});
|
||||||
this.operationResult.addSuccessPkId(bill.getPkValue());
|
this.operationResult.addSuccessPkId(bill.getPkValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -351,7 +348,7 @@ public class PayApplySaveOperation extends AbstractOperationServicePlugIn implem
|
||||||
|
|
||||||
String bbhdjlx = account.getString("shjh_bbhdjlx");
|
String bbhdjlx = account.getString("shjh_bbhdjlx");
|
||||||
// 不包含单据类型_包含剔除
|
// 不包含单据类型_包含剔除
|
||||||
if (bbhdjlx.contains(shjhExternalsystemdocume)) {
|
if (bbhdjlx.contains(shjhExternalsystemdocume)&& StringUtils.isNotEmpty(shjhExternalsystemdocume)) {
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
import kd.bos.util.StringUtils;
|
import kd.bos.util.StringUtils;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 付款单保存操作
|
* 付款单保存操作
|
||||||
|
|
@ -135,7 +135,7 @@ public class PayBillSaveOperation extends AbstractOperationServicePlugIn impleme
|
||||||
Long shjhBizbigid = shjhBizbig.getLong("id");
|
Long shjhBizbigid = shjhBizbig.getLong("id");
|
||||||
QFilter q1 = new QFilter("shjh_bizbig.fbasedataid", QCP.equals, shjhBizbigid);//包含业务大类
|
QFilter q1 = new QFilter("shjh_bizbig.fbasedataid", QCP.equals, shjhBizbigid);//包含业务大类
|
||||||
QFilter q2 = new QFilter("shjh_bizbig.fbasedataid", QCP.equals, null);
|
QFilter q2 = new QFilter("shjh_bizbig.fbasedataid", QCP.equals, null);
|
||||||
QFilter q3 = new QFilter("shjh_bbhywdl.fbasedataid", QCP.equals, shjhBizbigid);//不包含业务大类
|
QFilter q3 = new QFilter("shjh_bbhywdl.fbasedataid", QCP.not_equals, shjhBizbigid);//不包含业务大类
|
||||||
QFilter q4 = new QFilter("shjh_bbhywdl.fbasedataid", QCP.equals, null);
|
QFilter q4 = new QFilter("shjh_bbhywdl.fbasedataid", QCP.equals, null);
|
||||||
qFilter = qFilter.and(q1.or(q2)).and(q3.or(q4));
|
qFilter = qFilter.and(q1.or(q2)).and(q3.or(q4));
|
||||||
}else {
|
}else {
|
||||||
|
|
@ -205,6 +205,7 @@ public class PayBillSaveOperation extends AbstractOperationServicePlugIn impleme
|
||||||
qFilter = qFilter.and(q3.or(q4));
|
qFilter = qFilter.and(q3.or(q4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String shjhBhcgz = "";
|
||||||
//分录字段
|
//分录字段
|
||||||
DynamicObjectCollection entrys = bill.getDynamicObjectCollection("entry");//付款明细
|
DynamicObjectCollection entrys = bill.getDynamicObjectCollection("entry");//付款明细
|
||||||
if (!entrys.isEmpty()) {
|
if (!entrys.isEmpty()) {
|
||||||
|
|
@ -223,29 +224,17 @@ public class PayBillSaveOperation extends AbstractOperationServicePlugIn impleme
|
||||||
//会计科目 shjh_sapkjkm
|
//会计科目 shjh_sapkjkm
|
||||||
DynamicObject shjhSapkjkm = entry.getDynamicObject("shjh_sapkjkm");
|
DynamicObject shjhSapkjkm = entry.getDynamicObject("shjh_sapkjkm");
|
||||||
if (null != shjhSapkjkm) {
|
if (null != shjhSapkjkm) {
|
||||||
Long kjkmid = shjhSapkjkm.getLong("id");
|
// Long kjkmid = shjhSapkjkm.getLong("id");
|
||||||
QFilter q1 = new QFilter("shjh_kjkm.fbasedataid", QCP.equals, kjkmid);
|
QFilter q1 = new QFilter("shjh_kjkm.fbasedataid.number", QCP.equals, shjhSapkjkm.getString("number"));
|
||||||
QFilter q2 = new QFilter("shjh_kjkm.fbasedataid", QCP.equals, null);
|
QFilter q2 = new QFilter("shjh_kjkm.fbasedataid.number", QCP.equals, null);
|
||||||
qFilter = qFilter.and(q1.or(q2));
|
qFilter = qFilter.and(q1.or(q2));
|
||||||
}else{
|
}else{
|
||||||
QFilter q2 = new QFilter("shjh_kjkm.fbasedataid", QCP.equals, null);
|
QFilter q2 = new QFilter("shjh_kjkm.fbasedataid.number", QCP.equals, null);
|
||||||
qFilter = qFilter.and(q2);
|
qFilter = qFilter.and(q2);
|
||||||
}
|
}
|
||||||
//采购组shjh_procurementteam && 不包含采购组
|
//采购组shjh_procurementteam && 不包含采购组
|
||||||
String shjhBhcgz = entry.getString("shjh_procurementteam");
|
shjhBhcgz = entry.getString("shjh_procurementteam");
|
||||||
QFilter filter = new QFilter("number", QCP.equals, shjhBhcgz);
|
|
||||||
DynamicObject shjh_cgz = BusinessDataServiceHelper.loadSingle("shjh_cgz", filter.toArray());
|
|
||||||
if (null != shjh_cgz) {
|
|
||||||
Long cgzid = shjh_cgz.getLong("id");
|
|
||||||
QFilter q1 = new QFilter("shjh_bhcgz.fbasedataid", QCP.equals, cgzid);//包含采购粗
|
|
||||||
QFilter q2 = new QFilter("shjh_bhcgz.fbasedataid", QCP.equals, null);
|
|
||||||
QFilter q3 = new QFilter("shjh_bbhcgz.fbasedataid", QCP.equals, cgzid);//不包含采购粗
|
|
||||||
QFilter q4 = new QFilter("shjh_bbhcgz.fbasedataid", QCP.equals, null);
|
|
||||||
qFilter = qFilter.and(q1.or(q2)).and(q3.or(q4));
|
|
||||||
}else{
|
|
||||||
QFilter q2 = new QFilter("shjh_bhcgz.fbasedataid", QCP.equals, null);
|
|
||||||
qFilter = qFilter.and(q2);
|
|
||||||
}
|
|
||||||
}else {
|
}else {
|
||||||
QFilter q2 = new QFilter("shjh_yym.fbasedataid", QCP.equals, null);
|
QFilter q2 = new QFilter("shjh_yym.fbasedataid", QCP.equals, null);
|
||||||
QFilter q3 = new QFilter("shjh_kjkm.fbasedataid", QCP.equals, null);
|
QFilter q3 = new QFilter("shjh_kjkm.fbasedataid", QCP.equals, null);
|
||||||
|
|
@ -253,7 +242,8 @@ public class PayBillSaveOperation extends AbstractOperationServicePlugIn impleme
|
||||||
qFilter = qFilter.and(q2).and(q3).and(q4);
|
qFilter = qFilter.and(q2).and(q3).and(q4);
|
||||||
}
|
}
|
||||||
|
|
||||||
DynamicObject[] accounts = BusinessDataServiceHelper.load("shjh_pay_account", "id,shjh_membersubject", qFilter.toArray());
|
DynamicObject[] accounts = BusinessDataServiceHelper.load("shjh_request_account", "id," +
|
||||||
|
"shjh_membersubject,shjh_bhcgz,shjh_bbhcgz", qFilter.toArray());
|
||||||
if (accounts.length > 1) {
|
if (accounts.length > 1) {
|
||||||
// 根据生效日期,失效日期区间,判断当前时间满足的数据
|
// 根据生效日期,失效日期区间,判断当前时间满足的数据
|
||||||
// Date currentDate = new Date();
|
// Date currentDate = new Date();
|
||||||
|
|
@ -264,9 +254,50 @@ public class PayBillSaveOperation extends AbstractOperationServicePlugIn impleme
|
||||||
//优先级为高的
|
//优先级为高的
|
||||||
accounts = BusinessDataServiceHelper.load("shjh_pay_account", "id", newFilter.toArray(),"shjh_priority");
|
accounts = BusinessDataServiceHelper.load("shjh_pay_account", "id", newFilter.toArray(),"shjh_priority");
|
||||||
}
|
}
|
||||||
if (accounts.length > 0) {
|
|
||||||
|
// 转换为 List 以便支持 remove 操作
|
||||||
|
List<DynamicObject> configList = new ArrayList<>(Arrays.asList(accounts));
|
||||||
|
|
||||||
|
// 采购组shjh_procurementteam && 不包含采购组
|
||||||
|
QFilter filter = new QFilter("number", QCP.equals, shjhBhcgz);
|
||||||
|
DynamicObject shjh_cgz = BusinessDataServiceHelper.loadSingle("shjh_cgz", filter.toArray());
|
||||||
|
|
||||||
|
if (shjh_cgz != null) {
|
||||||
|
long cgzid = shjh_cgz.getLong("id");
|
||||||
|
Iterator<DynamicObject> iterator = configList.iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
DynamicObject account = iterator.next();
|
||||||
|
// 检查采购组
|
||||||
|
boolean isbh = false;
|
||||||
|
DynamicObjectCollection shjh_cgzs = account.getDynamicObjectCollection("shjh_bhcgz");
|
||||||
|
for (DynamicObject shjhCgz : shjh_cgzs) {
|
||||||
|
DynamicObject fbasedataid = shjhCgz.getDynamicObject("fbasedataid");
|
||||||
|
if (fbasedataid != null && fbasedataid.getLong("id") == cgzid) {
|
||||||
|
isbh = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isbh && !shjh_cgzs.isEmpty()) {
|
||||||
|
iterator.remove();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查不包含采购组
|
||||||
|
DynamicObjectCollection shjh_bbhcgzs = account.getDynamicObjectCollection("shjh_bbhcgz");
|
||||||
|
for (DynamicObject shjhBbhcgz : shjh_bbhcgzs) {
|
||||||
|
DynamicObject fbasedataid = shjhBbhcgz.getDynamicObject("fbasedataid");
|
||||||
|
if (fbasedataid != null && fbasedataid.getLong("id") == cgzid) {
|
||||||
|
iterator.remove();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!configList.isEmpty()) {
|
||||||
// 处理找到符合条件的账户
|
// 处理找到符合条件的账户
|
||||||
DynamicObject account = accounts[0];
|
DynamicObject account = configList.get(0);
|
||||||
account = BusinessDataServiceHelper.loadSingle(account.getPkValue(), "shjh_pay_account");
|
account = BusinessDataServiceHelper.loadSingle(account.getPkValue(), "shjh_pay_account");
|
||||||
return account.getDynamicObject("shjh_membersubject");
|
return account.getDynamicObject("shjh_membersubject");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ 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.operation.OperationServiceHelper;
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||||
|
import kd.bos.util.StringUtils;
|
||||||
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
||||||
import shjh.jhzj7.fi.fi.webapi.model.ApiResultPayApplyExt;
|
import shjh.jhzj7.fi.fi.webapi.model.ApiResultPayApplyExt;
|
||||||
import shjh.jhzj7.fi.fi.webapi.model.ApplyBillModel;
|
import shjh.jhzj7.fi.fi.webapi.model.ApplyBillModel;
|
||||||
|
|
@ -433,6 +434,20 @@ public class ApplyBillControler {
|
||||||
ap_payapply.set("shjh_sapuniquevalue",fkBillID + fkEntryID);//费控唯一值 :费控表头ID+费控分录ID
|
ap_payapply.set("shjh_sapuniquevalue",fkBillID + fkEntryID);//费控唯一值 :费控表头ID+费控分录ID
|
||||||
ap_payapply.set("shjh_transferremark", applybill.getTransferRemark());//转账附言 20250512 yxl
|
ap_payapply.set("shjh_transferremark", applybill.getTransferRemark());//转账附言 20250512 yxl
|
||||||
|
|
||||||
|
//业务大类
|
||||||
|
String bizbig = applybill.getBizbig();
|
||||||
|
if (StringUtils.isNotEmpty(bizbig)) {
|
||||||
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("shjh_bizbigtype", new QFilter[]{new QFilter("shjh_fknumber", QCP.equals, bizbig)});
|
||||||
|
ap_payapply.set("shjh_bizbig", dynamicObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
//业务小类
|
||||||
|
String bizsmall = applybill.getBizsmall();
|
||||||
|
if (StringUtils.isNotEmpty(bizsmall)) {
|
||||||
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("shjh_bizsmalltype", new QFilter[]{new QFilter("shjh_fknumber", QCP.equals, bizsmall)});
|
||||||
|
ap_payapply.set("shjh_basedatafield", dynamicObject);
|
||||||
|
}
|
||||||
|
|
||||||
OperateOption option= OperateOption.create();
|
OperateOption option= OperateOption.create();
|
||||||
option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); // 不执行警告级别校验器
|
option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); // 不执行警告级别校验器
|
||||||
// 新增数据
|
// 新增数据
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,26 @@ public class ApplyBillModel implements Serializable {
|
||||||
private String paymenttype;
|
private String paymenttype;
|
||||||
@ApiParam(value="转账附言",required=false,position=26)
|
@ApiParam(value="转账附言",required=false,position=26)
|
||||||
private String transferRemark;
|
private String transferRemark;
|
||||||
|
@ApiParam(value="业务大类",required=false,position=27)
|
||||||
|
private String bizbig;
|
||||||
|
@ApiParam(value="业务小类",required=false,position=28)
|
||||||
|
private String bizsmall;
|
||||||
|
|
||||||
|
public String getBizbig() {
|
||||||
|
return bizbig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBizbig(String bizbig) {
|
||||||
|
this.bizbig = bizbig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBizsmall() {
|
||||||
|
return bizsmall;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBizsmall(String bizsmall) {
|
||||||
|
this.bizsmall = bizsmall;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTransferRemark() {
|
public String getTransferRemark() {
|
||||||
return transferRemark;
|
return transferRemark;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue