From 02539fc4935dde59498ac873b2fb8cc3b98c9a53 Mon Sep 17 00:00:00 2001 From: zzs Date: Mon, 20 Jan 2025 10:48:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=A2=E6=88=B7=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=B8=8B=E5=8D=95=E5=B9=B3=E5=8F=B0=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E4=B8=9A=E5=8A=A1=E4=B8=BB=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yem/or/task/CustomerTask.java | 33 +++++++++++--- .../java/com/yem/or/utils/OrderApiUtils.java | 44 ++++++++++++------- .../from/Validator/CustomerValidator.java | 38 +++++++++++----- 3 files changed, 82 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/yem/or/task/CustomerTask.java b/src/main/java/com/yem/or/task/CustomerTask.java index 57b67fae..a6aebd94 100644 --- a/src/main/java/com/yem/or/task/CustomerTask.java +++ b/src/main/java/com/yem/or/task/CustomerTask.java @@ -1,8 +1,8 @@ package com.yem.or.task; import com.yem.or.utils.OrderApiUtils; -import com.yem.wm.bd.customer.from.Validator.CustomerValidator; import com.yem.wm.task.YunZhiJaGetOpenidTask; +import com.yem.wm.utils.YEM; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.exception.KDException; @@ -24,9 +24,8 @@ public class CustomerTask extends AbstractTask { @Override public void execute(RequestContext requestContext, Map map) throws KDException { Log log = LogFactory.getLog(YunZhiJaGetOpenidTask.class); - QFilter qFilter = new QFilter("yem_checkboxfield", QCP.equals, false); - qFilter.and("status", QCP.equals, "C"); - DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_customer", "id,number,name,yem_checkboxfield,yem_torderid,group" + QFilter qFilter = new QFilter("status", QCP.equals, "C"); + DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_customer", "id,number,name,yem_checkboxfield,yem_torderid,group,yem_groupcustomers" , new QFilter[]{qFilter}); for (DynamicObject dynamicObject : dynamicObjects) { DynamicObject group = dynamicObject.getDynamicObject("group"); @@ -37,13 +36,33 @@ public class CustomerTask extends AbstractTask { if (bd_customergroup.length > 0) { for (int i = 0; i < bd_customergroup.length; i++) { String number = dynamicObject.getString("number"); - String replace = number.replace("-", ""); String name = dynamicObject.getString("name"); - Map demands = OrderApiUtils.demands(name, replace); + DynamicObject groupcustomers = dynamicObject.getDynamicObject("yem_groupcustomers"); + if (YEM.isEmpty(groupcustomers)) { + continue; + } + if (!groupcustomers.containsProperty("yem_torderid")) { + groupcustomers = BusinessDataServiceHelper.loadSingleFromCache(groupcustomers.getDataEntityType().getName(), new QFilter[]{new QFilter("id", "=", groupcustomers.getPkValue())}); + String group_torderid = groupcustomers.getString("yem_torderid"); + if (YEM.isEmpty(group_torderid)) { + continue; + } + } + Map demands; + if (dynamicObject.getBoolean("yem_checkboxfield")) { + String torderid = dynamicObject.getString("yem_torderid"); + if(YEM.isEmpty(torderid)) { + continue; + } + Long id = Long.valueOf(torderid); + demands = OrderApiUtils.demands(name, number, groupcustomers, false, id); + } else { + demands = OrderApiUtils.demands(name, number, groupcustomers, true, null); + } String msg = demands.get("msg"); if (msg == null) { String id = demands.get("id"); - if (!"".equals(id)) { + if (YEM.isNotEmpty(id)) { dynamicObject.set("yem_torderid", id); dynamicObject.set("yem_checkboxfield", true); SaveServiceHelper.update(dynamicObject); diff --git a/src/main/java/com/yem/or/utils/OrderApiUtils.java b/src/main/java/com/yem/or/utils/OrderApiUtils.java index 85903d6a..7c6b5307 100644 --- a/src/main/java/com/yem/or/utils/OrderApiUtils.java +++ b/src/main/java/com/yem/or/utils/OrderApiUtils.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.yem.wm.utils.YEM; -import kd.bos.bill.BillShowParameter; import kd.bos.data.BusinessDataReader; import kd.bos.dataentity.OperateOption; import kd.bos.dataentity.entity.DynamicObject; @@ -15,18 +14,13 @@ import kd.bos.entity.MainEntityType; import kd.bos.entity.botp.runtime.ConvertOperationResult; import kd.bos.entity.botp.runtime.PushArgs; import kd.bos.entity.botp.runtime.SourceBillReport; -import kd.bos.entity.datamodel.IBillModel; import kd.bos.entity.datamodel.IRefrencedataProvider; import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.operate.OperateOptionConst; import kd.bos.entity.operate.result.IOperateInfo; import kd.bos.entity.operate.result.OperationResult; -import kd.bos.exception.KDBizException; -import kd.bos.form.IFormView; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; -import kd.bos.mvc.FormConfigFactory; -import kd.bos.mvc.SessionManager; import kd.bos.orm.ORM; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; @@ -54,7 +48,9 @@ public class OrderApiUtils { public static Log log = LogFactory.getLog(OrderApiUtils.class); public static String ENDPOINTS = "http://10.64.113.156"; // public static String ENDPOINT = "http://122.4.221.133:30080"; -// public static final String LOCAL_DEBUG_ENDPOINT = "http://127.0.0.1:48080"; + + // 本地测试环境 +// public static final String ENDPOINTS = "http://127.0.0.1:48080"; /** * 获取token @@ -424,8 +420,13 @@ public class OrderApiUtils { /** * 新增用户 */ - public static Map demands(String data, String string) { - final String requestUrl = ENDPOINTS + "/admin-api/system/user/create"; + public static Map demands(String username, String userNumber, DynamicObject groupcustomers, boolean isCreate, Long existId) { + String requestUrl; + if (isCreate) { + requestUrl = ENDPOINTS + "/admin-api/system/user/create"; + } else { + requestUrl = ENDPOINTS + "/admin-api/system/user/update"; + } Map headers = null; try { @@ -439,10 +440,22 @@ public class OrderApiUtils { String accessToken = headers.get("token"); headers.put("Authorization", "Bearer " + (accessToken)); Map requestBody = new HashMap<>(); - requestBody.put("nickname", data); + if (!groupcustomers.containsProperty("yem_torderid") || !groupcustomers.containsProperty("number") || !groupcustomers.containsProperty("name")) { + groupcustomers = BusinessDataServiceHelper.loadSingleFromCache(groupcustomers.getDataEntityType().getName(), new QFilter[]{new QFilter("id", "=", groupcustomers.getPkValue())}); + } + String groupUserId = groupcustomers.getString("yem_torderid"); + String groupName = groupcustomers.getString("number"); + String name = groupcustomers.getString("name"); + requestBody.put("nickname", username); requestBody.put("password", "ensign@123"); - requestBody.put("username", string); + requestBody.put("username", userNumber); requestBody.put("deptId", "100"); + requestBody.put("groupCustomerId", groupUserId); + requestBody.put("groupCustomerNumber", groupName); + requestBody.put("groupCustomerName", name); + if (!isCreate) { + requestBody.put("id", existId); + } String res = ""; @@ -457,12 +470,13 @@ public class OrderApiUtils { } JSONObject jsonObject = JSONObject.parseObject(res); - Long id = 0L; int code = jsonObject.getIntValue("code"); if (code == 0) { - id = jsonObject.getLong("data"); - String ids = id.toString(); - resStatus.put("id", ids); + Object data = jsonObject.get("data"); + if (data instanceof Long) { + String ids = data.toString(); + resStatus.put("id", ids); + } } return resStatus; } else { diff --git a/src/main/java/com/yem/wm/bd/customer/from/Validator/CustomerValidator.java b/src/main/java/com/yem/wm/bd/customer/from/Validator/CustomerValidator.java index 80772200..a26dd651 100644 --- a/src/main/java/com/yem/wm/bd/customer/from/Validator/CustomerValidator.java +++ b/src/main/java/com/yem/wm/bd/customer/from/Validator/CustomerValidator.java @@ -1,6 +1,7 @@ package com.yem.wm.bd.customer.from.Validator; import com.yem.or.utils.OrderApiUtils; +import com.yem.wm.utils.YEM; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.ExtendedDataEntity; import kd.bos.entity.plugin.args.EndOperationTransactionArgs; @@ -23,9 +24,9 @@ public class CustomerValidator extends AbstractValidator { ExtendedDataEntity[] dataEntities = this.getDataEntities(); for (ExtendedDataEntity dataEntitie : dataEntities) { DynamicObject mechanical = dataEntitie.getDataEntity(); - boolean yemCheckboxfield = mechanical.getBoolean("yem_checkboxfield"); + boolean isSynced = mechanical.getBoolean("yem_checkboxfield"); DynamicObject group = mechanical.getDynamicObject("group"); - if (!yemCheckboxfield && group != null) { + if (group != null) { long groupid = group.getLong("id"); QFilter qFilter = new QFilter("parent.number", QCP.equals, "11602"); QFilter qFilter1 = new QFilter("id", QCP.equals, groupid); @@ -34,13 +35,33 @@ public class CustomerValidator extends AbstractValidator { , new QFilter[]{qFilter, qFilter1}); if (dynamicObjects.length > 0) { String number = mechanical.getString("number"); - String replace = number.replace("-", ""); String name = mechanical.getString("name"); - Map demands = OrderApiUtils.demands(name, replace); + DynamicObject groupcustomers = mechanical.getDynamicObject("yem_groupcustomers"); + if (YEM.isEmpty(groupcustomers)) { + this.addErrorMessage(dataEntitie, String.format("请维护客户 [%s] 的业务主体", name)); + continue; + } + Map demands; + + if (!groupcustomers.containsProperty("yem_torderid")) { + groupcustomers = BusinessDataServiceHelper.loadSingleFromCache(groupcustomers.getDataEntityType().getName(), new QFilter[]{new QFilter("id", "=", groupcustomers.getPkValue())}); + String group_torderid = groupcustomers.getString("yem_torderid"); + if (YEM.isEmpty(group_torderid)) { + this.addErrorMessage(dataEntitie, String.format("客户 [%s] 的业务主体 [%s] 未同步,请先同步业务主体至下单平台", name, groupcustomers.getString("name"))); + continue; + } + } + String torderid = mechanical.getString("yem_torderid"); + Long existId = Long.valueOf(torderid); + if (isSynced) { + demands = OrderApiUtils.demands(name, number, groupcustomers, false, existId); + } else { + demands = OrderApiUtils.demands(name, number, groupcustomers, true, null); + } String msg = demands.get("msg"); if (msg == null) { String id = demands.get("id"); - if (!"".equals(id)) { + if (YEM.isNotEmpty(id)) { mechanical.set("yem_torderid", id); mechanical.set("yem_checkboxfield", true); SaveServiceHelper.update(mechanical); @@ -53,12 +74,7 @@ public class CustomerValidator extends AbstractValidator { this.addErrorMessage(dataEntitie, "当前客户不满足同步条件,禁止同步至下单平台!!!"); } } else { - if (yemCheckboxfield) { - this.addErrorMessage(dataEntitie, "当前客户已同步下单平台!!"); - } else if (group == null) { - this.addErrorMessage(dataEntitie, "当前客户分组为空!!"); - } - + this.addErrorMessage(dataEntitie, "当前客户分组为空!!"); } } }