|
@@ -1,12 +1,19 @@
|
|
|
package nckd.poc602.plugin.form;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.util.EventObject;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
import kd.bos.bill.AbstractBillPlugIn;
|
|
|
+import kd.bos.bill.BillShowParameter;
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.entity.datamodel.events.ChangeData;
|
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
+import kd.bos.form.IFormView;
|
|
|
+import kd.bos.form.ShowType;
|
|
|
+import kd.bos.form.events.AfterDoOperationEventArgs;
|
|
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
|
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
|
|
import kd.bos.orm.query.QCP;
|
|
@@ -18,7 +25,12 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
* @date 2025-4-25
|
|
|
*/
|
|
|
public class RecBillFormPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
|
|
-
|
|
|
+ @Override
|
|
|
+ public void registerListener(EventObject e) {
|
|
|
+ // TODO Auto-generated method stub
|
|
|
+ super.registerListener(e);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
|
|
|
@@ -61,4 +73,48 @@ public class RecBillFormPlugin extends AbstractBillPlugIn implements BeforeF7Sel
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
|
|
|
+ // TODO Auto-generated method stub
|
|
|
+ super.afterDoOperation(afterDoOperationEventArgs);
|
|
|
+ String opkey = afterDoOperationEventArgs.getOperateKey();
|
|
|
+ if("querysk".equals(opkey)) {
|
|
|
+ DynamicObject fkd = this.getModel().getDataEntity(true);
|
|
|
+ Set<Object> xshtids = new HashSet<>();
|
|
|
+ DynamicObjectCollection entrys = fkd.getDynamicObjectCollection("entry");
|
|
|
+ for(DynamicObject entryitem : entrys) {
|
|
|
+ DynamicObject xsht = entryitem.getDynamicObject("nckd_refbillfield");
|
|
|
+ if(xsht != null) {
|
|
|
+ xshtids.add(xsht.getPkValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!xshtids.isEmpty()) {
|
|
|
+ String skdentity = "cas_recbill";
|
|
|
+ Set<Object> skdids = new HashSet<>();
|
|
|
+ QFilter qf = new QFilter("entry.nckd_refbillfield1",QCP.in,xshtids);
|
|
|
+ DynamicObject[] skds = BusinessDataServiceHelper.load("cas_recbill", "id", qf.toArray());
|
|
|
+ for(DynamicObject skd : skds) {
|
|
|
+ skdids.add(skd.getPkValue());
|
|
|
+ }
|
|
|
+ if(skdids.size() == 1) {
|
|
|
+ BillShowParameter bsp = new BillShowParameter();
|
|
|
+ bsp.setFormId(skdentity);
|
|
|
+ bsp.setPkId(skdids.toArray()[0]);
|
|
|
+ bsp.getOpenStyle().setShowType(ShowType.MainNewTabPage);
|
|
|
+ bsp.getOpenStyle().setTargetKey("tabap");
|
|
|
+ String pageId = this.generatePage4ListOp(this.getView(),skdentity, skdids.toArray()[0]);
|
|
|
+ bsp.setPageId(pageId);
|
|
|
+ this.getView().showForm(bsp);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ this.getView().showErrorNotification("未找到关联的收款单");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private String generatePage4ListOp(IFormView currentView, String viewBillFormId, Object pkValue) {
|
|
|
+ return currentView.getPageId() + "_" + viewBillFormId + "_" + pkValue;
|
|
|
+ }
|
|
|
}
|