From 714922e94508a9786f45073a41f873674c00be50 Mon Sep 17 00:00:00 2001 From: 16358 <1635849544@qq.com> Date: Wed, 25 Jun 2025 14:58:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E5=88=98?= =?UTF-8?q?=E6=A3=AE=E6=BE=B3=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/6/25=2014?= =?UTF-8?q?=EF=BC=9A57=20=E5=86=85=E5=AE=B9=EF=BC=9A=E4=B8=AD=E4=BB=8B?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E6=8B=9B=E6=A0=87=E9=81=B4=E9=80=89=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=B8=AD=E4=BB=8B=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=8F=82=E4=B8=8E=E5=90=8E=E7=BB=AD=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E4=B8=AD=E4=BB=8B=E6=9C=BA=E6=9E=84=E7=9A=84=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E9=80=BB=E8=BE=91=EF=BC=9B=20=20=20=20=E5=80=BA?= =?UTF-8?q?=E5=88=B8=E5=8F=91=E8=A1=8C/=E5=8F=91=E8=A1=8C=E8=AE=A1?= =?UTF-8?q?=E5=88=92=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=80=BA=E5=88=B8=E8=AF=84?= =?UTF-8?q?=E7=BA=A7=E6=9C=BA=E6=9E=84=E5=AD=97=E6=AE=B5=EF=BC=8C=E8=AF=A5?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=BB=8E=E8=AF=84=E7=BA=A7=E6=9C=BA=E6=9E=84?= =?UTF-8?q?=E5=8C=BA=E5=88=86=E5=87=BA=E6=9D=A5=EF=BC=8C=E5=8D=95=E7=8B=AC?= =?UTF-8?q?=E6=8C=81=E6=9C=89=E5=AF=B9=E5=BA=94=E7=9A=84=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tmc/InterMediarySelectListPlugin.java | 306 ++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/InterMediarySelectListPlugin.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/InterMediarySelectListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/InterMediarySelectListPlugin.java new file mode 100644 index 0000000..547a099 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/InterMediarySelectListPlugin.java @@ -0,0 +1,306 @@ +package shkd.sys.sys.plugin.tmc; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.entity.LocaleString; +import kd.bos.dataentity.resource.ResManager; +import kd.bos.dataentity.serialization.SerializationUtils; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.entity.datamodel.ListSelectedRow; +import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.filter.CommonFilterColumn; +import kd.bos.filter.FilterColumn; +import kd.bos.form.CloseCallBack; +import kd.bos.form.FormShowParameter; +import kd.bos.form.ShowType; +import kd.bos.form.control.Button; +import kd.bos.form.control.Control; +import kd.bos.form.control.events.BeforeClickEvent; +import kd.bos.form.events.*; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.ComboEdit; +import kd.bos.form.field.ComboItem; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.form.operate.AbstractOperate; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.list.BillList; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.tmc.bdim.common.enums.MidOrgType; +import kd.tmc.fbp.common.enums.BillStatusEnum; +import kd.tmc.fbp.common.helper.TmcDataServiceHelper; +import kd.tmc.fbp.common.util.EmptyUtil; +import kd.tmc.fbp.formplugin.list.AbstractTmcListPlugin; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author 16358 + * @date 2025/6/25 + */ +public class InterMediarySelectListPlugin extends AbstractFormPlugin implements BeforeF7SelectListener { + public InterMediarySelectListPlugin() { + } + + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit control = (BasedataEdit)this.getControl("e_midorgname"); + if (control != null) { + control.addBeforeF7SelectListener(this); + } + + this.addClickListeners(new String[]{"btnok"}); + } + + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String key = beforeF7SelectEvent.getProperty().getName(); + int index = beforeF7SelectEvent.getRow(); + DynamicObject dataEntity = this.getModel().getDataEntity(true); + switch (key) { + case "e_midorgname": + DynamicObjectCollection entities = dataEntity.getDynamicObjectCollection("entryentity"); + DynamicObject entry = (DynamicObject)entities.get(index); + String eMidOrgTypeWin = entry.getString("e_midorgtypewin"); + QFilter qFilter = new QFilter("orgtype", "=", eMidOrgTypeWin); + ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter(); + showParameter.getListFilterParameter().getQFilters().add(qFilter); + default: + } + } + + public void beforeFieldPostBack(BeforeFieldPostBackEvent e) { + super.beforeFieldPostBack(e); + Control source = (Control)e.getSource(); + String key = source.getKey(); + int rowIndex = e.getRowIndex(); + Object value = e.getValue(); + if ("e_fee".equals(key) && value == null) { + this.getModel().setValue("e_fee", BigDecimal.ZERO, rowIndex); + this.getView().updateView(key, rowIndex); + } + + } + + public void beforeBindData(EventObject e) { + super.beforeBindData(e); + Object pkId = this.getView().getFormShowParameter().getCustomParam("pkid"); + if (!EmptyUtil.isEmpty(pkId)) { + DynamicObject selectBill = TmcDataServiceHelper.loadSingle(pkId, "bdim_intermediaryselect"); + DynamicObjectCollection winningBidderEntries = selectBill.getDynamicObjectCollection("winningbidderentry"); + DynamicObjectCollection entryEntities = this.getModel().getEntryEntity("entryentity"); + Object currencyId = this.getView().getFormShowParameter().getCustomParam("currencyid"); + Long currency = null; + if (EmptyUtil.isNoEmpty(currencyId)) { + currency = Long.parseLong(currencyId.toString()); + } + + this.getModel().setValue("currency", currency); + if (winningBidderEntries.size() != 0) { + entryEntities.clear(); + } + + int i = 0; + Iterator var9 = winningBidderEntries.iterator(); + + while(var9.hasNext()) { + DynamicObject entry = (DynamicObject)var9.next(); + DynamicObject entryEntity = entryEntities.addNew(); + entryEntity.set("seq", i++); + entryEntity.set("e_midorgtypewin", entry.get("e_midorgtypewin")); + entryEntity.set("e_underwritertypewin", entry.get("e_underwritertypewin")); + entryEntity.set("e_midorgname", entry.get("e_midorgname")); + entryEntity.set("shkd_pglx1", entry.get("shkd_pglx1")); + entryEntity.set("e_openingdatewin", entry.get("e_openingdatewin")); + entryEntity.set("e_fee", entry.get("e_fee")); + entryEntity.set("e_feerate", entry.get("e_feerate")); + DynamicObjectCollection eBidWinningNoticeEntry = entry.getDynamicObjectCollection("e_bidwinningnotice"); + DynamicObjectCollection noticeEntryEntity = entryEntity.getDynamicObjectCollection("e_bidwinningnotice"); + noticeEntryEntity.clear(); + Iterator var14 = eBidWinningNoticeEntry.iterator(); + + while(var14.hasNext()) { + DynamicObject bidWinningNoticeEntry = (DynamicObject)var14.next(); + noticeEntryEntity.addNew().set("fbasedataid", bidWinningNoticeEntry.get("fbasedataid")); + } + + DynamicObjectCollection eContractEntry = entry.getDynamicObjectCollection("e_contract"); + DynamicObjectCollection eContractEntryEntity = entryEntity.getDynamicObjectCollection("e_contract"); + eContractEntryEntity.clear(); + Iterator var16 = eContractEntry.iterator(); + + while(var16.hasNext()) { + DynamicObject contractEntry = (DynamicObject)var16.next(); + eContractEntryEntity.addNew().set("fbasedataid", contractEntry.get("fbasedataid")); + } + + entryEntity.set("e_explainwin", entry.get("e_explainwin")); + } + + this.getView().updateView("entryentity"); + } + } + + public void afterBindData(EventObject e) { + super.afterBindData(e); + DynamicObjectCollection entryEntity = this.getModel().getDataEntity().getDynamicObjectCollection("entryentity"); + + for(int i = 0; i < entryEntity.size(); ++i) { + DynamicObject entry = (DynamicObject)entryEntity.get(i); + String eMidOrgType = entry.getString("e_midorgtypewin"); + this.midOrgTypeChange(eMidOrgType, i); + } + + Object midOrgType = this.getView().getFormShowParameter().getCustomParam("midOrgType"); + Set midOrgTypeList = (Set) SerializationUtils.fromJsonString(midOrgType.toString(), Set.class); + ComboEdit midOrgTypeWin = (ComboEdit)this.getView().getControl("e_midorgtypewin"); + List comboItems = new ArrayList(5); + Iterator var7 = midOrgTypeList.iterator(); + + while(var7.hasNext()) { + String mot = (String)var7.next(); + comboItems.add(new ComboItem(new LocaleString(MidOrgType.getName(mot)), mot)); + } + + midOrgTypeWin.setComboItems(comboItems); + } + + 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(); + int iRow = changeData[0].getRowIndex(); + if (newValue != oldValue) { + switch (key) { + case "e_midorgtypewin": + this.midOrgTypeChange((String)newValue, iRow); + this.getModel().setValue("e_underwritertypewin", (Object)null, iRow); + this.getModel().setValue("e_midorgname", (Object)null, iRow); + default: + } + } + } + + private void midOrgTypeChange(String newValue, int index) { + Boolean isUnderWriter = "underwriter".equals(newValue); + ((ComboEdit)this.getControl("e_underwritertypewin")).setMustInput(isUnderWriter); + this.getView().setEnable(isUnderWriter, index, new String[]{"e_underwritertypewin"}); + } + + public void beforeClick(BeforeClickEvent evt) { + super.beforeClick(evt); + Object source = evt.getSource(); + String key = ((Button)source).getKey(); + if ("btnok".equals(key)) { + Object pkId = this.getView().getFormShowParameter().getCustomParam("pkid"); + DynamicObject selectBill = TmcDataServiceHelper.loadSingle(pkId, "bdim_intermediaryselect"); + String billStatus = selectBill.getString("billstatus"); + if (!"C".equals(billStatus)) { + evt.setCancel(true); + this.getView().showTipNotification(ResManager.loadKDString("操作单据不为已审核状态,请检查。", "WinningBidderPlugin_5", "tmc-bdim-formplugin", new Object[0])); + return; + } + + DynamicObjectCollection entryEntities = this.getModel().getEntryEntity("entryentity"); + + for(int i = 0; i < entryEntities.size(); ++i) { + DynamicObject entry = (DynamicObject)entryEntities.get(i); + String eMidOrgTypeWin = entry.getString("e_midorgtypewin"); + String eUnderWriterTypeWin = entry.getString("e_underwritertypewin"); + if (EmptyUtil.isBlank(eMidOrgTypeWin)) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("第%s行:请填写”中介机构类型“。", "WinningBidderPlugin_4", "tmc-bdim-formplugin", new Object[0]), i + 1)); + return; + } + + if ("underwriter".equals(eMidOrgTypeWin) && EmptyUtil.isBlank(eUnderWriterTypeWin)) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("第%s行:”中介机构类型“为承销商时,”承销商类别“必填。", "WinningBidderPlugin_0", "tmc-bdim-formplugin", new Object[0]), i + 1)); + return; + } + + DynamicObject eMidOrgName = entry.getDynamicObject("e_midorgname"); + if (eMidOrgName == null) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("第%s行:请填写“机构名称”。", "WinningBidderPlugin_1", "tmc-bdim-formplugin", new Object[0]), i + 1)); + return; + } + + Date eOpeningDateWin = entry.getDate("e_openingdatewin"); + if (EmptyUtil.isEmpty(eOpeningDateWin)) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("第%s行:请填写“开标日期”。", "WinningBidderPlugin_2", "tmc-bdim-formplugin", new Object[0]), i + 1)); + return; + } + } + } + + } + + public void click(EventObject evt) { + super.click(evt); + Control control = (Control)evt.getSource(); + if (StringUtils.equals("btnok", control.getKey())) { + Object pkId = this.getView().getFormShowParameter().getCustomParam("pkid"); + DynamicObject selectBill = TmcDataServiceHelper.loadSingle(pkId, "bdim_intermediaryselect"); + DynamicObjectCollection winningBidderEntries = selectBill.getDynamicObjectCollection("winningbidderentry"); + DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("entryentity"); + winningBidderEntries.clear(); + int i = 0; + Iterator var8 = entryEntity.iterator(); + + while(var8.hasNext()) { + DynamicObject entry = (DynamicObject)var8.next(); + DynamicObject winningBidderEntry = winningBidderEntries.addNew(); + winningBidderEntry.set("seq", i++); + winningBidderEntry.set("e_midorgtypewin", entry.get("e_midorgtypewin")); + winningBidderEntry.set("e_underwritertypewin", entry.get("e_underwritertypewin")); + winningBidderEntry.set("e_midorgname", entry.get("e_midorgname")); + winningBidderEntry.set("shkd_pglx1", entry.get("shkd_pglx1")); + winningBidderEntry.set("e_openingdatewin", entry.get("e_openingdatewin")); + winningBidderEntry.set("e_fee", entry.get("e_fee")); + winningBidderEntry.set("e_feerate", entry.get("e_feerate")); + DynamicObjectCollection eBidWinningNoticeEntry = entry.getDynamicObjectCollection("e_bidwinningnotice"); + DynamicObjectCollection noticeEntryEntity = winningBidderEntry.getDynamicObjectCollection("e_bidwinningnotice"); + noticeEntryEntity.clear(); + Iterator var13 = eBidWinningNoticeEntry.iterator(); + + while(var13.hasNext()) { + DynamicObject bidWinningNoticeEntry = (DynamicObject)var13.next(); + noticeEntryEntity.addNew().set("fbasedataid", bidWinningNoticeEntry.get("fbasedataid")); + } + + DynamicObjectCollection eContractEntry = entry.getDynamicObjectCollection("e_contract"); + DynamicObjectCollection eContractEntryEntity = winningBidderEntry.getDynamicObjectCollection("e_contract"); + eContractEntryEntity.clear(); + Iterator var15 = eContractEntry.iterator(); + + while(var15.hasNext()) { + DynamicObject contractEntry = (DynamicObject)var15.next(); + eContractEntryEntity.addNew().set("fbasedataid", contractEntry.get("fbasedataid")); + } + + winningBidderEntry.set("e_explainwin", entry.get("e_explainwin")); + } + + if (entryEntity.size() == 0) { + selectBill.set("callbizstatus", "calling"); + } else { + selectBill.set("callbizstatus", "called"); + } + + SaveServiceHelper.save(new DynamicObject[]{selectBill}); + this.getView().close(); + } + + } +} \ No newline at end of file