提交人:陈绍鑫

日期:2025/7/10 17:00
内容:银行账户报表开发
This commit is contained in:
陈绍鑫 2025-07-11 16:49:03 +08:00
parent dcb862d3c7
commit 9dccfbc335
2 changed files with 48 additions and 9 deletions

View File

@ -1,5 +1,6 @@
package shkd.sys.sys.plugin.operation; package shkd.sys.sys.plugin.operation;
import dm.jdbc.util.StringUtil;
import kd.bos.algo.DataSet; import kd.bos.algo.DataSet;
import kd.bos.algo.Row; import kd.bos.algo.Row;
import kd.bos.dataentity.OperateOption; import kd.bos.dataentity.OperateOption;
@ -113,12 +114,14 @@ public class DrafttradebillOP extends AbstractOperationServicePlugIn {
if (operationResult.getAllErrorInfo().size()!=0) { if (operationResult.getAllErrorInfo().size()!=0) {
logger.info("单据编号:"+cdm_payablebill.getString("billno")+"后台生单失败,原因:"+operationResult.getAllErrorInfo().get(0).getMessage()); logger.info("单据编号:"+cdm_payablebill.getString("billno")+"后台生单失败,原因:"+operationResult.getAllErrorInfo().get(0).getMessage());
String targetpkvalue = operationResult.getAllErrorInfo().get(0).getErrorCustInfos().get("targetpkvalue"); String targetpkvalue = operationResult.getAllErrorInfo().get(0).getErrorCustInfos().get("targetpkvalue");
DynamicObject cdm_drafttradebill = BusinessDataServiceHelper.loadSingle(targetpkvalue, "cdm_drafttradebill"); if (!StringUtil.isEmpty(targetpkvalue)){
OperationResult delete = OperationServiceHelper.executeOperate("delete", "cdm_drafttradebill", new DynamicObject[]{cdm_drafttradebill}, OperateOption.create()); DynamicObject cdm_drafttradebill = BusinessDataServiceHelper.loadSingle(targetpkvalue, "cdm_drafttradebill");
if (delete.isSuccess()==true){ OperationResult delete = OperationServiceHelper.executeOperate("delete", "cdm_drafttradebill", new DynamicObject[]{cdm_drafttradebill}, OperateOption.create());
logger.info("删除单据编号:"+cdm_payablebill.getString("billno")+"成功"); if (delete.isSuccess()==true){
}else { logger.info("删除单据编号:"+cdm_payablebill.getString("billno")+"成功");
logger.info("删除单据编号:"+cdm_payablebill.getString("billno")+"失败,原因:"+delete.getMessage()); }else {
logger.info("删除单据编号:"+cdm_payablebill.getString("billno")+"失败,原因:"+delete.getMessage());
}
} }
}else { }else {
// logger.info("单据编号:"+cdm_payablebill.getString("billno")+"后台生单成功"); // logger.info("单据编号:"+cdm_payablebill.getString("billno")+"后台生单成功");

View File

@ -5,6 +5,7 @@
package shkd.sys.sys.plugin.other; package shkd.sys.sys.plugin.other;
import kd.bos.dataentity.metadata.dynamicobject.DynamicProperty;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -25,9 +26,11 @@ import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn; import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
import kd.bos.entity.botp.plugin.args.AfterBuildQueryParemeterEventArgs; import kd.bos.entity.botp.plugin.args.AfterBuildQueryParemeterEventArgs;
import kd.bos.entity.botp.plugin.args.AfterFieldMappingEventArgs; import kd.bos.entity.botp.plugin.args.AfterFieldMappingEventArgs;
import kd.bos.entity.botp.runtime.ConvertConst;
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.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.tmc.cdm.common.enums.DraftTradeTypeEnum; import kd.tmc.cdm.common.enums.DraftTradeTypeEnum;
import kd.tmc.cdm.common.enums.SettleMentTypeEnum; import kd.tmc.cdm.common.enums.SettleMentTypeEnum;
import kd.tmc.cdm.common.helper.TradeBillAmountHelper; import kd.tmc.cdm.common.helper.TradeBillAmountHelper;
@ -47,6 +50,7 @@ public class newDraftBillToTradeBillConvertPlugin extends AbstractConvertPlugIn
public void afterFieldMapping(AfterFieldMappingEventArgs e) { public void afterFieldMapping(AfterFieldMappingEventArgs e) {
super.afterFieldMapping(e); super.afterFieldMapping(e);
Map<String, DynamicProperty> fldProperties = e.getFldProperties();
String tradeType = this.getOption().getVariableValue("tradeType"); String tradeType = this.getOption().getVariableValue("tradeType");
boolean isFromAuto = this.getOption().containsVariable("isfromauto"); boolean isFromAuto = this.getOption().containsVariable("isfromauto");
logger.info("tradeType is:" + tradeType + ",isFromAuto:" + isFromAuto); logger.info("tradeType is:" + tradeType + ",isFromAuto:" + isFromAuto);
@ -62,18 +66,26 @@ public class newDraftBillToTradeBillConvertPlugin extends AbstractConvertPlugIn
DynamicObject billType = TmcDataServiceHelper.loadSingle(DraftTradeTypeEnum.getType(tradeType), "bos_billtype"); DynamicObject billType = TmcDataServiceHelper.loadSingle(DraftTradeTypeEnum.getType(tradeType), "bos_billtype");
targetBill.set("billtype", billType); targetBill.set("billtype", billType);
String remarks = null; String remarks = null;
Long draftbilltype = (Long) this.getSourceData(billDataEntity, fldProperties, "draftbilltype");
DynamicObject cdm_billtype = BusinessDataServiceHelper.loadSingle(draftbilltype, "cdm_billtype");
String settlementtype = cdm_billtype.getString("settlementtype");
boolean isproofofcredit = cdm_billtype.getBoolean("isproofofcredit");
try { try {
remarks = this.getOption().getVariableValue("remarks"); remarks = this.getOption().getVariableValue("remarks");
} catch (Exception ex) { } catch (Exception ex) {
targetBill.set("payeetypetext", "bd_supplier"); targetBill.set("payeetypetext", "bd_supplier");
targetBill.set("payeetype", "bd_supplier"); targetBill.set("payeetype", "bd_supplier");
targetBill.set("beendorsor", (Object)null); targetBill.set("beendorsor", (Object) null);
} }
if ("后台下推".equals(remarks)){ if ("后台下推".equals(remarks)) {
if ("5".equals(settlementtype) && isproofofcredit) {
targetBill.set("payeetypetext", "other");
targetBill.set("payeetype", (Object) null);
}
}else { }else {
targetBill.set("payeetypetext", "bd_supplier"); targetBill.set("payeetypetext", "bd_supplier");
targetBill.set("payeetype", "bd_supplier"); targetBill.set("payeetype", "bd_supplier");
targetBill.set("beendorsor", (Object)null); targetBill.set("beendorsor", (Object) null);
} }
this.initFeilds(targetBill); this.initFeilds(targetBill);
TradeBillAmountHelper.calcTradeBillAmount(targetBill); TradeBillAmountHelper.calcTradeBillAmount(targetBill);
@ -321,4 +333,28 @@ public class newDraftBillToTradeBillConvertPlugin extends AbstractConvertPlugIn
private void calcDeInterestAmountAllEntry(DynamicObject targetBill) { private void calcDeInterestAmountAllEntry(DynamicObject targetBill) {
} }
/**
* 获取源单字段数据
*
* @param billEntity 源单数据包
* @param fldProperties 源单字段
* @param name 字段标识
* @return
*/
private Object getSourceData(ExtendedDataEntity billEntity, Map<String, DynamicProperty> fldProperties, String name) {
List<DynamicObject> sourceRows = (List<DynamicObject>) billEntity.getValue(ConvertConst.ConvExtDataKey_SourceRows);
if (sourceRows == null || sourceRows.isEmpty()) {
logger.warn("未获取到源单行数据,跳过处理。");
return null;
}
DynamicObject srcRow = sourceRows.get(0);
// 获取源单 ID
DynamicProperty idProperty = fldProperties.get(name);
if (idProperty == null) {
logger.warn("未获取到源单 ID 属性,跳过处理。");
return null;
}
return idProperty.getValue(srcRow);
}
} }