123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- package kd.cosmic.jkjt.fi.cas.formplugin;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.entity.datamodel.events.ChangeData;
- import kd.bos.entity.datamodel.events.PropertyChangedArgs;
- import kd.bos.form.control.Label;
- import kd.bos.form.events.ClosedCallBackEvent;
- import kd.bos.orm.query.QCP;
- import kd.bos.orm.query.QFilter;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.fi.cas.consts.BillTypeConstants;
- import kd.fi.cas.formplugin.PaymentBillEdit;
- import java.math.BigDecimal;
- import java.util.EventObject;
- import java.util.Map;
- /**
- * @author turbo
- *
- * 同名转账PC布局单据显示,付款方、收款方的协定利率、协定留存金额。单据字段已添加,逻辑描述:
- * 数据来源:协定存款单据
- * 条件:协议状态=正常 , 收付.银行账号=协定账号
- * 未找到记录则字段显示为空
- */
- public class PayBillEditPlugin extends PaymentBillEdit {
- private String AgreementDepositEntityName = "cim_agreement_deposit";
- @Override
- public void afterCreateNewData(EventObject e) {
- super.afterCreateNewData(e);
- setIstypeSyn();
- DynamicObject payeracctbank = (DynamicObject)this.getValue("payeracctbank");
- if(payeracctbank != null){
- getDepositAgreeInfo(true, (Long)payeracctbank.getPkValue());
- }
- }
- @Override
- public void afterLoadData(EventObject e) {
- super.afterLoadData(e);
- setIstypeSyn();
- setPayerPayeeInfoLb();
- }
- @Override
- public void click(EventObject evt) {
- // super.click(evt);
- }
- @Override
- public void closedCallBack(ClosedCallBackEvent e) {
- // super.closedCallBack(e);
- //
- // Map data;
- // if ("changepayer".equals(e.getActionId())) {
- // data = (Map)e.getReturnData();
- // if (data != null) {
- // this.changePayerValueForDepositAgree(data);
- // }
- // } else if ("addpayee".equals(e.getActionId())) {
- // data = (Map)e.getReturnData();
- // if (data != null) {
- // this.addPayeeValueForDepositAgree(data);
- // }
- // }
- }
- private void changePayerValueForDepositAgree(Map<String, Object> returnMap) {
- if (getBillTypeSyn()) {
- DynamicObject payerbank = (DynamicObject ) returnMap.get("payeracctbank");
- getDepositAgreeInfo(true, (Long)payerbank.getPkValue());
- }
- }
- private void addPayeeValueForDepositAgree(Map<String, Object> returnMap) {
- if (getBillTypeSyn()) {
- Long payeebankId = (Long)returnMap.get("payeeacctbank");
- getDepositAgreeInfo(false,payeebankId);
- }
- }
- private void setIstypeSyn(){
- if (getBillTypeSyn()) {
- this.getView().setVisible(true, new String[]{"nckd_flex_payer_rate"});
- this.getView().setVisible(true, new String[]{"nckd_payer_agreeaamount"});
- this.getView().setVisible(true, new String[]{"nckd_flex_payee_rate"});
- this.getView().setVisible(true, new String[]{"nckd_payee_agreeaamount"});
- }else{
- this.getView().setVisible(false, new String[]{"nckd_flex_payer_rate"});
- this.getView().setVisible(false, new String[]{"nckd_payer_agreeaamount"});
- this.getView().setVisible(false, new String[]{"nckd_flex_payee_rate"});
- this.getView().setVisible(false, new String[]{"nckd_payee_agreeaamount"});
- }
- }
- private boolean getBillTypeSyn(){
- DynamicObject billtype = this.getDynamicObject("billtype");
- if (billtype != null && BillTypeConstants.PAYBILL_SYN.equals(billtype.getPkValue())) {
- return true;
- }
- return false;
- }
- private void setPayerPayeeInfoLb(){
- if (getBillTypeSyn()) {
- if(this.getBigDecimal("nckd_payerrate")!=null) {
- BigDecimal rate1 = this.getBigDecimal("nckd_payerrate").setScale(2,BigDecimal.ROUND_HALF_UP);
- ((Label) this.getControl("nckd_payerbanknamev")).setText(rate1.toString());
- }
- if(this.getBigDecimal("nckd_payeragreeamount")!=null) {
- BigDecimal amount1 = this.getBigDecimal("nckd_payeragreeamount").setScale(2, BigDecimal.ROUND_HALF_UP);
- ((Label) this.getControl("nckd_payerbanknamev1")).setText(amount1.toString());
- }
- if(this.getBigDecimal("nckd_payeerate")!=null) {
- BigDecimal rate2 = this.getBigDecimal("nckd_payeerate").setScale(2, BigDecimal.ROUND_HALF_UP);
- ((Label) this.getControl("nckd_payeebanknumv")).setText(rate2.toString());
- }
- if(this.getBigDecimal("nckd_payeeagreeamount")!=null) {
- BigDecimal amount2 = this.getBigDecimal("nckd_payeeagreeamount").setScale(2, BigDecimal.ROUND_HALF_UP);
- ((Label) this.getControl("nckd_payeebanknumv1")).setText(amount2.toString());
- }
- }
- }
- /**
- * 单据选择
- * @param isPayer
- * @param bankId
- */
- private void getDepositAgreeInfo(boolean isPayer, Long bankId){
- ///先清除原有值
- Object value = null;
- if(isPayer) {
- this.setValue("nckd_payerrate", value);
- this.setValue("nckd_payeragreeamount", value);
- ((Label) this.getControl("nckd_payerbanknamev")).setText("");
- ((Label) this.getControl("nckd_payerbanknamev1")).setText("");
- }else{
- this.setValue("nckd_payeerate", value);
- this.setValue("nckd_payeeagreeamount", value);
- ((Label) this.getControl("nckd_payeebanknumv")).setText("");
- ((Label) this.getControl("nckd_payeebanknumv1")).setText("");
- }
- if(bankId == null) {
- return;
- }
- QFilter filterAgreement1 = new QFilter("bankacct", QCP.equals, bankId);
- QFilter filterAgreement2 = new QFilter("status", QCP.equals, "A");
- QFilter filterAgreement3 = new QFilter("billstatus", QCP.equals, "C");
- QFilter[] filtersAgreeement = new QFilter[]{filterAgreement1.and(filterAgreement2).and(filterAgreement3)};
- DynamicObject[] agreementBillEntities = BusinessDataServiceHelper.load(AgreementDepositEntityName, "id,billno", filtersAgreeement);
- for (DynamicObject dataEntity : agreementBillEntities) {
- DynamicObject bankBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), AgreementDepositEntityName);
- if(isPayer) {
- this.setValue("nckd_payerrate", bankBillEntity.getBigDecimal("rate"));
- this.setValue("nckd_payeragreeamount", bankBillEntity.getBigDecimal("amount"));
- if(this.getBigDecimal("nckd_payerrate")!=null) {
- BigDecimal rate1 = this.getBigDecimal("nckd_payerrate").setScale(2,BigDecimal.ROUND_HALF_UP);
- ((Label) this.getControl("nckd_payerbanknamev")).setText(rate1.toString());
- }
- if(this.getBigDecimal("nckd_payeragreeamount")!=null) {
- BigDecimal amount1 = this.getBigDecimal("nckd_payeragreeamount").setScale(2, BigDecimal.ROUND_HALF_UP);
- ((Label) this.getControl("nckd_payerbanknamev1")).setText(amount1.toString());
- }
- }else{
- this.setValue("nckd_payeerate", bankBillEntity.getBigDecimal("rate"));
- this.setValue("nckd_payeeagreeamount", bankBillEntity.getBigDecimal("amount"));
- if(this.getBigDecimal("nckd_payeerate")!=null) {
- BigDecimal rate2 = this.getBigDecimal("nckd_payeerate").setScale(2, BigDecimal.ROUND_HALF_UP);
- ((Label) this.getControl("nckd_payeebanknumv")).setText(rate2.toString());
- }
- if(this.getBigDecimal("nckd_payeeagreeamount")!=null) {
- BigDecimal amount2 = this.getBigDecimal("nckd_payeeagreeamount").setScale(2, BigDecimal.ROUND_HALF_UP);
- ((Label) this.getControl("nckd_payeebanknumv1")).setText(amount2.toString());
- }
- }
- }
- }
- public void propertyChanged(PropertyChangedArgs e) {
- super.propertyChanged(e);
- String key = e.getProperty().getName();
- ChangeData[] changeData = e.getChangeSet();
- Object newValue = changeData[0].getNewValue();
- Object oldValue = changeData[0].getOldValue();
- if (newValue != oldValue) {
- switch (key) {
- //收款银行
- case "payeebank":
- if(newValue == null){
- this.getModel().setValue("nckd_payeiscapitalpool", false);
- } else {
- DynamicObject bebank = (DynamicObject) newValue;
- QFilter qFilter = new QFilter("bebank", QCP.equals, bebank.getLong("id"));
- DynamicObject bank = BusinessDataServiceHelper.loadSingle("bd_finorginfo", qFilter.toArray());
- if(bank != null && bank.getDynamicObject("bank_cate") != null){
- DynamicObject bankCate = bank.getDynamicObject("bank_cate");
- bankCate = BusinessDataServiceHelper.loadSingle(bankCate.getPkValue(), "bd_bankcgsetting");
- this.getModel().setValue("nckd_payeiscapitalpool", bankCate.getBoolean("nckd_iscapitalpoolbank"));
- }
- }
- break;
- //银行账号
- case "payeracctbank":
- if (getBillTypeSyn()) {
- DynamicObject payerbank = this.getDynamicObject("payeracctbank");
- Long payeebankId = payerbank == null ? null : (Long)payerbank.getPkValue();
- getDepositAgreeInfo(true, payeebankId);
- }
- break;
- //收款账户ID
- case "payeeacctbank":
- if (getBillTypeSyn()) {
- Long payeebankId = this.getValue("payeeacctbank") == null ? null : (Long)this.getValue("payeeacctbank");
- getDepositAgreeInfo(false,payeebankId);
- }
- break;
- }
- }
- }
- }
|