package fi.fa.opplugin; import com.alibaba.druid.util.StringUtils; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.args.BeginOperationTransactionArgs; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; //业务处理单 public class BusProcessBillOpPlugin extends AbstractOperationServicePlugIn { @Override public void beginOperationTransaction(BeginOperationTransactionArgs e) { DynamicObject[] dynamicObjects = e.getDataEntities(); for (int i = 0; i < dynamicObjects.length; i++) { if (StringUtils.equals(e.getOperationKey(),"audit")) { DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName()); if ("D".equals(info.getString("nckd_detailtype"))) { for (DynamicObject nckd_entryentity6 : info.getDynamicObjectCollection("nckd_entryentity6")) { String number = nckd_entryentity6.getDynamicObject("nckd_basedatafield").getString("number"); if (!StringUtils.isEmpty(number)) { //查询e管家实物卡片清单 QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number); DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter}); for (int j = 0; j < cardObjects.length; j++) { DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName()); //回写e管家实物清单字段 cardInfo.set("nckd_discard", "1");//是否报废 SaveServiceHelper.save(new DynamicObject[]{cardInfo}); } } } } //获取租赁合同分录 DynamicObjectCollection nckd_entryentity3 = info.getDynamicObjectCollection("nckd_entryentity3"); for (DynamicObject object : nckd_entryentity3) { long org = object.getDynamicObject("nckd_pzhtorg").getLong("id"); String nckd_pzhthth = object.getString("nckd_pzhthth"); String nckd_combofield = object.getString("nckd_combofield"); //查询租赁合同反写 QFilter htfilter = new QFilter("number", QCP.equals,nckd_pzhthth); htfilter.and("org.id", QCP.equals,org); DynamicObject[] contract = BusinessDataServiceHelper.load("fa_lease_contract","id",new QFilter[] {htfilter}); for (int j = 0; j < contract.length; j++) { DynamicObject contractInfo = BusinessDataServiceHelper.loadSingle(contract[j].getPkValue(), contract[j].getDynamicObjectType().getName()); //收款/付款计划明细分录 DynamicObjectCollection payplanentryentity = contractInfo.getDynamicObjectCollection("payplanentryentity"); for (DynamicObject detail : payplanentryentity) { detail.set("nckd_combofield1", nckd_combofield); } SaveServiceHelper.save(new DynamicObject[]{contractInfo}); } } } else if (StringUtils.equals(e.getOperationKey(),"unaudit")) { DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName()); if ("D".equals(info.getString("nckd_detailtype"))) { for (DynamicObject nckd_entryentity6 : info.getDynamicObjectCollection("nckd_entryentity6")) { String number = nckd_entryentity6.getDynamicObject("nckd_basedatafield").getString("number"); if (!StringUtils.isEmpty(number)) { //查询e管家实物卡片清单 QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number); DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter}); for (int j = 0; j < cardObjects.length; j++) { DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName()); //回写e管家实物清单字段 cardInfo.set("nckd_discard", "0");//是否报废 SaveServiceHelper.save(new DynamicObject[]{cardInfo}); } } } } //获取租赁合同分录 DynamicObjectCollection nckd_entryentity3 = info.getDynamicObjectCollection("nckd_entryentity3"); for (DynamicObject object : nckd_entryentity3) { long org = object.getDynamicObject("nckd_pzhtorg").getLong("id"); String nckd_pzhthth = object.getString("nckd_pzhthth"); //查询租赁合同反写 QFilter htfilter = new QFilter("number", QCP.equals,nckd_pzhthth); htfilter.and("org.id", QCP.equals,org); DynamicObject[] contract = BusinessDataServiceHelper.load("fa_lease_contract","id",new QFilter[] {htfilter}); for (int j = 0; j < contract.length; j++) { DynamicObject contractInfo = BusinessDataServiceHelper.loadSingle(contract[j].getPkValue(), contract[j].getDynamicObjectType().getName()); //收款/付款计划明细分录 DynamicObjectCollection payplanentryentity = contractInfo.getDynamicObjectCollection("payplanentryentity"); for (DynamicObject detail : payplanentryentity) { detail.set("nckd_combofield1", null); } SaveServiceHelper.save(new DynamicObject[]{contractInfo}); } } } else if (StringUtils.equals(e.getOperationKey(),"delete")) { DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName()); if ("D".equals(info.getString("nckd_detailtype"))) { String type = info.getString("nckd_source_type"); Long nckd_mid_assert = info.getLong("nckd_mid_assert"); if (!StringUtils.isEmpty(type)) { //查询e管家实物卡片清单 QFilter filter = new QFilter("id", QCP.equals,nckd_mid_assert); DynamicObject[] midObjects = BusinessDataServiceHelper.load(type,"id",new QFilter[] {filter}); for (int j = 0; j < midObjects.length; j++) { DynamicObject midInfo = BusinessDataServiceHelper.loadSingle(midObjects[j].getPkValue(), midObjects[j].getDynamicObjectType().getName()); //回写e管家实物清单字段 midInfo.set("nckd_flag", "0");//是否报废 SaveServiceHelper.save(new DynamicObject[]{midInfo}); } } } } } } }