提交人:陈绍鑫

日期:2025/5/19 10:30
内容:理财收益明细表拓展字段插件
This commit is contained in:
陈绍鑫 2025-05-21 11:30:11 +08:00
parent 040c3ed886
commit 3102944a7d
1 changed files with 67 additions and 59 deletions

View File

@ -43,76 +43,84 @@ public class BankSaveOP extends AbstractOperationServicePlugIn {
super.beforeExecuteOperationTransaction(e); super.beforeExecuteOperationTransaction(e);
DynamicObject[] dataEntities = e.getDataEntities(); DynamicObject[] dataEntities = e.getDataEntities();
if("banksave".equals(e.getOperationKey()) ) { //按钮操作编码 try {
QFilter filter = new QFilter("billstatus", QCP.equals, "C"); if("banksave".equals(e.getOperationKey()) ) { //按钮操作编码
DynamicObject[] shkd_banksavekds = BusinessDataServiceHelper.load("shkd_banksavekd", "id,billno,shkd_filter,shkd_filter_tag", filter.toArray()); QFilter filter = new QFilter("billstatus", QCP.equals, "C");
QFilter qFilter =null; DynamicObject[] shkd_banksavekds = BusinessDataServiceHelper.load("shkd_banksavekd", "id,billno,shkd_filter,shkd_filter_tag", filter.toArray());
for (DynamicObject shkd_banksavekd : shkd_banksavekds) { QFilter qFilter =null;
String shkd_filter = shkd_banksavekd.getString("shkd_filter_tag"); for (DynamicObject shkd_banksavekd : shkd_banksavekds) {
FilterCondition filterCondition = null; String shkd_filter = shkd_banksavekd.getString("shkd_filter_tag");
if (!StringUtils.isEmpty(shkd_filter)) { FilterCondition filterCondition = null;
filterCondition = SerializationUtils.fromJsonString(shkd_filter, FilterCondition.class); if (!StringUtils.isEmpty(shkd_filter)) {
} filterCondition = SerializationUtils.fromJsonString(shkd_filter, FilterCondition.class);
if (filterCondition != null){
MainEntityType mainEntityType = EntityMetadataCache.getDataEntityType("bei_transdetail");
FilterBuilder filterBuilder = new FilterBuilder(mainEntityType, filterCondition);
filterBuilder.buildFilter();
QFilter qFilter1 = filterBuilder.getQFilter();
if (qFilter==null){
qFilter=qFilter1;
}else {
qFilter=qFilter.or(qFilter1);
} }
if (filterCondition != null){
MainEntityType mainEntityType = EntityMetadataCache.getDataEntityType("bei_transdetail");
FilterBuilder filterBuilder = new FilterBuilder(mainEntityType, filterCondition);
filterBuilder.buildFilter();
QFilter qFilter1 = filterBuilder.getQFilter();
if (qFilter==null){
qFilter=qFilter1;
}else {
qFilter=qFilter.or(qFilter1);
}
}
} }
} logger.info("进入banksavef方法");
logger.info("进入banksavef方法"); List<String> ids = Arrays.stream(dataEntities) // 将数组转换为 Stream
List<String> ids = Arrays.stream(dataEntities) // 将数组转换为 Stream .map(entity -> (String) entity.get("billno")) // 提取每个元素的 id
.map(entity -> (String) entity.get("billno")) // 提取每个元素的 id .collect(Collectors.toList()); // 收集到 List
.collect(Collectors.toList()); // 收集到 List logger.info("入参:"+ids.toString());
logger.info("入参:"+ids.toString()); if(dataEntities != null && dataEntities.length != 0) {
if(dataEntities != null && dataEntities.length != 0) {
for(int i = 0;i < dataEntities.length;i ++) { for(int i = 0;i < dataEntities.length;i ++) {
DynamicObject dynamicObject = dataEntities[i]; DynamicObject dynamicObject = dataEntities[i];
String description = dynamicObject.getString("description"); String description = dynamicObject.getString("description");
if (qFilter!=null){ if (qFilter!=null){
String sql = qFilter.toString(); String sql = qFilter.toString();
String replaced = sql.replace("description", "'"+description+"'"); String replaced = sql.replace("description", "'"+description+"'");
String selsql = " /*dialect*/ select 1 where "+replaced; String selsql = " /*dialect*/ select 1 where "+replaced;
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), selsql);//财务云 DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), selsql);//财务云
DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(res.copy()); DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(res.copy());
if (srcCollection.size()!=0){ if (srcCollection.size()!=0){
try { try {
dynamicObject.set("kdretflag", null); //数据赋值 dynamicObject.set("kdretflag", null); //数据赋值
} catch (Exception ex) { logger.info("单据编号"+dynamicObject.getString("billno")+"进入banksavef方法直接赋值成功");
logger.info("进入banksavef方法直接赋值失败"); } catch (Exception ex) {
logger.info("进入banksavef方法直接赋值失败");
}
} }
} }
} if(dynamicObject != null) {
if(dynamicObject != null) { //通过基础资料或单据标识 的id 获取数据
//通过基础资料或单据标识 的id 获取数据 QFilter newqFilter =new QFilter("billno", QCP.equals,dynamicObject.getString("billno"));
QFilter newqFilter =new QFilter("id", QCP.equals,dynamicObject.getPkValue()); if (qFilter!=null){
if (qFilter!=null){ qFilter=qFilter.and(newqFilter);
qFilter=qFilter.and(newqFilter); }else {
}else { qFilter=newqFilter;
qFilter=newqFilter; }
} DynamicObject bei_transdetail = BusinessDataServiceHelper.loadSingle("bei_transdetail", "id,billno,description,kdretflag", qFilter.toArray());
// qFilter.and(newqFilter); // DynamicObject bei_transdetail_cas = BusinessDataServiceHelper.loadSingle(dynamicObject.getDynamicObjectType().toString(), "id,billno,description,kdretflag", qFilter.toArray());
// DynamicObject bei_transdetail = BusinessDataServiceHelper.loadSingle(dynamicObject.getPkValue(), "bei_transdetail"); if(bei_transdetail != null ) {
DynamicObject bei_transdetail = BusinessDataServiceHelper.loadSingle("bei_transdetail", "id,billno,description,kdretflag", qFilter.toArray()); bei_transdetail.set("kdretflag", null); //数据赋值
if(bei_transdetail != null ) { // bei_transdetail_cas.set("kdretflag", null); //数据赋值
bei_transdetail.set("kdretflag", null); //数据赋值 SaveServiceHelper.save(new DynamicObject[] {bei_transdetail});
SaveServiceHelper.save(new DynamicObject[] {bei_transdetail}); // SaveServiceHelper.save(new DynamicObject[] {bei_transdetail_cas});
}else { logger.info("bei_transdetail"+dynamicObject.toString()+"赋值成功");
logger.info("dynamicObject"+dynamicObject.toString()+"未找到"); }else {
} logger.info("dynamicObject"+dynamicObject.toString()+"未找到");
}
}
dataEntities[i]=dynamicObject;
} }
dataEntities[i]=dynamicObject;
} }
} }
} catch (Exception ex) {
logger.error("banksave方法错误原因"+ex.getMessage());
throw new RuntimeException(ex);
} }
e.setDataEntities(dataEntities); e.setDataEntities(dataEntities);
} }