From 1dc2e9e50a18cda126ff8703a7f3463a35a0383a Mon Sep 17 00:00:00 2001 From: chenshaoxin <1981897232@qq.com> Date: Wed, 2 Jul 2025 17:42:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=99=88?= =?UTF-8?q?=E7=BB=8D=E9=91=AB=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/7/02=2017?= =?UTF-8?q?=EF=BC=9A00=20=E5=86=85=E5=AE=B9:=E5=8F=96=E6=B6=88=E9=94=81?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../list/ElectronicPayDealListPlugin.java | 71 ++++++++++++------- .../list/domain/OverTimeVarietyEnum.java | 2 +- 2 files changed, 47 insertions(+), 26 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/ElectronicPayDealListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/ElectronicPayDealListPlugin.java index 0e2bdc5..79efb67 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/ElectronicPayDealListPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/ElectronicPayDealListPlugin.java @@ -1,20 +1,25 @@ package shkd.sys.sys.plugin.list; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.datamodel.ListSelectedRow; +import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.form.IPageCache; import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.list.BillList; import kd.bos.list.IListView; import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; -import org.apache.commons.lang3.StringUtils; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.util.CollectionUtils; +import kd.bos.util.StringUtils; import shkd.sys.sys.plugin.list.domain.OverTimeVarietyEnum; import java.time.Duration; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.EventObject; -import java.util.List; -import java.util.Map; +import java.util.*; public class ElectronicPayDealListPlugin extends AbstractListPlugin { @@ -34,29 +39,45 @@ public class ElectronicPayDealListPlugin extends AbstractListPlugin { Map> qtqyrz = OverTimeVarietyEnum.qtqyrz; List list = qtqyrz.get(billFormId); if (list!=null&&list.contains(itemKey)){ - // 定义日期时间格式 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - IPageCache iPageCache =this.getPageCache(); - - String LastTime = iPageCache.get("LastTime"); - if(!StringUtils.isEmpty(LastTime)){ - // 获取当前时间 - LocalDateTime currentTime = LocalDateTime.now(); - LocalDateTime localDateTime = LocalDateTime.parse(LastTime, formatter); - // 计算当前时间与另一个时间的时间差 - Duration duration = Duration.between(localDateTime, currentTime); - - // 判断时间差是否超过 10 秒 - if (duration.getSeconds() <= 10) { - this.getView().showTipNotification("该按钮点击间隔需要超过十秒"); - evt.setCancel(true); - }else { - iPageCache.put("LastTime",currentTime.format(formatter)); + try { + // 获取勾选的单据ID + BillList billList = (BillList)this.getControl("billlistap"); + ListSelectedRowCollection selectedRows = billList.getSelectedRows(); + Set setIds = new HashSet<>(); + if (CollectionUtils.isNotEmpty(selectedRows)) { + for (ListSelectedRow selectedRow : selectedRows) { + setIds.add(toLong(selectedRow.getPrimaryKeyValue())); + } } - }else { - iPageCache.put("LastTime",LocalDateTime.now().format(formatter)); + List longs = new ArrayList<>(setIds); + for (int i = 0; i < longs.size(); i++) { + DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(longs.get(i), "cdm_electronic_pay_deal"); + dynamicObject.set("shkd_lock",false); + SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); + } + evt.setCancel(true); + this.getView().invokeOperation("refresh"); + } catch (Exception e) { + logger.error(e.getMessage()); } - } } + + public static Long toLong(Object o) { + if (o == null) { + return 0L; + } + String s = String.valueOf(o); + if (StringUtils.isEmpty(s)) { + return 0L; + } + try { + int index = s.indexOf("."); + index = index > -1 ? index : s.length(); + return Long.parseLong(s.substring(0, index)); + } catch (NumberFormatException e) { + logger.error("数字转化错误", e); + } + return 0L; + } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/domain/OverTimeVarietyEnum.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/domain/OverTimeVarietyEnum.java index 7750b35..6d764d1 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/domain/OverTimeVarietyEnum.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/domain/OverTimeVarietyEnum.java @@ -4,7 +4,7 @@ import java.util.*; public class OverTimeVarietyEnum { public static final Map> qtqyrz = new HashMap() {{ - put("cdm_electronic_pay_deal", new ArrayList<>(Arrays.asList("querynotepayable"))); + put("cdm_electronic_pay_deal", new ArrayList<>(Arrays.asList("unlock"))); put("银行借款合同", new ArrayList<>(Arrays.asList("其他权益融资"))); }}; }