123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- package fi.em.formPlugin;
- import kd.bos.bill.AbstractBillPlugIn;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.entity.datamodel.events.ChangeData;
- import kd.bos.entity.datamodel.events.PropertyChangedArgs;
- import kd.bos.exception.KDBizException;
- import kd.bos.form.field.BasedataEdit;
- import kd.bos.form.field.events.BeforeF7SelectEvent;
- import kd.bos.form.field.events.BeforeF7SelectListener;
- import kd.bos.list.ListShowParameter;
- import kd.bos.orm.query.QCP;
- import kd.bos.orm.query.QFilter;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.sdk.plugin.Plugin;
- import org.apache.commons.lang.StringUtils;
- import java.math.BigDecimal;
- import java.util.*;
- public class YwclF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
- private final static String nckd_orgv="nckd_orgv";//收款资金组织
- private final static String nckd_skzh="nckd_skzh";//收款账户
- private final static String nckd_orgvs="nckd_orgvs";//付款资金组织
- private final static String nckd_skzhs="nckd_skzhs";//付款账户
- private final static String nckd_payeraccbanknum="nckd_payeraccbanknum";//调拨付款账户
- private final static String nckd_payeeaccbanknum="nckd_payeeaccbanknum";//调拨收款账户
- private final static String nckd_payeebanknumlb="nckd_payeebanknumlb";//收款信息修改付款账号
- private final static String nckd_payeebanknumlbs="nckd_payeebanknumlbs";//付款信息修改收款账号
- private final static String nckd_basedatafield="nckd_basedatafield";//资产报废编号
- private final static String nckd_basedatafield5="nckd_basedatafield5";//资产编号
- private final static String nckd_orgfield4="nckd_orgfield4";//付款信息修改收款账号111
- private final static String nckd_basedatafield16="nckd_basedatafield16";//财务事物卡片
- private final static String nckd_basedatafield19="nckd_basedatafield19";//被拆分资产
- private final static String nckd_orgfield6="nckd_orgfield6";//被拆分资产使用部门
- private final static String nckd_basedatafield14="nckd_basedatafield14";//转出资产明细
- private final static String nckd_basedatafield13="nckd_basedatafield13";//转入资产明细
- private final static String nckd_basedatafield18="nckd_basedatafield18";//资产盘点
- private final static String nckd_basedatafield21="nckd_basedatafield21";//资产变更明细
- private final static String nckd_orgfield8="nckd_orgfield8";//资产变更明细使用后部门
- @Override
- public void registerListener(EventObject e) {
- super.registerListener(e);
- // 侦听基础资料字段的事件
- BasedataEdit fieldEdit1 = this.getView().getControl(nckd_skzh);
- fieldEdit1.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit2 = this.getView().getControl(nckd_skzhs);
- fieldEdit2.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit3 = this.getView().getControl(nckd_payeraccbanknum);
- fieldEdit3.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit4 = this.getView().getControl(nckd_payeeaccbanknum);
- fieldEdit4.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit5 = this.getView().getControl(nckd_payeebanknumlb);
- fieldEdit5.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit6 = this.getView().getControl(nckd_payeebanknumlbs);
- fieldEdit6.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit7 = this.getView().getControl(nckd_basedatafield);
- fieldEdit7.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit8 = this.getView().getControl(nckd_basedatafield5);
- fieldEdit8.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit9 = this.getView().getControl(nckd_orgfield4);
- fieldEdit9.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit10 = this.getView().getControl(nckd_basedatafield16);
- fieldEdit10.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit11 = this.getView().getControl(nckd_basedatafield19);
- fieldEdit11.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit12 = this.getView().getControl(nckd_orgfield6);
- fieldEdit12.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit13 = this.getView().getControl(nckd_basedatafield14);
- fieldEdit13.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit14 = this.getView().getControl(nckd_basedatafield13);
- fieldEdit14.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit15 = this.getView().getControl(nckd_basedatafield18);
- fieldEdit15.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit16 = this.getView().getControl(nckd_basedatafield21);
- fieldEdit16.addBeforeF7SelectListener(this);
- BasedataEdit fieldEdit17 = this.getView().getControl(nckd_orgfield8);
- fieldEdit17.addBeforeF7SelectListener(this);
- }
- @Override
- public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
- String fieldKey = beforeF7SelectEvent.getProperty().getName();
- int row = beforeF7SelectEvent.getRow();
- if (StringUtils.equals(fieldKey, nckd_skzh)){
- this.getQFilter(beforeF7SelectEvent,nckd_skzh);
- }
- if (StringUtils.equals(fieldKey, nckd_skzhs)){
- this.getQFilter(beforeF7SelectEvent,nckd_skzhs);
- }
- if (StringUtils.equals(fieldKey, nckd_payeraccbanknum)){
- this.getQFilters(beforeF7SelectEvent,nckd_payeraccbanknum);
- }
- if (StringUtils.equals(fieldKey, nckd_payeeaccbanknum)){
- this.getQFilters(beforeF7SelectEvent,nckd_payeeaccbanknum);
- }
- if (StringUtils.equals(fieldKey, nckd_basedatafield)){
- this.getQFiltersbf(beforeF7SelectEvent,nckd_basedatafield);
- }
- if (StringUtils.equals(fieldKey, nckd_basedatafield5)){
- this.getQFilterdczc(beforeF7SelectEvent,nckd_basedatafield5);
- }
- if (StringUtils.equals(fieldKey, nckd_orgfield4)){
- this.getQFilterdrzc(beforeF7SelectEvent,nckd_orgfield4);
- }
- if (StringUtils.equals(fieldKey, nckd_basedatafield16)){
- this.getQFilterdczc(beforeF7SelectEvent,nckd_basedatafield16);
- }
- if (StringUtils.equals(fieldKey, nckd_basedatafield19)){
- this.getQFilterdczc(beforeF7SelectEvent,nckd_basedatafield19);
- }
- if (StringUtils.equals(fieldKey, nckd_orgfield6)){
- this.getQFilterdrzc(beforeF7SelectEvent,nckd_orgfield6);
- }
- if (StringUtils.equals(fieldKey, nckd_basedatafield14)){
- this.getQFilterdczc(beforeF7SelectEvent,nckd_basedatafield14);
- }
- if (StringUtils.equals(fieldKey, nckd_basedatafield13)){
- this.getQFilterdczc(beforeF7SelectEvent,nckd_basedatafield13);
- }
- if (StringUtils.equals(fieldKey, nckd_basedatafield18)){
- this.getQFilterdczc(beforeF7SelectEvent,nckd_basedatafield18);
- }
- if (StringUtils.equals(fieldKey, nckd_basedatafield21)){
- this.getQFilterdczc(beforeF7SelectEvent,nckd_basedatafield21);
- }
- if (StringUtils.equals(fieldKey, nckd_orgfield8)){
- this.getQFilterdrzc(beforeF7SelectEvent,nckd_orgfield8);
- }
- }
- private void getQFilter(BeforeF7SelectEvent arg0, String type) {
- DynamicObject data = (DynamicObject)this.getModel().getValue(nckd_orgv) ;
- if(type.equals(nckd_skzh)){
- DynamicObject skdata = (DynamicObject)this.getModel().getValue(nckd_orgv) ;
- if(skdata ==null){
- throw new KDBizException("收款信息资金组织为空!");
- }
- long orgid = skdata.getLong("id");
- QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
- data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
- } else if (type.equals(nckd_skzhs)) {
- DynamicObject fkdata = (DynamicObject)this.getModel().getValue(nckd_orgvs) ;
- if(fkdata ==null){
- throw new KDBizException("付款信息资金组织为空!");
- }
- long orgid = fkdata.getLong("id");
- QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
- data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
- }
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("acctstatus", QCP.equals, "normal");
- filter.and("company.id", QCP.equals,data.getLong("id"));
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }
- private void getQFilters(BeforeF7SelectEvent arg0, String type) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_costcompany") ;
- if(type.equals(nckd_payeraccbanknum)){
- DynamicObject skdata = (DynamicObject)this.getModel().getValue("nckd_payorg") ;
- if(skdata ==null){
- throw new KDBizException("调拨明细付款组织为空!");
- }
- long orgid = skdata.getLong("id");
- QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
- data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
- } else if (type.equals(nckd_payeeaccbanknum)) {
- DynamicObject fkdata = (DynamicObject)this.getModel().getValue("nckd_payee") ;
- if(fkdata ==null){
- throw new KDBizException("调拨明细收款组织为空!");
- }
- long orgid = fkdata.getLong("id");
- QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
- data= BusinessDataServiceHelper.loadSingle("bos_org","id",new QFilter[] {nckd_skzjFilter});
- }
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("acctstatus", QCP.equals, "normal");
- filter.and("company.id", QCP.equals,data.getLong("id"));
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }
- private void getQFiltersfk(BeforeF7SelectEvent arg0, String type) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_costcompany") ;
- if(type.equals(nckd_payeebanknumlb)){
- DynamicObject skdata = (DynamicObject)this.getModel().getValue("nckd_payeenamev") ;
- if(skdata ==null){
- throw new KDBizException("收款信息付款人为空!");
- }
- long orgid = skdata.getLong("id");
- QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
- data= BusinessDataServiceHelper.loadSingle("bd_supplier","id",new QFilter[] {nckd_skzjFilter});
- } else if (type.equals(nckd_payeebanknumlbs)) {
- DynamicObject fkdata = (DynamicObject)this.getModel().getValue("nckd_payeenamevs") ;
- if(fkdata ==null){
- throw new KDBizException("付款信息付款人为空!");
- }
- long orgid = fkdata.getLong("id");
- QFilter nckd_skzjFilter = new QFilter("id", QCP.equals,orgid);
- data= BusinessDataServiceHelper.loadSingle("bd_supplier","id",new QFilter[] {nckd_skzjFilter});
- }
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("nckd_id", QCP.equals, data.getLong("id"));
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }
- private void getQFiltersbf(BeforeF7SelectEvent arg0, String type) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield") ;
- if(data ==null){
- throw new KDBizException("核算组织为空!");
- }
- String number = data.getString("number");
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("assetunit.number", QCP.equals, number);
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }
- private void getQFilterdczc(BeforeF7SelectEvent arg0, String type) {
- String nckdDetailtype = this.getModel().getValue("nckd_detailtype").toString();
- if("E".equals(nckdDetailtype)) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield1") ;
- if(data ==null){
- throw new KDBizException("调出组织为空!");
- }
- String number = data.getString("number");
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("assetunit.number", QCP.equals, number);
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }else if ("N".equals(nckdDetailtype)) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield");
- if(data ==null){
- throw new KDBizException("核算组织为空!");
- }
- String number = data.getString("number");
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("org.number", QCP.equals, number);
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }else if ("P".equals(nckdDetailtype)) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield");
- if(data ==null){
- throw new KDBizException("核算组织为空!");
- }
- String number = data.getString("number");
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("org.number", QCP.equals, number);
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }else if ("T".equals(nckdDetailtype)) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield");
- if(data ==null){
- throw new KDBizException("核算组织为空!");
- }
- String number = data.getString("number");
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("org.number", QCP.equals, number);
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }else if ("S".equals(nckdDetailtype)) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield");
- if(data ==null){
- throw new KDBizException("核算组织为空!");
- }
- String number = data.getString("number");
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("org.number", QCP.equals, number);
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }else if ("Q".equals(nckdDetailtype)) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield");
- if(data ==null){
- throw new KDBizException("核算组织为空!");
- }
- String number = data.getString("number");
- QFilter filter;
- //给基础资料添加过滤
- filter = new QFilter("org.number", QCP.equals, number);
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }else if ("N".equals(nckdDetailtype)) {
- }
- }
- private void getQFilterdrzc(BeforeF7SelectEvent arg0, String type) {
- String nckdDetailtype = this.getModel().getValue("nckd_detailtype").toString();
- if("E".equals(nckdDetailtype)){
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield2") ;
- if(data ==null){
- throw new KDBizException("调入组织为空!");
- }
- long id = data.getLong("id");
- QFilter nckd_orgamountFilter = new QFilter("fromorg.id", QCP.equals, id);
- Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("bos_org_orgrelation_dept", new QFilter[]{nckd_orgamountFilter});
- HashSet<Long> objects = new HashSet<>();
- for (Object idkey:nckd_cas_arbilMap.keySet()) {
- //当前单头
- DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
- Long id1 = dynamicObject.getLong("toorg.id");
- objects.add(id1);
- }
- QFilter filter = new QFilter("id",QCP.in,objects);
- //给基础资料添加过滤
- ListShowParameter showParameter = (ListShowParameter) arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }else if ("N".equals(nckdDetailtype)) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield") ;
- if(data ==null){
- throw new KDBizException("核算组织为空!");
- }
- long id = data.getLong("id");
- QFilter nckd_orgamountFilter = new QFilter("fromorg.id", QCP.equals, id);
- Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("bos_org_orgrelation_dept", new QFilter[]{nckd_orgamountFilter});
- HashSet<Long> objects = new HashSet<>();
- for (Object idkey:nckd_cas_arbilMap.keySet()) {
- //当前单头
- DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
- Long id1 = dynamicObject.getLong("toorg.id");
- objects.add(id1);
- }
- QFilter filter = new QFilter("id",QCP.in,objects);
- //给基础资料添加过滤
- ListShowParameter showParameter = (ListShowParameter) arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }else if ("T".equals(nckdDetailtype)) {
- DynamicObject data = (DynamicObject)this.getModel().getValue("nckd_orgfield") ;
- if(data ==null){
- throw new KDBizException("核算组织为空!");
- }
- long id = data.getLong("id");
- QFilter nckd_orgamountFilter = new QFilter("fromorg.id", QCP.equals, id);
- Map<Object, DynamicObject> nckd_cas_arbilMap = BusinessDataServiceHelper.loadFromCache("bos_org_orgrelation_dept", new QFilter[]{nckd_orgamountFilter});
- HashSet<Long> objects = new HashSet<>();
- for (Object idkey:nckd_cas_arbilMap.keySet()) {
- //当前单头
- DynamicObject dynamicObject = nckd_cas_arbilMap.get(idkey);
- Long id1 = dynamicObject.getLong("toorg.id");
- objects.add(id1);
- }
- QFilter filter = new QFilter("id",QCP.in,objects);
- //给基础资料添加过滤
- ListShowParameter showParameter = (ListShowParameter) arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(filter);
- }
- }
- }
|