Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
804723a45f
|
@ -0,0 +1,201 @@
|
||||||
|
package shkd.sys.sys.plugin.operation;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.dataentity.metadata.dynamicobject.DynamicCollectionProperty;
|
||||||
|
import kd.bos.entity.EntityMetadataCache;
|
||||||
|
import kd.bos.entity.MainEntityType;
|
||||||
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||||
|
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||||
|
import kd.bos.entity.plugin.args.BeforeOperationArgs;
|
||||||
|
import kd.bos.logging.Log;
|
||||||
|
import kd.bos.logging.LogFactory;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据操作插件
|
||||||
|
*/
|
||||||
|
public class PaymentLinkNotesSave extends AbstractOperationServicePlugIn implements Plugin {
|
||||||
|
private static final Log logger = LogFactory.getLog(PaymentLinkNotesSave.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
|
||||||
|
super.beforeExecuteOperationTransaction(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||||
|
super.afterExecuteOperationTransaction(e);
|
||||||
|
logger.info("进入保存操作代码方法");
|
||||||
|
|
||||||
|
String operationKey = e.getOperationKey();
|
||||||
|
if (!"save".equals(operationKey)) {
|
||||||
|
logger.info("不是save操作,不处理");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DynamicObject[] dataEntities = e.getDataEntities();
|
||||||
|
DynamicObject dataEntity = dataEntities[0];
|
||||||
|
|
||||||
|
// 付款单 transamount(转让金额) paybillcurrency(票据币种) draftbillinfo(结算号)
|
||||||
|
DynamicObject[] fkDynamicObjects = BusinessDataServiceHelper.load(dataEntity.getDynamicObjectType().getName(),
|
||||||
|
"id,billno,shkd_xkbillstatus,settletype,settletnumber,shkd_businessname,draftbill,bizdate,actpayamt," +
|
||||||
|
"cas_draftinfo,cas_draftinfo.transamount,cas_draftinfo.paybillcurrency,cas_draftinfo.draftbillinfo",
|
||||||
|
new QFilter("id", QCP.equals, dataEntity.getPkValue()).toArray());
|
||||||
|
DynamicObject fkDynamicObject = fkDynamicObjects[0];
|
||||||
|
|
||||||
|
// 是否关联票据
|
||||||
|
String shkd_xkbillstatus = fkDynamicObject.getString("shkd_xkbillstatus");
|
||||||
|
if ("2".equals(shkd_xkbillstatus) || "3".equals(shkd_xkbillstatus) || "4".equals(shkd_xkbillstatus)) {
|
||||||
|
logger.info("付款单已关联票据,无需再关联");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 结算方式为空,则不处理
|
||||||
|
DynamicObject settletype = fkDynamicObject.getDynamicObject("settletype");
|
||||||
|
if (settletype == null) {
|
||||||
|
logger.info("结算方式为空,不处理");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String settletype_number = settletype.getString("number");// 结算方式
|
||||||
|
|
||||||
|
|
||||||
|
// 结算号为空,则不处理
|
||||||
|
if (fkDynamicObject.get("settletnumber") == null || "".equals(fkDynamicObject.getString("settletnumber"))) {
|
||||||
|
logger.info("结算号为空,不处理");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String settletnumber = fkDynamicObject.getString("settletnumber");//结算号
|
||||||
|
|
||||||
|
// 来源系统
|
||||||
|
Object businessnameObj = fkDynamicObject.get("shkd_businessname");
|
||||||
|
if (businessnameObj == null || !"XK".equals(businessnameObj.toString())) {
|
||||||
|
logger.info("来源系统不是XK,不处理");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("JSFS06、JSFS07、JSFS19、JSFS20".contains(settletype_number)) {
|
||||||
|
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_payablebill", "id," +
|
||||||
|
"draftbillno,releatedcasbillentrys,releatedcasbillentrys.rel_billtype,releatedcasbillentrys.rel_billno," +
|
||||||
|
"releatedcasbillentrys.rel_billid,releatedcasbillentrys.rel_bizdate,releatedcasbillentrys.rel_billamount," +
|
||||||
|
"releatedcasbillentrys.rel_createtime,releatedcasbillentrys.rel_modifytime,currency,amount", new QFilter("draftbillno", QCP.equals, settletnumber).toArray());
|
||||||
|
|
||||||
|
if (dynamicObjects.length > 0) {
|
||||||
|
// 票据币种
|
||||||
|
Object currency_id = dynamicObjects[0].getDynamicObject("currency").getPkValue();
|
||||||
|
// 转让金额
|
||||||
|
BigDecimal amount = dynamicObjects[0].getBigDecimal("amount");
|
||||||
|
// 结算号
|
||||||
|
Object pkValue = dynamicObjects[0].getPkValue();
|
||||||
|
|
||||||
|
DynamicObjectCollection releatedcasbillentrys = dynamicObjects[0].getDynamicObjectCollection("releatedcasbillentrys");
|
||||||
|
|
||||||
|
// 写入付款单关联票据关联关系
|
||||||
|
|
||||||
|
MainEntityType entityType = EntityMetadataCache.getDataEntityType(fkDynamicObject.getDataEntityType().getName());
|
||||||
|
DynamicCollectionProperty currencyProp = (DynamicCollectionProperty) entityType.getProperty("draftbill");
|
||||||
|
DynamicObjectCollection collection = new DynamicObjectCollection(currencyProp.getDynamicCollectionItemPropertyType(), fkDynamicObject);
|
||||||
|
DynamicObject dynamicObject = new DynamicObject(currencyProp.getDynamicCollectionItemPropertyType());
|
||||||
|
dynamicObject.set("fbasedataid", dynamicObjects[0]);
|
||||||
|
dynamicObject.set("fbasedataid_id", dynamicObjects[0].getPkValue());
|
||||||
|
collection.add(dynamicObject);
|
||||||
|
|
||||||
|
fkDynamicObject.set("draftbill", collection);
|
||||||
|
fkDynamicObject.set("shkd_xkbillstatus", "2");// 关联应付票据
|
||||||
|
|
||||||
|
// 赋值付款单票面信息分录
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = fkDynamicObject.getDynamicObjectCollection("cas_draftinfo");
|
||||||
|
DynamicObject cas_draftinfo_type = new DynamicObject(dynamicObjectCollection.getDynamicObjectType());
|
||||||
|
cas_draftinfo_type.set("transamount", amount);// 转让金额
|
||||||
|
cas_draftinfo_type.set("paybillcurrency", currency_id);// 票据币种
|
||||||
|
cas_draftinfo_type.set("draftbillinfo", pkValue);// 结算号
|
||||||
|
dynamicObjectCollection.add(cas_draftinfo_type);
|
||||||
|
|
||||||
|
fkDynamicObject.set("cas_draftinfo", dynamicObjectCollection);
|
||||||
|
|
||||||
|
|
||||||
|
// 写入票据关联付款单关联关系
|
||||||
|
DynamicObject kpLinkRow = new DynamicObject(releatedcasbillentrys.getDynamicObjectType());
|
||||||
|
|
||||||
|
kpLinkRow.set("rel_billtype", "cas_paybill");// 关联单据类型 → 付款处理
|
||||||
|
kpLinkRow.set("rel_billno", fkDynamicObject.getString("billno"));// 关联单据编号
|
||||||
|
kpLinkRow.set("rel_billid", fkDynamicObject.getPkValue());// 关联单据ID
|
||||||
|
kpLinkRow.set("rel_bizdate", fkDynamicObject.get("bizdate"));// 出纳单据业务日期
|
||||||
|
kpLinkRow.set("rel_billamount", fkDynamicObject.get("actpayamt"));// 关联单据金额
|
||||||
|
kpLinkRow.set("rel_createtime", new Date());// 关联信息创建时间
|
||||||
|
kpLinkRow.set("rel_modifytime", new Date());// 记录修改时间
|
||||||
|
|
||||||
|
releatedcasbillentrys.add(kpLinkRow);
|
||||||
|
|
||||||
|
dynamicObjects[0].set("releatedcasbillentrys", releatedcasbillentrys);
|
||||||
|
SaveServiceHelper.save(dynamicObjects);
|
||||||
|
|
||||||
|
// 最后保存付款单
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject});
|
||||||
|
}
|
||||||
|
} else if ("JSFS09".equals(settletype_number)) {
|
||||||
|
|
||||||
|
// 收票登记:cdm_receivablebill
|
||||||
|
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_receivablebill", "id," +
|
||||||
|
"draftbillno,releatedcasbillentrys,releatedcasbillentrys.rel_billtype,releatedcasbillentrys.rel_billno," +
|
||||||
|
"releatedcasbillentrys.rel_billid,releatedcasbillentrys.rel_bizdate,releatedcasbillentrys.rel_billamount," +
|
||||||
|
"releatedcasbillentrys.rel_createtime,releatedcasbillentrys.rel_modifytime,currency,amount", new QFilter("draftbillno", QCP.equals, settletnumber).toArray());
|
||||||
|
|
||||||
|
if (dynamicObjects.length > 0) {
|
||||||
|
// 票据币种
|
||||||
|
Object currency_id = dynamicObjects[0].getDynamicObject("currency").getPkValue();
|
||||||
|
// 转让金额
|
||||||
|
BigDecimal amount = dynamicObjects[0].getBigDecimal("amount");
|
||||||
|
// 结算号
|
||||||
|
Object pkValue = dynamicObjects[0].getPkValue();
|
||||||
|
|
||||||
|
DynamicObjectCollection releatedcasbillentrys = dynamicObjects[0].getDynamicObjectCollection("releatedcasbillentrys");
|
||||||
|
|
||||||
|
// 写入付款单关联票据关联关系
|
||||||
|
|
||||||
|
MainEntityType entityType = EntityMetadataCache.getDataEntityType(fkDynamicObject.getDataEntityType().getName());
|
||||||
|
DynamicCollectionProperty currencyProp = (DynamicCollectionProperty) entityType.getProperty("draftbill");
|
||||||
|
DynamicObjectCollection collection = new DynamicObjectCollection(currencyProp.getDynamicCollectionItemPropertyType(), fkDynamicObject);
|
||||||
|
DynamicObject dynamicObject = new DynamicObject(currencyProp.getDynamicCollectionItemPropertyType());
|
||||||
|
dynamicObject.set("fbasedataid", dynamicObjects[0]);
|
||||||
|
dynamicObject.set("fbasedataid_id", dynamicObjects[0].getPkValue());
|
||||||
|
collection.add(dynamicObject);
|
||||||
|
fkDynamicObject.set("draftbill", collection);
|
||||||
|
fkDynamicObject.set("shkd_xkbillstatus", "3");// 关联应收票据
|
||||||
|
// 赋值付款单票面信息分录
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = fkDynamicObject.getDynamicObjectCollection("cas_draftinfo");
|
||||||
|
DynamicObject cas_draftinfo_type = new DynamicObject(dynamicObjectCollection.getDynamicObjectType());
|
||||||
|
cas_draftinfo_type.set("transamount", amount);// 转让金额
|
||||||
|
cas_draftinfo_type.set("paybillcurrency", currency_id);// 票据币种
|
||||||
|
cas_draftinfo_type.set("draftbillinfo", pkValue);// 结算号
|
||||||
|
dynamicObjectCollection.add(cas_draftinfo_type);
|
||||||
|
|
||||||
|
// 写入票据关联付款单关联关系
|
||||||
|
DynamicObject kpLinkRow = new DynamicObject(releatedcasbillentrys.getDynamicObjectType());
|
||||||
|
|
||||||
|
kpLinkRow.set("rel_billtype", "cas_paybill");// 关联单据类型 → 付款处理
|
||||||
|
kpLinkRow.set("rel_billno", fkDynamicObject.getString("billno"));// 关联单据编号
|
||||||
|
kpLinkRow.set("rel_billid", fkDynamicObject.getPkValue());// 关联单据ID
|
||||||
|
kpLinkRow.set("rel_bizdate", fkDynamicObject.get("bizdate"));// 出纳单据业务日期
|
||||||
|
kpLinkRow.set("rel_billamount", fkDynamicObject.get("actpayamt"));// 关联单据金额
|
||||||
|
kpLinkRow.set("rel_createtime", new Date());// 关联信息创建时间
|
||||||
|
kpLinkRow.set("rel_modifytime", new Date());// 记录修改时间
|
||||||
|
|
||||||
|
releatedcasbillentrys.add(kpLinkRow);
|
||||||
|
|
||||||
|
dynamicObjects[0].set("releatedcasbillentrys", releatedcasbillentrys);
|
||||||
|
SaveServiceHelper.save(dynamicObjects);
|
||||||
|
|
||||||
|
// 最后保存付款单
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,30 +2,17 @@ package shkd.sys.sys.plugin.operation;
|
||||||
|
|
||||||
import kd.bos.dataentity.OperateOption;
|
import kd.bos.dataentity.OperateOption;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
||||||
import kd.bos.dataentity.metadata.dynamicobject.DynamicCollectionProperty;
|
|
||||||
import kd.bos.dataentity.metadata.dynamicobject.DynamicProperty;
|
|
||||||
import kd.bos.entity.EntityMetadataCache;
|
|
||||||
import kd.bos.entity.MainEntityType;
|
|
||||||
import kd.bos.entity.operate.result.OperationResult;
|
import kd.bos.entity.operate.result.OperationResult;
|
||||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||||
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
import kd.bos.entity.plugin.args.ReturnOperationArgs;
|
||||||
import kd.bos.i18n.mservice.I18nServiceHelper;
|
|
||||||
import kd.bos.i18n.mservice.utils.AmountConvertResult;
|
|
||||||
import kd.bos.logging.Log;
|
import kd.bos.logging.Log;
|
||||||
import kd.bos.logging.LogFactory;
|
import kd.bos.logging.LogFactory;
|
||||||
import kd.bos.orm.query.QCP;
|
|
||||||
import kd.bos.orm.query.QFilter;
|
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
import kd.fi.cas.helper.CasBotpHelper;
|
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
import shkd.sys.sys.plugin.form.PaymentProcessingBillPlugin;
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据操作插件
|
* 单据操作插件
|
||||||
|
@ -34,143 +21,31 @@ import shkd.sys.sys.plugin.form.PaymentProcessingBillPlugin;
|
||||||
public class PaymentSlipAssociationFixed extends AbstractOperationServicePlugIn implements Plugin {
|
public class PaymentSlipAssociationFixed extends AbstractOperationServicePlugIn implements Plugin {
|
||||||
private static final Log logger = LogFactory.getLog(PaymentSlipAssociationFixed.class);
|
private static final Log logger = LogFactory.getLog(PaymentSlipAssociationFixed.class);
|
||||||
@Override
|
@Override
|
||||||
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
public void onReturnOperation(ReturnOperationArgs e) {
|
||||||
super.afterExecuteOperationTransaction(e);
|
super.onReturnOperation(e);
|
||||||
|
List<Object> successPkIds = e.getOperationResult().getSuccessPkIds();//执行成功的数据
|
||||||
|
for (Object successPkId : successPkIds) {
|
||||||
|
logger.info("进入审核操作代码方法");
|
||||||
|
DynamicObject fkDynamicObject = BusinessDataServiceHelper.loadSingle(successPkId, "cas_paybill");
|
||||||
|
logger.info("付款单:{}", fkDynamicObject);
|
||||||
|
|
||||||
logger.info("进入save操作代码方法");
|
String shkdXkbillstatus = fkDynamicObject.getString("shkd_xkbillstatus");
|
||||||
|
|
||||||
DynamicObject[] dataEntities = e.getDataEntities();
|
// 关联票据状态为(关联应收票据)
|
||||||
DynamicObject dataEntity = dataEntities[0];
|
if ("3".equals(shkdXkbillstatus)) {
|
||||||
|
try {
|
||||||
// 是否关联票据
|
OperationResult result = OperationServiceHelper.executeOperate("pushandsave", "cas_paybill", new Object[]{successPkId}, OperateOption.create());
|
||||||
boolean shkdIsrenotes = dataEntity.getBoolean("shkd_isrenotes");
|
|
||||||
if (shkdIsrenotes) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 付款单
|
|
||||||
DynamicObject fkDynamicObject = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), dataEntity.getDynamicObjectType());
|
|
||||||
|
|
||||||
// 结算方式为空,则不处理
|
|
||||||
DynamicObject settletype = fkDynamicObject.getDynamicObject("settletype");
|
|
||||||
if (settletype == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String settletype_number = settletype.getString("number");// 结算方式
|
|
||||||
|
|
||||||
|
|
||||||
// 结算号为空,则不处理
|
|
||||||
if (dataEntity.get("settletnumber") == null || "".equals(dataEntity.getString("settletnumber"))) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String settletnumber = dataEntity.getString("settletnumber");//结算号
|
|
||||||
|
|
||||||
// 来源系统
|
|
||||||
Object businessnameObj = fkDynamicObject.get("shkd_businessname");
|
|
||||||
if (businessnameObj == null || !"XK".equals(businessnameObj.toString())){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ("JSFS06、JSFS07、JSFS19、JSFS20".contains(settletype_number)) {
|
|
||||||
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_payablebill", "id," +
|
|
||||||
"draftbillno,releatedcasbillentrys,releatedcasbillentrys.rel_billtype,releatedcasbillentrys.rel_billno," +
|
|
||||||
"releatedcasbillentrys.rel_billid,releatedcasbillentrys.rel_bizdate,releatedcasbillentrys.rel_billamount," +
|
|
||||||
"releatedcasbillentrys.rel_createtime,releatedcasbillentrys.rel_modifytime", new QFilter("draftbillno", QCP.equals, settletnumber).toArray());
|
|
||||||
|
|
||||||
if (dynamicObjects.length > 0) {
|
|
||||||
|
|
||||||
DynamicObjectCollection releatedcasbillentrys = dynamicObjects[0].getDynamicObjectCollection("releatedcasbillentrys");
|
|
||||||
|
|
||||||
if (!releatedcasbillentrys.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 写入付款单关联票据关联关系
|
|
||||||
|
|
||||||
MainEntityType entityType = EntityMetadataCache.getDataEntityType(fkDynamicObject.getDataEntityType().getName());
|
|
||||||
DynamicCollectionProperty currencyProp = (DynamicCollectionProperty) entityType.getProperty("draftbill");
|
|
||||||
DynamicObjectCollection collection = new DynamicObjectCollection(currencyProp.getDynamicCollectionItemPropertyType(), fkDynamicObject);
|
|
||||||
DynamicObject dynamicObject = new DynamicObject(currencyProp.getDynamicCollectionItemPropertyType());
|
|
||||||
dynamicObject.set("fbasedataid", dynamicObjects[0]);
|
|
||||||
dynamicObject.set("fbasedataid_id", dynamicObjects[0].getPkValue());
|
|
||||||
collection.add(dynamicObject);
|
|
||||||
|
|
||||||
fkDynamicObject.set("draftbill", collection);
|
|
||||||
fkDynamicObject.set("shkd_isrenotes", true);
|
|
||||||
|
|
||||||
// 写入票据关联付款单关联关系
|
|
||||||
DynamicObject kpLinkRow = new DynamicObject(releatedcasbillentrys.getDynamicObjectType());
|
|
||||||
|
|
||||||
kpLinkRow.set("rel_billtype", "cas_paybill");// 关联单据类型 → 付款处理
|
|
||||||
kpLinkRow.set("rel_billno", fkDynamicObject.getString("billno"));// 关联单据编号
|
|
||||||
kpLinkRow.set("rel_billid", fkDynamicObject.getPkValue());// 关联单据ID
|
|
||||||
kpLinkRow.set("rel_bizdate", fkDynamicObject.get("bizdate"));// 出纳单据业务日期
|
|
||||||
kpLinkRow.set("rel_billamount", fkDynamicObject.get("actpayamt"));// 关联单据金额
|
|
||||||
kpLinkRow.set("rel_createtime", new Date());// 关联信息创建时间
|
|
||||||
kpLinkRow.set("rel_modifytime", new Date());// 记录修改时间
|
|
||||||
|
|
||||||
releatedcasbillentrys.add(kpLinkRow);
|
|
||||||
|
|
||||||
dynamicObjects[0].set("releatedcasbillentrys", releatedcasbillentrys);
|
|
||||||
SaveServiceHelper.save(dynamicObjects);
|
|
||||||
|
|
||||||
// 最后保存付款单
|
|
||||||
SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject});
|
|
||||||
}
|
|
||||||
} else if ("JSFS09".equals(settletype_number)) {
|
|
||||||
|
|
||||||
// 收票登记:cdm_receivablebill
|
|
||||||
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("cdm_receivablebill", "id," +
|
|
||||||
"draftbillno,releatedcasbillentrys,releatedcasbillentrys.rel_billtype,releatedcasbillentrys.rel_billno," +
|
|
||||||
"releatedcasbillentrys.rel_billid,releatedcasbillentrys.rel_bizdate,releatedcasbillentrys.rel_billamount," +
|
|
||||||
"releatedcasbillentrys.rel_createtime,releatedcasbillentrys.rel_modifytime", new QFilter("draftbillno", QCP.equals, settletnumber).toArray());
|
|
||||||
|
|
||||||
if (dynamicObjects.length > 0) {
|
|
||||||
|
|
||||||
DynamicObjectCollection releatedcasbillentrys = dynamicObjects[0].getDynamicObjectCollection("releatedcasbillentrys");
|
|
||||||
|
|
||||||
if (!releatedcasbillentrys.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 写入付款单关联票据关联关系
|
|
||||||
|
|
||||||
MainEntityType entityType = EntityMetadataCache.getDataEntityType(fkDynamicObject.getDataEntityType().getName());
|
|
||||||
DynamicCollectionProperty currencyProp = (DynamicCollectionProperty) entityType.getProperty("draftbill");
|
|
||||||
DynamicObjectCollection collection = new DynamicObjectCollection(currencyProp.getDynamicCollectionItemPropertyType(), fkDynamicObject);
|
|
||||||
DynamicObject dynamicObject = new DynamicObject(currencyProp.getDynamicCollectionItemPropertyType());
|
|
||||||
dynamicObject.set("fbasedataid", dynamicObjects[0]);
|
|
||||||
dynamicObject.set("fbasedataid_id", dynamicObjects[0].getPkValue());
|
|
||||||
collection.add(dynamicObject);
|
|
||||||
|
|
||||||
fkDynamicObject.set("draftbill", collection);
|
|
||||||
fkDynamicObject.set("shkd_isrenotes", true);
|
|
||||||
|
|
||||||
// 写入票据关联付款单关联关系
|
|
||||||
DynamicObject kpLinkRow = new DynamicObject(releatedcasbillentrys.getDynamicObjectType());
|
|
||||||
|
|
||||||
kpLinkRow.set("rel_billtype", "cas_recbill");// 关联单据类型 → 收款处理
|
|
||||||
kpLinkRow.set("rel_billno", fkDynamicObject.getString("billno"));// 关联单据编号
|
|
||||||
kpLinkRow.set("rel_billid", fkDynamicObject.getPkValue());// 关联单据ID
|
|
||||||
kpLinkRow.set("rel_bizdate", fkDynamicObject.get("bizdate"));// 出纳单据业务日期
|
|
||||||
kpLinkRow.set("rel_billamount", fkDynamicObject.get("actpayamt"));// 关联单据金额
|
|
||||||
kpLinkRow.set("rel_createtime", new Date());// 关联信息创建时间
|
|
||||||
kpLinkRow.set("rel_modifytime", new Date());// 记录修改时间
|
|
||||||
|
|
||||||
releatedcasbillentrys.add(kpLinkRow);
|
|
||||||
|
|
||||||
dynamicObjects[0].set("releatedcasbillentrys", releatedcasbillentrys);
|
|
||||||
SaveServiceHelper.save(dynamicObjects);
|
|
||||||
|
|
||||||
// 最后保存付款单
|
|
||||||
SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject});
|
|
||||||
|
|
||||||
OperationResult result = OperationServiceHelper.executeOperate("endorse", "cas_paybill", new DynamicObject[]{fkDynamicObject}, OperateOption.create());
|
|
||||||
if (result.isSuccess()) {
|
if (result.isSuccess()) {
|
||||||
logger.info("背书成功");
|
logger.info("背书成功");
|
||||||
|
fkDynamicObject.set("billstatus", "D");
|
||||||
|
fkDynamicObject.set("shkd_xkbillstatus", "4");
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{fkDynamicObject});
|
||||||
} else {
|
} else {
|
||||||
logger.info("背书失败");
|
logger.info("背书失败");
|
||||||
}
|
}
|
||||||
|
} catch (Exception exception) {
|
||||||
|
logger.info("操作调用失败,失败信息:" + exception.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue