feat:客户同步同步下单平台接口增加业务主体
This commit is contained in:
parent
b8f95ad456
commit
02539fc493
@ -1,8 +1,8 @@
|
|||||||
package com.yem.or.task;
|
package com.yem.or.task;
|
||||||
|
|
||||||
import com.yem.or.utils.OrderApiUtils;
|
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.task.YunZhiJaGetOpenidTask;
|
||||||
|
import com.yem.wm.utils.YEM;
|
||||||
import kd.bos.context.RequestContext;
|
import kd.bos.context.RequestContext;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.exception.KDException;
|
import kd.bos.exception.KDException;
|
||||||
@ -24,9 +24,8 @@ public class CustomerTask extends AbstractTask {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||||
Log log = LogFactory.getLog(YunZhiJaGetOpenidTask.class);
|
Log log = LogFactory.getLog(YunZhiJaGetOpenidTask.class);
|
||||||
QFilter qFilter = new QFilter("yem_checkboxfield", QCP.equals, false);
|
QFilter qFilter = new QFilter("status", QCP.equals, "C");
|
||||||
qFilter.and("status", QCP.equals, "C");
|
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_customer", "id,number,name,yem_checkboxfield,yem_torderid,group,yem_groupcustomers"
|
||||||
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_customer", "id,number,name,yem_checkboxfield,yem_torderid,group"
|
|
||||||
, new QFilter[]{qFilter});
|
, new QFilter[]{qFilter});
|
||||||
for (DynamicObject dynamicObject : dynamicObjects) {
|
for (DynamicObject dynamicObject : dynamicObjects) {
|
||||||
DynamicObject group = dynamicObject.getDynamicObject("group");
|
DynamicObject group = dynamicObject.getDynamicObject("group");
|
||||||
@ -37,13 +36,33 @@ public class CustomerTask extends AbstractTask {
|
|||||||
if (bd_customergroup.length > 0) {
|
if (bd_customergroup.length > 0) {
|
||||||
for (int i = 0; i < bd_customergroup.length; i++) {
|
for (int i = 0; i < bd_customergroup.length; i++) {
|
||||||
String number = dynamicObject.getString("number");
|
String number = dynamicObject.getString("number");
|
||||||
String replace = number.replace("-", "");
|
|
||||||
String name = dynamicObject.getString("name");
|
String name = dynamicObject.getString("name");
|
||||||
Map<String, String> 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<String, String> 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");
|
String msg = demands.get("msg");
|
||||||
if (msg == null) {
|
if (msg == null) {
|
||||||
String id = demands.get("id");
|
String id = demands.get("id");
|
||||||
if (!"".equals(id)) {
|
if (YEM.isNotEmpty(id)) {
|
||||||
dynamicObject.set("yem_torderid", id);
|
dynamicObject.set("yem_torderid", id);
|
||||||
dynamicObject.set("yem_checkboxfield", true);
|
dynamicObject.set("yem_checkboxfield", true);
|
||||||
SaveServiceHelper.update(dynamicObject);
|
SaveServiceHelper.update(dynamicObject);
|
||||||
|
@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.yem.wm.utils.YEM;
|
import com.yem.wm.utils.YEM;
|
||||||
import kd.bos.bill.BillShowParameter;
|
|
||||||
import kd.bos.data.BusinessDataReader;
|
import kd.bos.data.BusinessDataReader;
|
||||||
import kd.bos.dataentity.OperateOption;
|
import kd.bos.dataentity.OperateOption;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
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.ConvertOperationResult;
|
||||||
import kd.bos.entity.botp.runtime.PushArgs;
|
import kd.bos.entity.botp.runtime.PushArgs;
|
||||||
import kd.bos.entity.botp.runtime.SourceBillReport;
|
import kd.bos.entity.botp.runtime.SourceBillReport;
|
||||||
import kd.bos.entity.datamodel.IBillModel;
|
|
||||||
import kd.bos.entity.datamodel.IRefrencedataProvider;
|
import kd.bos.entity.datamodel.IRefrencedataProvider;
|
||||||
import kd.bos.entity.datamodel.ListSelectedRow;
|
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||||
import kd.bos.entity.operate.OperateOptionConst;
|
import kd.bos.entity.operate.OperateOptionConst;
|
||||||
import kd.bos.entity.operate.result.IOperateInfo;
|
import kd.bos.entity.operate.result.IOperateInfo;
|
||||||
import kd.bos.entity.operate.result.OperationResult;
|
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.Log;
|
||||||
import kd.bos.logging.LogFactory;
|
import kd.bos.logging.LogFactory;
|
||||||
import kd.bos.mvc.FormConfigFactory;
|
|
||||||
import kd.bos.mvc.SessionManager;
|
|
||||||
import kd.bos.orm.ORM;
|
import kd.bos.orm.ORM;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
@ -54,7 +48,9 @@ public class OrderApiUtils {
|
|||||||
public static Log log = LogFactory.getLog(OrderApiUtils.class);
|
public static Log log = LogFactory.getLog(OrderApiUtils.class);
|
||||||
public static String ENDPOINTS = "http://10.64.113.156";
|
public static String ENDPOINTS = "http://10.64.113.156";
|
||||||
// public static String ENDPOINT = "http://122.4.221.133:30080";
|
// 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
|
* 获取token
|
||||||
@ -424,8 +420,13 @@ public class OrderApiUtils {
|
|||||||
/**
|
/**
|
||||||
* 新增用户
|
* 新增用户
|
||||||
*/
|
*/
|
||||||
public static Map<String, String> demands(String data, String string) {
|
public static Map<String, String> demands(String username, String userNumber, DynamicObject groupcustomers, boolean isCreate, Long existId) {
|
||||||
final String requestUrl = ENDPOINTS + "/admin-api/system/user/create";
|
String requestUrl;
|
||||||
|
if (isCreate) {
|
||||||
|
requestUrl = ENDPOINTS + "/admin-api/system/user/create";
|
||||||
|
} else {
|
||||||
|
requestUrl = ENDPOINTS + "/admin-api/system/user/update";
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, String> headers = null;
|
Map<String, String> headers = null;
|
||||||
try {
|
try {
|
||||||
@ -439,10 +440,22 @@ public class OrderApiUtils {
|
|||||||
String accessToken = headers.get("token");
|
String accessToken = headers.get("token");
|
||||||
headers.put("Authorization", "Bearer " + (accessToken));
|
headers.put("Authorization", "Bearer " + (accessToken));
|
||||||
Map<String, Object> requestBody = new HashMap<>();
|
Map<String, Object> 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("password", "ensign@123");
|
||||||
requestBody.put("username", string);
|
requestBody.put("username", userNumber);
|
||||||
requestBody.put("deptId", "100");
|
requestBody.put("deptId", "100");
|
||||||
|
requestBody.put("groupCustomerId", groupUserId);
|
||||||
|
requestBody.put("groupCustomerNumber", groupName);
|
||||||
|
requestBody.put("groupCustomerName", name);
|
||||||
|
if (!isCreate) {
|
||||||
|
requestBody.put("id", existId);
|
||||||
|
}
|
||||||
String res = "";
|
String res = "";
|
||||||
|
|
||||||
|
|
||||||
@ -457,12 +470,13 @@ public class OrderApiUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
JSONObject jsonObject = JSONObject.parseObject(res);
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
||||||
Long id = 0L;
|
|
||||||
int code = jsonObject.getIntValue("code");
|
int code = jsonObject.getIntValue("code");
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
id = jsonObject.getLong("data");
|
Object data = jsonObject.get("data");
|
||||||
String ids = id.toString();
|
if (data instanceof Long) {
|
||||||
resStatus.put("id", ids);
|
String ids = data.toString();
|
||||||
|
resStatus.put("id", ids);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return resStatus;
|
return resStatus;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.yem.wm.bd.customer.from.Validator;
|
package com.yem.wm.bd.customer.from.Validator;
|
||||||
|
|
||||||
import com.yem.or.utils.OrderApiUtils;
|
import com.yem.or.utils.OrderApiUtils;
|
||||||
|
import com.yem.wm.utils.YEM;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.entity.ExtendedDataEntity;
|
import kd.bos.entity.ExtendedDataEntity;
|
||||||
import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
|
import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
|
||||||
@ -23,9 +24,9 @@ public class CustomerValidator extends AbstractValidator {
|
|||||||
ExtendedDataEntity[] dataEntities = this.getDataEntities();
|
ExtendedDataEntity[] dataEntities = this.getDataEntities();
|
||||||
for (ExtendedDataEntity dataEntitie : dataEntities) {
|
for (ExtendedDataEntity dataEntitie : dataEntities) {
|
||||||
DynamicObject mechanical = dataEntitie.getDataEntity();
|
DynamicObject mechanical = dataEntitie.getDataEntity();
|
||||||
boolean yemCheckboxfield = mechanical.getBoolean("yem_checkboxfield");
|
boolean isSynced = mechanical.getBoolean("yem_checkboxfield");
|
||||||
DynamicObject group = mechanical.getDynamicObject("group");
|
DynamicObject group = mechanical.getDynamicObject("group");
|
||||||
if (!yemCheckboxfield && group != null) {
|
if (group != null) {
|
||||||
long groupid = group.getLong("id");
|
long groupid = group.getLong("id");
|
||||||
QFilter qFilter = new QFilter("parent.number", QCP.equals, "11602");
|
QFilter qFilter = new QFilter("parent.number", QCP.equals, "11602");
|
||||||
QFilter qFilter1 = new QFilter("id", QCP.equals, groupid);
|
QFilter qFilter1 = new QFilter("id", QCP.equals, groupid);
|
||||||
@ -34,13 +35,33 @@ public class CustomerValidator extends AbstractValidator {
|
|||||||
, new QFilter[]{qFilter, qFilter1});
|
, new QFilter[]{qFilter, qFilter1});
|
||||||
if (dynamicObjects.length > 0) {
|
if (dynamicObjects.length > 0) {
|
||||||
String number = mechanical.getString("number");
|
String number = mechanical.getString("number");
|
||||||
String replace = number.replace("-", "");
|
|
||||||
String name = mechanical.getString("name");
|
String name = mechanical.getString("name");
|
||||||
Map<String, String> demands = OrderApiUtils.demands(name, replace);
|
DynamicObject groupcustomers = mechanical.getDynamicObject("yem_groupcustomers");
|
||||||
|
if (YEM.isEmpty(groupcustomers)) {
|
||||||
|
this.addErrorMessage(dataEntitie, String.format("请维护客户 [%s] 的业务主体", name));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Map<String, String> 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");
|
String msg = demands.get("msg");
|
||||||
if (msg == null) {
|
if (msg == null) {
|
||||||
String id = demands.get("id");
|
String id = demands.get("id");
|
||||||
if (!"".equals(id)) {
|
if (YEM.isNotEmpty(id)) {
|
||||||
mechanical.set("yem_torderid", id);
|
mechanical.set("yem_torderid", id);
|
||||||
mechanical.set("yem_checkboxfield", true);
|
mechanical.set("yem_checkboxfield", true);
|
||||||
SaveServiceHelper.update(mechanical);
|
SaveServiceHelper.update(mechanical);
|
||||||
@ -53,12 +74,7 @@ public class CustomerValidator extends AbstractValidator {
|
|||||||
this.addErrorMessage(dataEntitie, "当前客户不满足同步条件,禁止同步至下单平台!!!");
|
this.addErrorMessage(dataEntitie, "当前客户不满足同步条件,禁止同步至下单平台!!!");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (yemCheckboxfield) {
|
this.addErrorMessage(dataEntitie, "当前客户分组为空!!");
|
||||||
this.addErrorMessage(dataEntitie, "当前客户已同步下单平台!!");
|
|
||||||
} else if (group == null) {
|
|
||||||
this.addErrorMessage(dataEntitie, "当前客户分组为空!!");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user