提交人:陈绍鑫

日期:2025/5/22 10:30
内容:交易明细保存操作日志添加
This commit is contained in:
陈绍鑫 2025-05-22 09:48:33 +08:00
parent f07e70cca8
commit b6a9815e00
1 changed files with 42 additions and 44 deletions

View File

@ -8,7 +8,6 @@ import kd.bos.dataentity.serialization.SerializationUtils;
import kd.bos.db.DB; import kd.bos.db.DB;
import kd.bos.db.DBRoute; import kd.bos.db.DBRoute;
import kd.bos.entity.EntityMetadataCache; import kd.bos.entity.EntityMetadataCache;
import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.MainEntityType; import kd.bos.entity.MainEntityType;
import kd.bos.entity.filter.FilterBuilder; import kd.bos.entity.filter.FilterBuilder;
import kd.bos.entity.filter.FilterCondition; import kd.bos.entity.filter.FilterCondition;
@ -20,11 +19,9 @@ import kd.bos.logging.Log;
import kd.bos.logging.LogFactory; import kd.bos.logging.LogFactory;
import kd.bos.orm.ORM; import kd.bos.orm.ORM;
import kd.bos.orm.query.QCP; import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QContext;
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.SaveServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper;
import shkd.sys.sys.plugin.report.FinanceReportPlugin;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@ -44,25 +41,25 @@ public class BankSaveOP extends AbstractOperationServicePlugIn {
DynamicObject[] dataEntities = e.getDataEntities(); DynamicObject[] dataEntities = e.getDataEntities();
try { try {
if("banksave".equals(e.getOperationKey()) ) { //按钮操作编码 if ("banksave".equals(e.getOperationKey())) { //按钮操作编码
QFilter filter = new QFilter("billstatus", QCP.equals, "C"); QFilter filter = new QFilter("billstatus", QCP.equals, "C");
DynamicObject[] shkd_banksavekds = BusinessDataServiceHelper.load("shkd_banksavekd", "id,billno,shkd_filter,shkd_filter_tag", filter.toArray()); DynamicObject[] shkd_banksavekds = BusinessDataServiceHelper.load("shkd_banksavekd", "id,billno,shkd_filter,shkd_filter_tag", filter.toArray());
QFilter qFilter =null; QFilter qFilter = null;
for (DynamicObject shkd_banksavekd : shkd_banksavekds) { for (DynamicObject shkd_banksavekd : shkd_banksavekds) {
String shkd_filter = shkd_banksavekd.getString("shkd_filter_tag"); String shkd_filter = shkd_banksavekd.getString("shkd_filter_tag");
FilterCondition filterCondition = null; FilterCondition filterCondition = null;
if (!StringUtils.isEmpty(shkd_filter)) { if (!StringUtils.isEmpty(shkd_filter)) {
filterCondition = SerializationUtils.fromJsonString(shkd_filter, FilterCondition.class); filterCondition = SerializationUtils.fromJsonString(shkd_filter, FilterCondition.class);
} }
if (filterCondition != null){ if (filterCondition != null) {
MainEntityType mainEntityType = EntityMetadataCache.getDataEntityType("bei_transdetail"); MainEntityType mainEntityType = EntityMetadataCache.getDataEntityType("bei_transdetail");
FilterBuilder filterBuilder = new FilterBuilder(mainEntityType, filterCondition); FilterBuilder filterBuilder = new FilterBuilder(mainEntityType, filterCondition);
filterBuilder.buildFilter(); filterBuilder.buildFilter();
QFilter qFilter1 = filterBuilder.getQFilter(); QFilter qFilter1 = filterBuilder.getQFilter();
if (qFilter==null){ if (qFilter == null) {
qFilter=qFilter1; qFilter = qFilter1;
}else { } else {
qFilter=qFilter.or(qFilter1); qFilter = qFilter.or(qFilter1);
} }
} }
@ -71,63 +68,64 @@ public class BankSaveOP extends AbstractOperationServicePlugIn {
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);
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"); try {
if (qFilter!=null){ String description = dynamicObject.getString("description");
String sql = qFilter.toString(); if (qFilter != null) {
String replaced = sql.replace("description", "'"+description+"'"); String sql = qFilter.toString();
String selsql = " /*dialect*/ select 1 where "+replaced; String replaced = sql.replace("description", "'" + description + "'");
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), selsql);//财务云 String selsql = " /*dialect*/ select 1 where " + replaced;
DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(res.copy()); DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), selsql);//财务云
if (srcCollection.size()!=0){ DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(res.copy());
try { if (srcCollection.size() != 0) {
dynamicObject.set("kdretflag", null); //数据赋值 dynamicObject.set("kdretflag", null); //数据赋值
logger.info("单据编号"+dynamicObject.getString("billno")+"进入banksavef方法直接赋值成功"); logger.info("单据编号" + dynamicObject.getString("billno") + "进入banksavef方法直接赋值成功");
} catch (Exception ex) {
logger.info("进入banksavef方法直接赋值失败");
} }
} }
} catch (Exception ex) {
logger.info("单据编号" + dynamicObject.getString("billno") + "进入banksavef方法直接赋值失败");
} }
if(dynamicObject != null) {
if (dynamicObject != null) {
//通过基础资料或单据标识 的id 获取数据 //通过基础资料或单据标识 的id 获取数据
QFilter newqFilter =new QFilter("billno", QCP.equals,dynamicObject.getString("billno")); QFilter newqFilter = new QFilter("billno", QCP.equals, dynamicObject.getString("billno"));
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle("bei_transdetail", "id,billno,description,kdretflag", newqFilter.toArray()); DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle("bei_transdetail", "id,billno,description,kdretflag", newqFilter.toArray());
if (dynamicObject1!=null){ if (dynamicObject1 != null) {
logger.info("已找到单据编号:"+dynamicObject.getString("billno")+"对应的交易明细"); logger.info("已找到单据编号:" + dynamicObject.getString("billno") + "对应的交易明细");
}else { } else {
logger.info("未找到单据编号:"+dynamicObject.getString("billno")+"对应的交易明细"); logger.info("未找到单据编号:" + dynamicObject.getString("billno") + "对应的交易明细");
} }
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()); DynamicObject bei_transdetail = BusinessDataServiceHelper.loadSingle("bei_transdetail", "id,billno,description,kdretflag", qFilter.toArray());
DynamicObject bei_transdetail_cas = BusinessDataServiceHelper.loadSingle(dynamicObject.getDynamicObjectType().toString(), "id,billno,description,kdretflag", qFilter.toArray()); DynamicObject bei_transdetail_cas = BusinessDataServiceHelper.loadSingle(dynamicObject.getDynamicObjectType().toString(), "id,billno,description,kdretflag", qFilter.toArray());
if(bei_transdetail != null ) { if (bei_transdetail != null) {
bei_transdetail.set("kdretflag", null); //数据赋值 bei_transdetail.set("kdretflag", null); //数据赋值
SaveServiceHelper.save(new DynamicObject[] {bei_transdetail}); SaveServiceHelper.save(new DynamicObject[]{bei_transdetail});
logger.info("bei_transdetail"+dynamicObject.toString()+"赋值成功"); logger.info("bei_transdetail" + dynamicObject + "赋值成功");
}else { } else {
logger.info("dynamicObject"+dynamicObject.toString()+"未找到"); logger.info("dynamicObject" + dynamicObject + "未找到");
} }
if (bei_transdetail_cas!=null){ if (bei_transdetail_cas != null) {
bei_transdetail_cas.set("kdretflag", null); //数据赋值 bei_transdetail_cas.set("kdretflag", null); //数据赋值
SaveServiceHelper.save(new DynamicObject[] {bei_transdetail_cas}); SaveServiceHelper.save(new DynamicObject[]{bei_transdetail_cas});
} }
} }
dataEntities[i]=dynamicObject; dataEntities[i] = dynamicObject;
} }
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
logger.error("banksave方法错误原因"+ex.getMessage()); logger.error("banksave方法错误原因" + ex.getMessage());
throw new RuntimeException(ex); throw new RuntimeException(ex);
} }
e.setDataEntities(dataEntities); e.setDataEntities(dataEntities);