设备调令单表单插件逻辑优化:设备管理组织赋值逻辑和设备编码选择逻辑添加
This commit is contained in:
parent
475fc5965c
commit
29aecef694
|
@ -3,6 +3,7 @@ package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||||
import kd.bos.bill.AbstractBillPlugIn;
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||||
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||||
import kd.bos.entity.datamodel.events.ChangeData;
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
@ -10,6 +11,8 @@ import kd.bos.form.CloseCallBack;
|
||||||
import kd.bos.form.ShowFormHelper;
|
import kd.bos.form.ShowFormHelper;
|
||||||
import kd.bos.form.events.ClosedCallBackEvent;
|
import kd.bos.form.events.ClosedCallBackEvent;
|
||||||
import kd.bos.form.field.BasedataEdit;
|
import kd.bos.form.field.BasedataEdit;
|
||||||
|
import kd.bos.form.field.events.AfterF7SelectEvent;
|
||||||
|
import kd.bos.form.field.events.AfterF7SelectListener;
|
||||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||||
import kd.bos.isc.util.misc.StringUtil;
|
import kd.bos.isc.util.misc.StringUtil;
|
||||||
|
@ -27,14 +30,15 @@ import java.util.List;
|
||||||
/*
|
/*
|
||||||
* 设备调令单表单插件
|
* 设备调令单表单插件
|
||||||
* 说明:1:设备编码带出资产编码;2:过滤设备编码字段;3:调出调入项目带出调出调入负责人;4:自动带出所属组织和部门
|
* 说明:1:设备编码带出资产编码;2:过滤设备编码字段;3:调出调入项目带出调出调入负责人;4:自动带出所属组织和部门
|
||||||
* 5:调入调出组织过滤逻辑
|
* 5:调入调出组织过滤逻辑;6:设备管理组织赋值逻辑和设备编码选择逻辑
|
||||||
*/
|
*/
|
||||||
public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener, AfterF7SelectListener {
|
||||||
@Override
|
@Override
|
||||||
public void registerListener(EventObject e) {
|
public void registerListener(EventObject e) {
|
||||||
super.registerListener(e);
|
super.registerListener(e);
|
||||||
BasedataEdit realCard = this.getControl("zcgj_realcard"); //设备编码
|
BasedataEdit realCard = this.getControl("zcgj_realcard"); //设备编码
|
||||||
realCard.addBeforeF7SelectListener(this);
|
realCard.addBeforeF7SelectListener(this);
|
||||||
|
realCard.addAfterF7SelectListener(this);
|
||||||
BasedataEdit outProject = this.getControl("zcgj_outproject"); //调出项目
|
BasedataEdit outProject = this.getControl("zcgj_outproject"); //调出项目
|
||||||
outProject.addBeforeF7SelectListener(this);
|
outProject.addBeforeF7SelectListener(this);
|
||||||
BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目
|
BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目
|
||||||
|
@ -49,6 +53,89 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
|
||||||
zcgj_inorg.addBeforeF7SelectListener(this);
|
zcgj_inorg.addBeforeF7SelectListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) {
|
||||||
|
ListSelectedRowCollection listSelectedRowCollection = afterF7SelectEvent.getListSelectedRowCollection();
|
||||||
|
DynamicObjectCollection dispatchEntryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_dispatchentry");//设备调令单分录
|
||||||
|
|
||||||
|
// 收集当前选择的设备的组织ID
|
||||||
|
List<Long> selectedOrgIds = new ArrayList<>();
|
||||||
|
for (int i = 0; i < listSelectedRowCollection.size(); i++) {
|
||||||
|
ListSelectedRow listSelectedRow = listSelectedRowCollection.get(i);
|
||||||
|
QFilter[] qFilters = new QFilter[]{new QFilter("id", QCP.equals, listSelectedRow.getPrimaryKeyValue())};
|
||||||
|
DynamicObject eceq_equipment_info = BusinessDataServiceHelper.loadSingle("eceq_equipment_info", "org", qFilters);//设备台账F7
|
||||||
|
if (eceq_equipment_info != null) {
|
||||||
|
DynamicObject org = eceq_equipment_info.getDynamicObject("org");//设备台账F7-管理组织
|
||||||
|
if (org != null) {
|
||||||
|
Long orgId = (Long) org.getPkValue();
|
||||||
|
if (!selectedOrgIds.contains(orgId)) {
|
||||||
|
selectedOrgIds.add(orgId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查现有分录中的设备组织
|
||||||
|
List<Long> existingOrgIds = new ArrayList<>();
|
||||||
|
for (int i = 0; i < dispatchEntryCollection.size(); i++) {
|
||||||
|
DynamicObject dispatchEntry = dispatchEntryCollection.get(i);
|
||||||
|
DynamicObject realCard = dispatchEntry.getDynamicObject("zcgj_realcard");//分录-设备编码
|
||||||
|
if (realCard != null) {
|
||||||
|
QFilter[] qFilters = new QFilter[]{new QFilter("id", QCP.equals, realCard.getPkValue())};
|
||||||
|
DynamicObject eceq_equipment_info = BusinessDataServiceHelper.loadSingle("eceq_equipment_info", "org", qFilters);//设备台账F7
|
||||||
|
if (eceq_equipment_info != null) {
|
||||||
|
DynamicObject org = eceq_equipment_info.getDynamicObject("org");//设备台账F7-管理组织
|
||||||
|
if (org != null) {
|
||||||
|
Long orgId = (Long) org.getPkValue();
|
||||||
|
if (!existingOrgIds.contains(orgId)) {
|
||||||
|
existingOrgIds.add(orgId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 合并所有组织ID
|
||||||
|
List<Long> allOrgIds = new ArrayList<>();
|
||||||
|
allOrgIds.addAll(selectedOrgIds);
|
||||||
|
for (Long orgId : existingOrgIds) {
|
||||||
|
if (!allOrgIds.contains(orgId)) {
|
||||||
|
allOrgIds.add(orgId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果存在多个不同组织
|
||||||
|
if (allOrgIds.size() > 1) {
|
||||||
|
// 删除当前新增的行(即刚选择的设备对应的行)
|
||||||
|
// 从后往前删除,避免索引变化问题
|
||||||
|
for (int i = dispatchEntryCollection.size() - 1; i >= 0; i--) {
|
||||||
|
DynamicObject dispatchEntry = dispatchEntryCollection.get(i);
|
||||||
|
DynamicObject realCard = dispatchEntry.getDynamicObject("zcgj_realcard");//分录-设备编码
|
||||||
|
if (realCard != null) {
|
||||||
|
// 检查这个设备是否是当前选择的设备
|
||||||
|
boolean isCurrentSelected = false;
|
||||||
|
for (ListSelectedRow selectedRow : listSelectedRowCollection) {
|
||||||
|
if (realCard.getPkValue().equals(selectedRow.getPrimaryKeyValue())) {
|
||||||
|
isCurrentSelected = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果是当前选择的设备,则删除该行
|
||||||
|
if (isCurrentSelected) {
|
||||||
|
this.getModel().deleteEntryRow("zcgj_dispatchentry", i);//删除分录
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.getView().updateView("zcgj_dispatchentry"); // 刷新分录
|
||||||
|
this.getView().showErrorNotification("选择的设备属于不同组织,请重新选择同一组织下的设备!");
|
||||||
|
BasedataEdit fieldEdit = this.getView().getControl("zcgj_realcard");//设备编码
|
||||||
|
fieldEdit.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterCreateNewData(EventObject e) {
|
public void afterCreateNewData(EventObject e) {
|
||||||
super.afterCreateNewData(e);
|
super.afterCreateNewData(e);
|
||||||
|
@ -80,6 +167,16 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
|
||||||
} else {
|
} else {
|
||||||
this.getModel().setValue("zcgj_realcardsw", null, rowIndex);//资产编码
|
this.getModel().setValue("zcgj_realcardsw", null, rowIndex);//资产编码
|
||||||
}
|
}
|
||||||
|
DynamicObjectCollection dispatchEntryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_dispatchentry");//分录
|
||||||
|
if (dispatchEntryCollection != null && dispatchEntryCollection.size() > 0) {
|
||||||
|
DynamicObject dispatchEntry = dispatchEntryCollection.get(0);
|
||||||
|
DynamicObject zcgj_realcard = dispatchEntry.getDynamicObject("zcgj_realcard");//分录-设备编码
|
||||||
|
if (zcgj_realcard != null) {
|
||||||
|
this.getModel().setValue("zcgj_devicemanager", zcgj_realcard.getDynamicObject("org"));//设备管理组织
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.getModel().setValue("zcgj_devicemanager", null);//设备管理组织
|
||||||
|
}
|
||||||
} else if (StringUtil.equals(key, "zcgj_outorg") || StringUtil.equals(key, "zcgj_inorg")) {
|
} else if (StringUtil.equals(key, "zcgj_outorg") || StringUtil.equals(key, "zcgj_inorg")) {
|
||||||
//调出组织,调入组织
|
//调出组织,调入组织
|
||||||
ChangeData[] changeSet = e.getChangeSet();
|
ChangeData[] changeSet = e.getChangeSet();
|
||||||
|
|
Loading…
Reference in New Issue