Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
zhangzhiguo 2025-07-16 17:46:51 +08:00
commit 7e704c2a70
1 changed files with 110 additions and 19 deletions

View File

@ -4,6 +4,8 @@ import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.bill.BillShowParameter;
import kd.bos.bill.OperationStatus;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.metadata.IDataEntityProperty;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.IClientViewProxy;
@ -15,8 +17,10 @@ import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.list.ListShowParameter;
import kd.bos.mvc.form.ClientViewProxy;
import kd.bos.org.utils.OrgTreeUtils;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.sdk.plugin.Plugin;
@ -33,11 +37,21 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
BasedataEdit Value = this.getView().getControl("zcgj_department");//部门
Value.addBeforeF7SelectListener(this);
BasedataEdit zcgj_department = this.getView().getControl("zcgj_department");//部门
zcgj_department.addBeforeF7SelectListener(this);
BasedataEdit zcgj_org = this.getView().getControl("zcgj_org");//所属组织
zcgj_org.addBeforeF7SelectListener(this);
AttachmentPanel panel = getControl("attachmentpanel");//附件
panel.addOperaClickListener(this);
;
}
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
if (costDept != null) {
setOrg(costDept);
}
}
@Override
@ -56,9 +70,33 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta
}
}
@Override
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
super.afterDoOperation(afterDoOperationEventArgs);
setAttFileVisble();
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
if (e.getProperty().getName().equals("attachmentpanel")) {
setAttFileVisble();
} else if (e.getProperty().getName().equals("zcgj_department")) {
//部门
DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
if (costDept != null) {
setOrg(costDept);
}
}
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
IDataEntityProperty property = beforeF7SelectEvent.getProperty();//过滤字段信息
String propertyName = property.getName();//过滤字段标识
if (propertyName.equals("zcgj_department")) {
// 部门
DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人
if (creator == null) {
return;
@ -68,24 +106,30 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta
qFilter.add(new QFilter("id", QCP.in, id));
formShowParameter.getListFilterParameter().setQFilters(qFilter);
formShowParameter.setCustomParam("isIncludeAllSub", "true");
} else if (propertyName.equals("zcgj_org")) {
// 所属组织
DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
DynamicObject zcgj_org = (DynamicObject) this.getModel().getValue("zcgj_org");//所属组织
if (costDept != null && zcgj_org != null) {
DynamicObject orgPattern = costDept.getDynamicObject("orgpattern");
if (orgPattern == null) {
return;
}
String orgPatternNumber = orgPattern.getString("number");
if (orgPatternNumber.equals("Orgform06")) {
Long id = (Long) zcgj_org.get("id");
List<QFilter> qFilter = new ArrayList<>();
qFilter.add(new QFilter("id", QCP.in, id));
formShowParameter.getListFilterParameter().setQFilters(qFilter);
// formShowParameter.setCustomParam(OrgTreeUtils.PARAM_INIT_ROOT_ORG_ID, id);
formShowParameter.setCustomParam("isIncludeAllSub", "true");
}
@Override
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
setAttFileVisble();
super.afterDoOperation(afterDoOperationEventArgs);
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
if (e.getProperty().getName().equals("attachmentpanel")) {
setAttFileVisble();
}
}
private void setAttFileVisble() {
String billstatus = String.valueOf(this.getModel().getValue("status"));
String billstatus = String.valueOf(this.getModel().getValue("billstatus"));
if (!billstatus.equals("A")) {
AttachmentPanel attachmentPanel = this.getControl("attachmentpanel");
List<Map<String, Object>> attachmentData = attachmentPanel.getAttachmentData();
@ -107,4 +151,51 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta
cvp.setFieldProperty("attachmentpanel", "v", attachmentDatas);
}
}
private void setOrg(DynamicObject costDept) {
DynamicObject orgPattern = costDept.getDynamicObject("orgpattern");
if (orgPattern == null) {
return;
}
String orgPatternNumber = orgPattern.getString("number");
if (!orgPatternNumber.equals("Orgform06")) {
//填写的部门的形态不是部门时直接将部门值赋值给所属组织
this.getModel().setValue("zcgj_org", costDept);//所属组织
return;
}
int a = 0;
DynamicObject cost;
DynamicObject viewParent = null;
while (true) {
if (a == 0) {
//第一次进入循环
cost = costDept;
} else {
QFilter[] qFilters = new QFilter[]{
new QFilter("number", QCP.equals, viewParent.getString("number"))
};
cost = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters);
}
DynamicObjectCollection structureCollection = cost.getDynamicObjectCollection("structure");//组织结构分录
DynamicObject structure = structureCollection.get(0);
viewParent = structure.getDynamicObject("viewparent");//上级组织
String viewParentNumber = viewParent.getString("number");
QFilter[] qFilters = new QFilter[]{
new QFilter("number", QCP.equals, viewParentNumber)
};
DynamicObject bos_adminOrg = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters);//行政组织
DynamicObject orgPattern1 = bos_adminOrg.getDynamicObject("orgpattern");//形态
String orgPatternNumber1 = orgPattern1.getString("number");
if (!orgPatternNumber1.equals("Orgform06")) {
//上级不为不为部门的时候将现在查询的部门赋值给一级承担部门
break;
} else {
a++;
}
}
DynamicObject bos_adminorg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{
new QFilter("number", QCP.equals, viewParent.getString("number"))});
this.getModel().setValue("zcgj_org", bos_adminorg);//所属组织
}
}