123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- package fi.er.opplugin;
- import com.alibaba.druid.util.StringUtils;
- import com.alibaba.fastjson.JSONObject;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.dataentity.entity.DynamicObjectCollection;
- import kd.bos.dataentity.serialization.SerializationUtils;
- import kd.bos.entity.datamodel.events.ChangeData;
- import kd.bos.entity.datamodel.events.PropertyChangedArgs;
- import kd.bos.form.field.RefBillEdit;
- import kd.bos.form.field.events.BeforeF7SelectEvent;
- import kd.bos.form.field.events.BeforeF7SelectListener;
- import kd.bos.form.plugin.AbstractFormPlugin;
- import kd.bos.list.ListShowParameter;
- import kd.bos.orm.query.QCP;
- import kd.bos.orm.query.QFilter;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.EventObject;
- import java.util.List;
- public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements BeforeF7SelectListener {
- private static String nckd_apfinapbill = "nckd_apfinapbill"; //应付挂账单字段
- private static String nckd_real_card = "assetentry.nckd_real_card"; //应付挂账单字段
- private static String nckd_ap_finapbill_gz = "ap_finapbill"; //应付挂账单标识
- private static String nckd_er_publicreimbur_ext = "er_publicreimbursebill"; //报销单标识
- @Override
- public void registerListener(EventObject e) {
- //监听单据字段
- super.registerListener(e);
- RefBillEdit bill = this.getView().getControl(nckd_apfinapbill);
- bill.addBeforeF7SelectListener(this);
- }
- @Override
- public void beforeF7Select(BeforeF7SelectEvent arg0) {
- String fieldKey = arg0.getProperty().getName();
- if (StringUtils.equals(fieldKey, nckd_apfinapbill)){
- // 生成过滤条件对象QFilter
- Object nckd_sourcebillid = this.getModel().getValue("nckd_sourcebillid");
- if (nckd_sourcebillid != null) {
- //查询暂估报销单
- String sourcebillid = String.valueOf(nckd_sourcebillid);
- QFilter filter = new QFilter("nckd_sourcebillid", QCP.equals,sourcebillid);
- filter.and("nckd_ywlx", QCP.equals, "2");
- DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load(nckd_er_publicreimbur_ext,"id",new QFilter[] {filter});
- if (bxDynamicObjects.length > 0) {
- DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[0].getPkValue(), bxDynamicObjects[0].getDynamicObjectType().getName());
- Long id = bxInfo.getLong("id");
- QFilter qFilter = new QFilter("sourcebillid", QCP.equals,id);
- // 表过滤条件
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(qFilter);
- }
- }else {
- //选取不到应付挂账单
- QFilter qFilter = new QFilter("id", QCP.equals,null);
- // 表过滤条件
- ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
- showParameter.getListFilterParameter().setFilter(qFilter);
- }
- } else if (StringUtils.equals(fieldKey, nckd_real_card)) {
- }
- }
- @Override
- public void propertyChanged(PropertyChangedArgs e) {
- String fieldKey = e.getProperty().getName();
- if (StringUtils.equals("nckd_real_card", fieldKey)){
- ChangeData changeData = e.getChangeSet()[0];
- DynamicObjectCollection dynamicObjectCollection = (DynamicObjectCollection) changeData.getNewValue();
- List<Long> ids = new ArrayList<>();
- Integer index = 0;
- for(DynamicObject object : dynamicObjectCollection) {
- Long id = (Long) object.get(2);
- ids.add(id);
- this.getModel().setValue("nckd_card_list_str","1");
- }
- //查询实物卡片清单
- QFilter filter = new QFilter("id", QCP.in,ids);
- DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
- if (dynamicObjects.length > 0) {
- this.getModel().deleteEntryData("nckd_realcard_list");
- for (int i = 0; i < dynamicObjects.length; i++) {
- DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
- String number = info.getString("number");//资产编码
- String name = info.getString("name");//资产名称
- String nckd_card_type = info.getString("nckd_card_type");//资产类别
- String nckd_card_status = info.getString("nckd_card_status");//资产状态
- DynamicObject nckd_orgfield = info.getDynamicObject("nckd_orgfield");//归属机构
- DynamicObject nckd_dept = info.getDynamicObject("nckd_dept");//归属部门
- String nckd_use_name = info.getString("nckd_use_name");//使用人
- Date nckd_start_date = info.getDate("nckd_start_date");//开始使用日期
- String nckd_local = info.getString("nckd_local");//存放地点
- String nckd_card_brand = info.getString("nckd_card_brand");//品牌
- String nckd_card_model = info.getString("nckd_card_model");//型号
- String nckd_serial_number = info.getString("nckd_serial_number");//序列号
- //实物卡片清单分录赋值
- int rowIndex = this.getModel().createNewEntryRow("nckd_realcard_list");
- this.getModel().setValue("nckd_card_code",number,rowIndex);
- this.getModel().setValue("nckd_card_name",name,rowIndex);
- this.getModel().setValue("nckd_card_type",nckd_card_type,rowIndex);
- this.getModel().setValue("nckd_card_status",nckd_card_status,rowIndex);
- this.getModel().setValue("nckd_orgfield",nckd_orgfield,rowIndex);
- this.getModel().setValue("nckd_dept",nckd_dept,rowIndex);
- this.getModel().setValue("nckd_use_name",nckd_use_name,rowIndex);
- this.getModel().setValue("nckd_start_date",nckd_start_date,rowIndex);
- this.getModel().setValue("nckd_local",nckd_local,rowIndex);
- this.getModel().setValue("nckd_card_brand",nckd_card_brand,rowIndex);
- this.getModel().setValue("nckd_card_model",nckd_card_model,rowIndex);
- this.getModel().setValue("nckd_serial_number",nckd_serial_number,rowIndex);
- if (index.equals(0)) {
- //资产信息分录赋值
- this.getModel().setValue("asset_name",name);
- //资产类别赋值
- //规格型号
- this.getModel().setValue("asset_model",nckd_card_model);
- //使用部门
- this.getModel().setValue("asset_costdept",nckd_dept);
- //使用人
- //根据姓名name查询用户,工号是number
- QFilter userFilter = new QFilter("name", QCP.equals,nckd_use_name);
- DynamicObject[] userDynamicObjects = BusinessDataServiceHelper.load("bos_user","id",new QFilter[] {userFilter});
- for (int d=0;d<userDynamicObjects.length;d++) {
- DynamicObject userInfo = BusinessDataServiceHelper.loadSingle(userDynamicObjects[i].getPkValue(), userDynamicObjects[i].getDynamicObjectType().getName());
- this.getModel().setValue("asset_user",userInfo);
- }
- //存放地点
- }
- index++;
- }
- //刷新实物卡片清单分录
- this.getView().updateView("nckd_realcard_list");
- this.getView().updateView("assetentry");
- }
- } else if (StringUtils.equals("nckd_apfinapbill", fieldKey)) {
- ChangeData changeData = e.getChangeSet()[0];
- DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue();
- if (dynamicObject != null) {
- Long id = dynamicObject.getLong("id");
- //查询应付挂账
- QFilter filter = new QFilter("id", QCP.equals,id);
- DynamicObject[] yfgzDynamicObjects = BusinessDataServiceHelper.load(nckd_ap_finapbill_gz,"id",new QFilter[] {filter});
- DynamicObject gzInfo = BusinessDataServiceHelper.loadSingle(yfgzDynamicObjects[0].getPkValue(), yfgzDynamicObjects[0].getDynamicObjectType().getName());
- String billno = gzInfo.getString("billno");//单据编号
- DynamicObject org = gzInfo.getDynamicObject("org");//结算组织
- DynamicObject detailentry = gzInfo.getDynamicObjectCollection("detailentry").get(0);
- DynamicObject expenseitem = detailentry.getDynamicObject("expenseitem");//费用项目
- DynamicObject receivingsupplierid = gzInfo.getDynamicObject("receivingsupplierid");//供应商
- Date bookdate = gzInfo.getDate("bookdate");
- String remark = gzInfo.getString("remark");
- BigDecimal pricetaxtotal = gzInfo.getBigDecimal("pricetaxtotal");
- //给冲预付借款赋值
- int rowIndex = this.getModel().createNewEntryRow("writeoffmoney");
- this.getModel().setValue("loanbillnov1",billno,rowIndex);
- this.getModel().setValue("sourceentrycostdept",org,rowIndex);
- this.getModel().setValue("sourceentrycostcompany",org,rowIndex);
- this.getModel().setValue("sourceexpenseitem",expenseitem,rowIndex);
- this.getModel().setValue("srcentrywlunit",receivingsupplierid,rowIndex);
- this.getModel().setValue("loanapplydatev1",bookdate,rowIndex);
- this.getModel().setValue("loandescriptionv1",remark,rowIndex);
- this.getModel().setValue("loanamount",pricetaxtotal,rowIndex);
- this.getModel().setValue("accloanamount",pricetaxtotal,rowIndex);
- this.getModel().setValue("currloanamount",pricetaxtotal,rowIndex);
- this.getModel().setValue("curraccloanamount",pricetaxtotal,rowIndex);
- //刷新冲预付借款分录
- this.getView().updateView("writeoffmoney");
- }
- }//资产组织变更
- else if (StringUtils.equals("assetorg", fieldKey)) {
- ChangeData changeData = e.getChangeSet()[0];
- DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue();
- Long id = dynamicObject.getLong("id");
- //查询组织
- QFilter filter = new QFilter("id", QCP.equals,id);
- DynamicObject[] orgDynamicObjects = BusinessDataServiceHelper.load("bos_org","id",new QFilter[] {filter});
- DynamicObject orgInfo = BusinessDataServiceHelper.loadSingle(orgDynamicObjects[0].getPkValue(), orgDynamicObjects[0].getDynamicObjectType().getName());
- //获取资产信息分录
- DynamicObjectCollection assetentry = this.getModel().getEntryEntity("assetentry");
- for (int i = 0; i < assetentry.size(); i++) {
- //给分录核算组织,使用部门赋值
- this.getModel().setValue("nckd_orgfield1", orgInfo, i);
- this.getModel().setValue("asset_costdept", orgInfo, i);
- }
- //刷新资产信息分录
- this.getView().updateView("assetentry");
- } //资产信息分录-核算组织变更
- else if (StringUtils.equals("nckd_orgfield1", fieldKey)) {
- ChangeData changeData = e.getChangeSet()[0];
- DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue();
- Long id = dynamicObject.getLong("id");
- //查询组织
- QFilter filter = new QFilter("id", QCP.equals,id);
- DynamicObject[] orgDynamicObjects = BusinessDataServiceHelper.load("bos_org","id",new QFilter[] {filter});
- DynamicObject orgInfo = BusinessDataServiceHelper.loadSingle(orgDynamicObjects[0].getPkValue(), orgDynamicObjects[0].getDynamicObjectType().getName());
- //获取资产信息分录
- DynamicObjectCollection assetentry = this.getModel().getEntryEntity("assetentry");
- //给分录核算组织,使用部门赋值
- this.getModel().setValue("nckd_orgfield1", orgInfo, e.getChangeSet()[0].getRowIndex());
- this.getModel().setValue("asset_costdept", orgInfo, e.getChangeSet()[0].getRowIndex());
- //刷新资产信息分录
- this.getView().updateView("assetentry");
- }
- }
- }
|