diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/QuotaImprestLedgerBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/QuotaImprestLedgerBillPlugin.java new file mode 100644 index 0000000..5651313 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/QuotaImprestLedgerBillPlugin.java @@ -0,0 +1,49 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.form.ShowType; +import kd.bos.form.control.EntryGrid; +import kd.bos.form.events.HyperLinkClickEvent; +import kd.bos.form.events.HyperLinkClickListener; +import kd.bos.list.ListShowParameter; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.EventObject; +import java.util.List; + +/* + * 定额备用金初始台账表单插件 + */ +public class QuotaImprestLedgerBillPlugin extends AbstractBillPlugIn implements HyperLinkClickListener { + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + EntryGrid entryGrid = this.getView().getControl("zcgj_entryentity"); + entryGrid.addHyperClickListener(this); + } + + public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) { + String fieldName = hyperLinkClickEvent.getFieldName(); + if (StringUtils.equals(fieldName, "zcgj_usedquota")) { + //已使用 + List dailyLoanBillDataIds = new ArrayList<>(); + int rowIndex = hyperLinkClickEvent.getRowIndex(); + DynamicObjectCollection entryEntityCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_entryentity");//分录 + DynamicObject entryEntity = entryEntityCollection.get(rowIndex); + DynamicObjectCollection zcgj_dailyLoanBillDataIds = entryEntity.getDynamicObjectCollection("zcgj_dailyloanbilldatas");//被引用的借款单数据 + for (DynamicObject zcgj_dailyLoanBillDataId : zcgj_dailyLoanBillDataIds) { + dailyLoanBillDataIds.add((Long) zcgj_dailyLoanBillDataId.getDynamicObject("fbasedataid").getPkValue()); + } + ListShowParameter listShowParameter = new ListShowParameter(); + listShowParameter.setFormId("bos_list"); //列表界面 + listShowParameter.setBillFormId("er_dailyloanbill"); //单据的标识 + listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage); + dailyLoanBillDataIds.forEach(listShowParameter::addLinkQueryPkId); + this.getView().showForm(listShowParameter); + } + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/LoanSlipReserveFundReverserOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/LoanSlipReserveFundReverserOp.java index e3d0df3..100ac9c 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/LoanSlipReserveFundReverserOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/LoanSlipReserveFundReverserOp.java @@ -16,6 +16,7 @@ import java.time.LocalDate; import java.time.ZoneId; import java.util.ArrayList; import java.util.Date; +import java.util.Iterator; import java.util.List; /** @@ -61,6 +62,7 @@ public class LoanSlipReserveFundReverserOp extends AbstractOperationServicePlugI if (person == null) { continue; } + DynamicObjectCollection zcgj_dailyloanbilldatas = entryEntity.getDynamicObjectCollection("zcgj_dailyloanbilldatas");//借款单 if (person.getPkValue().equals(applier.getPkValue())) { if (operationKey.equals("submit")) { //提交 @@ -69,12 +71,23 @@ public class LoanSlipReserveFundReverserOp extends AbstractOperationServicePlugI BigDecimal zcgj_quota = entryEntity.getBigDecimal("zcgj_quota");//额度 BigDecimal zcgj_remainingquota = zcgj_quota.subtract(entryEntity.getBigDecimal("zcgj_usedquota"));//额度-已使用 entryEntity.set("zcgj_remainingquota", zcgj_remainingquota);//剩余额度 + DynamicObject newCurrency = new DynamicObject(zcgj_dailyloanbilldatas.getDynamicObjectType()); + newCurrency.set("fbasedataId", er_dailyLoanBill); + zcgj_dailyloanbilldatas.add(newCurrency); + entryEntity.set("zcgj_dailyloanbilldatas", zcgj_dailyloanbilldatas);//借款单 } else if (operationKey.equals("unsubmit") || operationKey.equals("unaudit")) { //撤销、反审核 BigDecimal zcgj_usedquota = entryEntity.getBigDecimal("zcgj_usedquota").subtract(er_dailyLoanBill.getBigDecimal("loanamount"));//已使用+借款金额 entryEntity.set("zcgj_usedquota", zcgj_usedquota);//已使用 BigDecimal zcgj_remainingquota = entryEntity.getBigDecimal("zcgj_quota").subtract(entryEntity.getBigDecimal("zcgj_usedquota"));//额度-已使用 entryEntity.set("zcgj_remainingquota", zcgj_remainingquota);//剩余额度 + Iterator iterator = zcgj_dailyloanbilldatas.iterator(); + while (iterator.hasNext()) { + DynamicObject dynamicObject = iterator.next(); + if (er_dailyLoanBill.get("billno").equals(dynamicObject.getDynamicObject("fbasedataid").get("billno"))) { + iterator.remove(); + } + } } break; } @@ -100,6 +113,7 @@ public class LoanSlipReserveFundReverserOp extends AbstractOperationServicePlugI // DynamicObject person = entryEntity.getDynamicObject("zcgj_person");//人员 DynamicObject zcgj_personType = entryEntity.getDynamicObject("zcgj_persontype");//人员类型 if (zcgj_personType != null && zcgj_personType.getString("number").equals("项目筹备")) { + DynamicObjectCollection zcgj_dailyloanbilldatas = entryEntity.getDynamicObjectCollection("zcgj_dailyloanbilldatas");//借款单 if (operationKey.equals("submit")) { //提交 BigDecimal zcgj_usedquota = entryEntity.getBigDecimal("zcgj_usedquota").add(loanAmount);//已使用+借款金额 @@ -107,12 +121,23 @@ public class LoanSlipReserveFundReverserOp extends AbstractOperationServicePlugI BigDecimal zcgj_quota = entryEntity.getBigDecimal("zcgj_quota");//额度 BigDecimal zcgj_remainingquota = zcgj_quota.subtract(entryEntity.getBigDecimal("zcgj_usedquota"));//额度-已使用 entryEntity.set("zcgj_remainingquota", zcgj_remainingquota);//剩余额度 + DynamicObject newCurrency = new DynamicObject(zcgj_dailyloanbilldatas.getDynamicObjectType()); + newCurrency.set("fbasedataId", er_dailyLoanBill); + zcgj_dailyloanbilldatas.add(newCurrency); + entryEntity.set("zcgj_dailyloanbilldatas", zcgj_dailyloanbilldatas);//借款单 } else if (operationKey.equals("unsubmit") || operationKey.equals("unaudit")) { //撤销、反审核 BigDecimal zcgj_usedquota = entryEntity.getBigDecimal("zcgj_usedquota").subtract(er_dailyLoanBill.getBigDecimal("loanamount"));//已使用+借款金额 entryEntity.set("zcgj_usedquota", zcgj_usedquota);//已使用 BigDecimal zcgj_remainingquota = entryEntity.getBigDecimal("zcgj_quota").subtract(entryEntity.getBigDecimal("zcgj_usedquota"));//额度-已使用 entryEntity.set("zcgj_remainingquota", zcgj_remainingquota);//剩余额度 + Iterator iterator = zcgj_dailyloanbilldatas.iterator(); + while (iterator.hasNext()) { + DynamicObject dynamicObject = iterator.next(); + if (er_dailyLoanBill.get("billno").equals(dynamicObject.getDynamicObject("fbasedataid").get("billno"))) { + iterator.remove(); + } + } } break; }