parent
							
								
									63af6bca0d
								
							
						
					
					
						commit
						ab1165feb6
					
				| 
						 | 
				
			
			@ -39,7 +39,7 @@ public class banksavekdFormPlugin extends AbstractFormPlugin {
 | 
			
		|||
        filterGrid.setEntityNumber("bei_transdetail");
 | 
			
		||||
        List<String> keys = new ArrayList<>();
 | 
			
		||||
        keys.add("description");//编码,这个可以添加为过滤字段
 | 
			
		||||
        keys.add("billno");//商品标签,多选基础资料,无法添加为过滤字段
 | 
			
		||||
//        keys.add("billno");//商品标签,多选基础资料,无法添加为过滤字段
 | 
			
		||||
        filterGrid.setFilterFieldKeys(keys);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,27 @@
 | 
			
		|||
package shkd.sys.sys.plugin.operation;
 | 
			
		||||
 | 
			
		||||
import com.alibaba.druid.util.StringUtils;
 | 
			
		||||
import kd.bos.algo.DataSet;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.dataentity.serialization.SerializationUtils;
 | 
			
		||||
import kd.bos.db.DB;
 | 
			
		||||
import kd.bos.db.DBRoute;
 | 
			
		||||
import kd.bos.entity.EntityMetadataCache;
 | 
			
		||||
import kd.bos.entity.ExtendedDataEntity;
 | 
			
		||||
import kd.bos.entity.MainEntityType;
 | 
			
		||||
import kd.bos.entity.filter.FilterBuilder;
 | 
			
		||||
import kd.bos.entity.filter.FilterCondition;
 | 
			
		||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
 | 
			
		||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
 | 
			
		||||
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.ORM;
 | 
			
		||||
import kd.bos.orm.query.QCP;
 | 
			
		||||
import kd.bos.orm.query.QContext;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
 | 
			
		||||
import shkd.sys.sys.plugin.report.FinanceReportPlugin;
 | 
			
		||||
| 
						 | 
				
			
			@ -29,8 +43,29 @@ public class BankSaveOP extends AbstractOperationServicePlugIn {
 | 
			
		|||
        super.beforeExecuteOperationTransaction(e);
 | 
			
		||||
        DynamicObject[] dataEntities = e.getDataEntities();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if("banksave".equals(e.getOperationKey()) ) {   //按钮操作编码
 | 
			
		||||
            QFilter filter = new QFilter("billstatus", QCP.equals, "C");
 | 
			
		||||
            DynamicObject[] shkd_banksavekds = BusinessDataServiceHelper.load("shkd_banksavekd", "id,billno,shkd_filter,shkd_filter_tag", filter.toArray());
 | 
			
		||||
            QFilter qFilter =null;
 | 
			
		||||
            for (DynamicObject shkd_banksavekd : shkd_banksavekds) {
 | 
			
		||||
                String shkd_filter = shkd_banksavekd.getString("shkd_filter_tag");
 | 
			
		||||
                FilterCondition filterCondition = null;
 | 
			
		||||
                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.or(qFilter1);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            logger.info("进入banksavef方法");
 | 
			
		||||
            List<String> ids = Arrays.stream(dataEntities)   // 将数组转换为 Stream
 | 
			
		||||
                    .map(entity -> (String) entity.get("billno"))  // 提取每个元素的 id
 | 
			
		||||
| 
						 | 
				
			
			@ -41,21 +76,31 @@ public class BankSaveOP extends AbstractOperationServicePlugIn {
 | 
			
		|||
                for(int i = 0;i < dataEntities.length;i ++) {
 | 
			
		||||
 | 
			
		||||
                    DynamicObject dynamicObject = dataEntities[i];
 | 
			
		||||
                    try {
 | 
			
		||||
                        dynamicObject.set("kdretflag", null);  //数据赋值
 | 
			
		||||
                    } catch (Exception ex) {
 | 
			
		||||
                        logger.info("进入banksavef方法赋值失败");
 | 
			
		||||
                    String description = dynamicObject.getString("description");
 | 
			
		||||
                    String sql = qFilter.toString();
 | 
			
		||||
                    String replaced = sql.replace("description", "'"+description+"'");
 | 
			
		||||
                    String selsql = "select 1 where "+replaced;
 | 
			
		||||
                    DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), selsql);//财务云
 | 
			
		||||
                    DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(res.copy());
 | 
			
		||||
                    if (srcCollection.size()!=0){
 | 
			
		||||
                        try {
 | 
			
		||||
                            dynamicObject.set("kdretflag", null);  //数据赋值
 | 
			
		||||
                        } catch (Exception ex) {
 | 
			
		||||
                            logger.info("进入banksavef方法直接赋值失败");
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    if(dynamicObject != null) {
 | 
			
		||||
                        //通过基础资料或单据标识 的id 获取数据
 | 
			
		||||
                        DynamicObject bei_transdetail = BusinessDataServiceHelper.loadSingle(dynamicObject.getPkValue(), "bei_transdetail");
 | 
			
		||||
 | 
			
		||||
                        QFilter newqFilter =new QFilter("id", QCP.equals,dynamicObject.getPkValue());
 | 
			
		||||
                        qFilter.and(newqFilter);
 | 
			
		||||
//                        DynamicObject bei_transdetail = BusinessDataServiceHelper.loadSingle(dynamicObject.getPkValue(), "bei_transdetail");
 | 
			
		||||
                        DynamicObject bei_transdetail = BusinessDataServiceHelper.loadSingle("bei_transdetail", "id,billno,description,kdretflag", qFilter.toArray());
 | 
			
		||||
                        if(bei_transdetail != null ) {
 | 
			
		||||
                            bei_transdetail.set("kdretflag", null);  //数据赋值
 | 
			
		||||
                            SaveServiceHelper.save(new DynamicObject[] {bei_transdetail});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                        }else {
 | 
			
		||||
                            logger.info("dynamicObject:"+dynamicObject.toString()+"未找到");
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue