package fi.em.formPlugin; import com.alibaba.druid.util.StringUtils; import com.alibaba.dubbo.common.utils.CollectionUtils; import com.alibaba.fastjson.JSONObject; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.events.BeforeImportEntryEventArgs; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.plugin.AbstractFormPlugin; import kd.bos.form.plugin.importentry.resolving.ImportEntryData; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.user.UserServiceHelper; import java.util.*; public class BusinessProcessingSplitPlugin extends AbstractFormPlugin { @Override public void propertyChanged(PropertyChangedArgs e) { String fieldKey = e.getProperty().getName(); if (StringUtils.equals("nckd_basedatafield19", fieldKey)) { //获取变更的数据 ChangeData changeData = e.getChangeSet()[0]; DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue(); this.getModel().deleteEntryData("nckd_entryentity6112"); if (dynamicObject != null) { DynamicObject realCard = dynamicObject.getDynamicObject("realcard"); String number = realCard.getString("number"); QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number); DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter}); int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity6112"); this.getModel().setValue("nckd_combofield5", "拆分前", 0); if (dynamicObjects.length > 0) { this.getView().setVisible(false, "nckd_advconbaritemap61"); this.getView().setVisible(false, "nckd_advconbaritemap6"); this.getView().setVisible(true, "nckd_card"); this.getView().setEnable(false, "nckd_integerfield1"); this.getModel().setValue("nckd_integerfield1", dynamicObjects.length); }else { this.getView().setVisible(true, "nckd_advconbaritemap61"); this.getView().setVisible(true, "nckd_advconbaritemap6"); this.getView().setVisible(false, "nckd_card"); this.getView().setEnable(true, "nckd_integerfield1"); this.getModel().setValue("nckd_integerfield1", 0); } } } else if (StringUtils.equals("nckd_detailtype", fieldKey)) { //获取变更的数据 ChangeData changeData = e.getChangeSet()[0]; String nckd_detailtype = (String) changeData.getNewValue(); if (StringUtils.equals(nckd_detailtype, "E")) { //当前用户 Long currentUserId = UserServiceHelper.getCurrentUserId(); // 当前用户组织 Long id = RequestContext.get().getOrgId(); //调出组织 this.getModel().setValue("nckd_orgfield1", id); }else { this.getModel().setValue("nckd_orgfield1", null); } } } @Override public void beforeImportEntry(BeforeImportEntryEventArgs e) { Map source = (Map) e.getSource(); Set>> entries = source.entrySet(); for (Map.Entry> entry : entries) { String entryName = entry.getKey(); if (StringUtils.equals(entryName, "nckd_entryentity61121")) { List entryEntityImportDataList = entry.getValue(); if (CollectionUtils.isEmpty(entryEntityImportDataList)) { return; } DynamicObjectCollection nckd_entryentity61121s = this.getModel().getEntryEntity("nckd_entryentity61121"); Map entryMap = new HashMap<>(); for (DynamicObject dynamicObject : nckd_entryentity61121s) { entryMap.put(dynamicObject.getDynamicObject("nckd_basedatafield18").getString("number"), dynamicObject); } Iterator iterator = entryEntityImportDataList.iterator(); while (iterator.hasNext()) { ImportEntryData entryData = iterator.next(); JSONObject jsonObject = entryData.getData(); String importNumber = jsonObject.getJSONObject("nckd_basedatafield18").getString("number"); DynamicObject dynamicObject = entryMap.get(importNumber); if (dynamicObject != null){ nckd_entryentity61121s.remove(dynamicObject); } } } } } }