From 0b0c4580cb0baafe05d9fb3f6ede9159758c915c Mon Sep 17 00:00:00 2001 From: weiyunlong Date: Thu, 17 Apr 2025 15:55:32 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96OA=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit S --- .../button/SupplierInfoFixeButtonPlugin.java | 209 ++++++++++-------- .../resm/opplugin/PushOASupplierOPPlugin.java | 2 +- main/java/shkd/utils/OAUtils.java | 1 + 3 files changed, 118 insertions(+), 94 deletions(-) diff --git a/main/java/shkd/repc/resm/button/SupplierInfoFixeButtonPlugin.java b/main/java/shkd/repc/resm/button/SupplierInfoFixeButtonPlugin.java index 98b2986..7432577 100644 --- a/main/java/shkd/repc/resm/button/SupplierInfoFixeButtonPlugin.java +++ b/main/java/shkd/repc/resm/button/SupplierInfoFixeButtonPlugin.java @@ -12,6 +12,7 @@ import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.sdk.plugin.Plugin; +import shkd.utils.DobeDWUtils; import java.util.Map; @@ -23,7 +24,6 @@ public class SupplierInfoFixeButtonPlugin extends AbstractListPlugin implements private final static Log Logger = LogFactory.getLog(SupplierInfoFixeButtonPlugin.class); - @Override public void itemClick(ItemClickEvent evt) { super.itemClick(evt); @@ -35,109 +35,132 @@ public class SupplierInfoFixeButtonPlugin extends AbstractListPlugin implements // 1. 查询所有已审核、可用状态的正式供应商 QFilter qFilter = new QFilter("status", QCP.equals, "C") - .and(new QFilter("enable", QCP.equals, "1")); + .and(new QFilter("enable", QCP.equals, "1")).and(new QFilter("qeug_oacode", QCP.not_equals, "")); Map supplierMap = BusinessDataServiceHelper.loadFromCache( "resm_official_supplier", qFilter.toArray()); - if (supplierMap == null || supplierMap.isEmpty()) { this.getView().showMessage("没有找到符合条件的供应商数据"); return; } - - // 加载默认供应商分类 - DynamicObject defaultGroup = BusinessDataServiceHelper.loadSingle( - "bd_suppliergroup", - new QFilter("number", QCP.equals, "GYSFL-202410-08").toArray()); - - // 初始化消息构建器 - StringBuilder successMessage = new StringBuilder("成功修复以下供应商的分录数据:\n"); - StringBuilder errorMessage = new StringBuilder("以下供应商处理失败:\n"); - - int successCount = 0; - int skipCount = 0; - int errorCount = 0; - for (DynamicObject dynamicObject : supplierMap.values()) { - String supplierNumber = dynamicObject.getString("number"); - + String number = ""; try { - boolean hasGroup = !dynamicObject.getDynamicObjectCollection("apt_group").isEmpty(); - DynamicObjectCollection entry_org = dynamicObject.getDynamicObjectCollection("entry_org"); - - if (entry_org == null || entry_org.isEmpty()) { - skipCount++; - continue; - } - - boolean needProcess = false; - - // 检查是否需要处理 - for (DynamicObject object : entry_org) { - DynamicObjectCollection entry_org_group = object.getDynamicObjectCollection("entry_org_group"); - if (entry_org_group == null || entry_org_group.isEmpty()) { - needProcess = true; - break; - } - } - - if (!needProcess) { - skipCount++; - continue; - } - - // 处理数据 - for (DynamicObject object : entry_org) { - DynamicObjectCollection entry_org_group = object.getDynamicObjectCollection("entry_org_group"); - if (entry_org_group == null || entry_org_group.isEmpty()) { - if (hasGroup) { - for (DynamicObject group : dynamicObject.getDynamicObjectCollection("apt_group")) { - DynamicObject supplierObj = group.getDynamicObject("fbasedataid"); - DynamicObject newObject = entry_org_group.addNew(); - newObject.set("suppliergroup", supplierObj); - newObject.set("examstatus", "NOT_EXAM"); - newObject.set("qualifiedstatus", "1"); - newObject.set("frozenstatus", "1"); - } - } else { - DynamicObject newObject = entry_org_group.addNew(); - newObject.set("suppliergroup", defaultGroup); - newObject.set("examstatus", "NOT_EXAM"); - newObject.set("qualifiedstatus", "1"); - newObject.set("frozenstatus", "1"); - } - } - } - - // 保存数据 + number = dynamicObject.getString("number"); + String qeug_oacode = dynamicObject.getString("qeug_oacode"); + dynamicObject.set("number", qeug_oacode); SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); - successCount++; - successMessage.append(supplierNumber).append("\n"); - - } catch (Exception e) { - errorCount++; - errorMessage.append(supplierNumber) - .append(" - 错误原因: ") - .append(e.getMessage()) - .append("\n"); - Logger.error("修复供应商数据失败: " + supplierNumber, e); + DobeDWUtils.saveLog(qeug_oacode,"刷新供应商数据(OAid)",null,null,true,"更新金蝶供应商编码"); + }catch (Exception e) { + Logger.error("修复供应商数据失败: " + number, e); + DobeDWUtils.saveLog(number,"刷新供应商数据(OAid)",null,e.toString(),false,"更新金蝶供应商编码"); } + } - // 构建最终消息 - StringBuilder finalMessage = new StringBuilder(); - finalMessage.append("处理完成!\n") - .append("成功处理: ").append(successCount).append("条\n") - .append("跳过处理: ").append(skipCount).append("条\n") - .append("处理失败: ").append(errorCount).append("条\n\n"); - - if (successCount > 0) { - finalMessage.append(successMessage.toString()).append("\n"); - } - - if (errorCount > 0) { - finalMessage.append(errorMessage.toString()); - } - - this.getView().showMessage(finalMessage.toString()); +// QFilter qFilter = new QFilter("status", QCP.equals, "C") +// .and(new QFilter("enable", QCP.equals, "1")); +// Map supplierMap = BusinessDataServiceHelper.loadFromCache( +// "resm_official_supplier", qFilter.toArray()); +// +// if (supplierMap == null || supplierMap.isEmpty()) { +// this.getView().showMessage("没有找到符合条件的供应商数据"); +// return; +// } +// +// // 加载默认供应商分类 +// DynamicObject defaultGroup = BusinessDataServiceHelper.loadSingle( +// "bd_suppliergroup", +// new QFilter("number", QCP.equals, "GYSFL-202410-08").toArray()); +// +// // 初始化消息构建器 +// StringBuilder successMessage = new StringBuilder("成功修复以下供应商的分录数据:\n"); +// StringBuilder errorMessage = new StringBuilder("以下供应商处理失败:\n"); +// +// int successCount = 0; +// int skipCount = 0; +// int errorCount = 0; +// +// for (DynamicObject dynamicObject : supplierMap.values()) { +// String supplierNumber = dynamicObject.getString("number"); +// +// try { +// boolean hasGroup = !dynamicObject.getDynamicObjectCollection("apt_group").isEmpty(); +// DynamicObjectCollection entry_org = dynamicObject.getDynamicObjectCollection("entry_org"); +// +// if (entry_org == null || entry_org.isEmpty()) { +// skipCount++; +// continue; +// } +// +// boolean needProcess = false; +// +// // 检查是否需要处理 +// for (DynamicObject object : entry_org) { +// DynamicObjectCollection entry_org_group = object.getDynamicObjectCollection("entry_org_group"); +// if (entry_org_group == null || entry_org_group.isEmpty()) { +// needProcess = true; +// break; +// } +// } +// +// if (!needProcess) { +// skipCount++; +// continue; +// } +// +// // 处理数据 +// for (DynamicObject object : entry_org) { +// DynamicObjectCollection entry_org_group = object.getDynamicObjectCollection("entry_org_group"); +// if (entry_org_group == null || entry_org_group.isEmpty()) { +// if (hasGroup) { +// for (DynamicObject group : dynamicObject.getDynamicObjectCollection("apt_group")) { +// DynamicObject supplierObj = group.getDynamicObject("fbasedataid"); +// DynamicObject newObject = entry_org_group.addNew(); +// newObject.set("suppliergroup", supplierObj); +// newObject.set("examstatus", "NOT_EXAM"); +// newObject.set("qualifiedstatus", "1"); +// newObject.set("frozenstatus", "1"); +// } +// } else { +// DynamicObject newObject = entry_org_group.addNew(); +// newObject.set("suppliergroup", defaultGroup); +// newObject.set("examstatus", "NOT_EXAM"); +// newObject.set("qualifiedstatus", "1"); +// newObject.set("frozenstatus", "1"); +// } +// } +// } +// +// // 保存数据 +// SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); +// successCount++; +// successMessage.append(supplierNumber).append("\n"); +// +// } catch (Exception e) { +// errorCount++; +// errorMessage.append(supplierNumber) +// .append(" - 错误原因: ") +// .append(e.getMessage()) +// .append("\n"); +// Logger.error("修复供应商数据失败: " + supplierNumber, e); +// } +// } +// +// // 构建最终消息 +// StringBuilder finalMessage = new StringBuilder(); +// finalMessage.append("处理完成!\n") +// .append("成功处理: ").append(successCount).append("条\n") +// .append("跳过处理: ").append(skipCount).append("条\n") +// .append("处理失败: ").append(errorCount).append("条\n\n"); +// +// if (successCount > 0) { +// finalMessage.append(successMessage.toString()).append("\n"); +// } +// +// if (errorCount > 0) { +// finalMessage.append(errorMessage.toString()); +// } +// +// this.getView().showMessage(finalMessage.toString()); } } \ No newline at end of file diff --git a/main/java/shkd/repc/resm/opplugin/PushOASupplierOPPlugin.java b/main/java/shkd/repc/resm/opplugin/PushOASupplierOPPlugin.java index d63c1e8..20f61d5 100644 --- a/main/java/shkd/repc/resm/opplugin/PushOASupplierOPPlugin.java +++ b/main/java/shkd/repc/resm/opplugin/PushOASupplierOPPlugin.java @@ -105,7 +105,7 @@ public class PushOASupplierOPPlugin extends AbstractOperationServicePlugIn { customerBody.put("legalbody", legalbody);// "法人", customerBody.put("createTime", createtime);// "创建时间:例如2024-06-02 17:27:10", customerBody.put("updateTime", updatetime);//"更新时间:例如2024-06-02 17:27:10", - customerBody.put("def1", "租赁客户");//"客商类别:默认租赁客户", + customerBody.put("def1", "采购供应商");//"客商类别:默认租赁客户", JSONArray custBankaccMapBody = new JSONArray(); //银行信息 diff --git a/main/java/shkd/utils/OAUtils.java b/main/java/shkd/utils/OAUtils.java index 6436f5a..c210b9d 100644 --- a/main/java/shkd/utils/OAUtils.java +++ b/main/java/shkd/utils/OAUtils.java @@ -99,6 +99,7 @@ public class OAUtils { DynamicObject officialSupplier = BusinessDataServiceHelper.loadSingle(RESM_OFFICIAL_SUPPLIER, new QFilter[]{q}); if (officialSupplier != null) { officialSupplier.set("qeug_oacode", id); + officialSupplier.set("number", id); SaveServiceHelper.save(new DynamicObject[]{officialSupplier}); } }