parent
840b050bdd
commit
fed462d2c6
@ -47,25 +47,51 @@ public class CustomerTask extends AbstractTask {
|
|||||||
QFilter qFilter = new QFilter("status", QCP.equals, "C");
|
QFilter qFilter = new QFilter("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,yem_groupcustomers"
|
||||||
, new QFilter[]{qFilter});
|
, new QFilter[]{qFilter});
|
||||||
for (DynamicObject dynamicObject : dynamicObjects) {
|
for (DynamicObject customer : dynamicObjects) {
|
||||||
String number = dynamicObject.getString("number");
|
|
||||||
String name = dynamicObject.getString("name");
|
DynamicObject groupcustomers = customer.getDynamicObject("yem_groupcustomers");
|
||||||
DynamicObject groupcustomers = dynamicObject.getDynamicObject("yem_groupcustomers");
|
|
||||||
if (YEM.isEmpty(groupcustomers)) {
|
if (YEM.isEmpty(groupcustomers)) {
|
||||||
log.error(" [SKIP] 业务主体为空 ");
|
log.error(" [SKIP] 业务主体为空 ");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map<String, String> demands;
|
||||||
|
|
||||||
|
// 同步业务主体
|
||||||
if (!groupcustomers.containsProperty("yem_torderid")) {
|
if (!groupcustomers.containsProperty("yem_torderid")) {
|
||||||
groupcustomers = BusinessDataServiceHelper.loadSingleFromCache(groupcustomers.getDataEntityType().getName(), new QFilter[]{new QFilter("id", "=", groupcustomers.getPkValue())});
|
groupcustomers = BusinessDataServiceHelper.loadSingleFromCache(groupcustomers.getDataEntityType().getName(), new QFilter[]{new QFilter("id", "=", groupcustomers.getPkValue())});
|
||||||
String group_torderid = groupcustomers.getString("yem_torderid");
|
boolean isGroupSynced = groupcustomers.getBoolean("yem_checkboxfield");
|
||||||
if (YEM.isEmpty(group_torderid)) {
|
String number = groupcustomers.getString("number");
|
||||||
log.error(" [SKIP] 业务主体未同步 ");
|
String name = groupcustomers.getString("name");
|
||||||
|
if (isGroupSynced) {
|
||||||
|
log.info("业务主体已同步,进行更新");
|
||||||
|
String torderid = groupcustomers.getString("yem_torderid");
|
||||||
|
Long existId = Long.valueOf(torderid);
|
||||||
|
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, false, existId);
|
||||||
|
} else {
|
||||||
|
log.info("业务主体未同步,进行同步");
|
||||||
|
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, true, null);
|
||||||
|
}
|
||||||
|
if (demands.containsKey("id")) {
|
||||||
|
String id = demands.get("id");
|
||||||
|
groupcustomers.set("yem_torderid", id);
|
||||||
|
groupcustomers.set("yem_checkboxfield", true);
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{groupcustomers});
|
||||||
|
log.info("业务主体已同步");
|
||||||
|
} else if (demands.containsKey("msg")) {
|
||||||
|
throw new KDBizException("同步当前客户业务主体异常: " + demands.get("msg"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 业务主体和客户相同,跳过
|
||||||
|
if (customer.getLong("id") == groupcustomers.getLong("id")) {
|
||||||
|
log.info("业务主体和客户相同,跳过");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Map<String, String> demands;
|
String number = customer.getString("number");
|
||||||
if (dynamicObject.getBoolean("yem_checkboxfield")) {
|
String name = customer.getString("name");
|
||||||
String torderid = dynamicObject.getString("yem_torderid");
|
if (customer.getBoolean("yem_checkboxfield")) {
|
||||||
|
String torderid = customer.getString("yem_torderid");
|
||||||
if (YEM.isEmpty(torderid)) {
|
if (YEM.isEmpty(torderid)) {
|
||||||
log.error(" [SKIP] 已同步但ID为空 ");
|
log.error(" [SKIP] 已同步但ID为空 ");
|
||||||
continue;
|
continue;
|
||||||
@ -78,9 +104,9 @@ public class CustomerTask extends AbstractTask {
|
|||||||
log.info(demands.toString());
|
log.info(demands.toString());
|
||||||
if (demands.containsKey("id")) {
|
if (demands.containsKey("id")) {
|
||||||
String id = demands.get("id");
|
String id = demands.get("id");
|
||||||
dynamicObject.set("yem_torderid", id);
|
customer.set("yem_torderid", id);
|
||||||
dynamicObject.set("yem_checkboxfield", true);
|
customer.set("yem_checkboxfield", true);
|
||||||
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
SaveServiceHelper.save(new DynamicObject[]{customer});
|
||||||
} else if (demands.containsKey("msg")) {
|
} else if (demands.containsKey("msg")) {
|
||||||
log.error(demands.get("msg"));
|
log.error(demands.get("msg"));
|
||||||
}
|
}
|
||||||
|
@ -39,27 +39,35 @@ public class CustomerValidator extends AbstractValidator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (ExtendedDataEntity dataEntitie : dataEntities) {
|
for (ExtendedDataEntity dataEntitie : dataEntities) {
|
||||||
DynamicObject mechanical = dataEntitie.getDataEntity();
|
DynamicObject customer = dataEntitie.getDataEntity();
|
||||||
boolean isSynced = mechanical.getBoolean("yem_checkboxfield");
|
DynamicObject groupcustomers = customer.getDynamicObject("yem_groupcustomers");
|
||||||
String number = mechanical.getString("number");
|
String name = customer.getString("name");
|
||||||
String name = mechanical.getString("name");
|
|
||||||
DynamicObject groupcustomers = mechanical.getDynamicObject("yem_groupcustomers");
|
|
||||||
if (YEM.isEmpty(groupcustomers)) {
|
if (YEM.isEmpty(groupcustomers)) {
|
||||||
this.addErrorMessage(dataEntitie, String.format("请维护客户 [%s] 的业务主体", name));
|
this.addErrorMessage(dataEntitie, String.format("请维护客户 [%s] 的业务主体", name));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
doSyncCustomer(customer, accessToken);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步客户至下单平台,如果业务主体为同步,先同步业务主体
|
||||||
|
* @param customer 当前客户
|
||||||
|
* @param accessToken 访问Token
|
||||||
|
*/
|
||||||
|
public static void doSyncCustomer(DynamicObject customer, String accessToken) {
|
||||||
|
boolean isSynced = customer.getBoolean("yem_checkboxfield");
|
||||||
|
|
||||||
|
DynamicObject groupcustomers = customer.getDynamicObject("yem_groupcustomers");
|
||||||
Map<String, String> demands;
|
Map<String, String> demands;
|
||||||
|
|
||||||
if (!groupcustomers.containsProperty("yem_torderid")) {
|
if (!groupcustomers.containsProperty("yem_torderid")) {
|
||||||
groupcustomers = BusinessDataServiceHelper.loadSingleFromCache(groupcustomers.getDataEntityType().getName(), new QFilter[]{new QFilter("id", "=", groupcustomers.getPkValue())});
|
groupcustomers = BusinessDataServiceHelper.loadSingleFromCache(groupcustomers.getDataEntityType().getName(), new QFilter[]{new QFilter("id", "=", groupcustomers.getPkValue())});
|
||||||
String group_torderid = groupcustomers.getString("yem_torderid");
|
boolean isGroupSynced = groupcustomers.getBoolean("yem_checkboxfield");
|
||||||
if (YEM.isEmpty(group_torderid)) {
|
String number = groupcustomers.getString("number");
|
||||||
this.addErrorMessage(dataEntitie, String.format("客户 [%s] 的业务主体 [%s] 未同步,请先同步业务主体至下单平台", name, groupcustomers.getString("name")));
|
String name = groupcustomers.getString("name");
|
||||||
continue;
|
if (isGroupSynced) {
|
||||||
}
|
String torderid = groupcustomers.getString("yem_torderid");
|
||||||
}
|
|
||||||
if (isSynced) {
|
|
||||||
String torderid = mechanical.getString("yem_torderid");
|
|
||||||
Long existId = Long.valueOf(torderid);
|
Long existId = Long.valueOf(torderid);
|
||||||
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, false, existId);
|
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, false, existId);
|
||||||
} else {
|
} else {
|
||||||
@ -67,12 +75,34 @@ public class CustomerValidator extends AbstractValidator {
|
|||||||
}
|
}
|
||||||
if (demands.containsKey("id")) {
|
if (demands.containsKey("id")) {
|
||||||
String id = demands.get("id");
|
String id = demands.get("id");
|
||||||
mechanical.set("yem_torderid", id);
|
groupcustomers.set("yem_torderid", id);
|
||||||
mechanical.set("yem_checkboxfield", true);
|
groupcustomers.set("yem_checkboxfield", true);
|
||||||
SaveServiceHelper.save(new DynamicObject[]{mechanical});
|
SaveServiceHelper.save(new DynamicObject[]{groupcustomers});
|
||||||
} else if (demands.containsKey("msg")) {
|
} else if (demands.containsKey("msg")) {
|
||||||
this.addErrorMessage(dataEntitie, demands.get("msg"));
|
throw new KDBizException("同步当前客户业务主体异常: " + demands.get("msg"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 业务主体和客户相同,跳过
|
||||||
|
if (customer.getLong("id") == groupcustomers.getLong("id")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String number = customer.getString("number");
|
||||||
|
String name = customer.getString("name");
|
||||||
|
if (isSynced) {
|
||||||
|
String torderid = customer.getString("yem_torderid");
|
||||||
|
Long existId = Long.valueOf(torderid);
|
||||||
|
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, false, existId);
|
||||||
|
} else {
|
||||||
|
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, true, null);
|
||||||
|
}
|
||||||
|
if (demands.containsKey("id")) {
|
||||||
|
String id = demands.get("id");
|
||||||
|
customer.set("yem_torderid", id);
|
||||||
|
customer.set("yem_checkboxfield", true);
|
||||||
|
SaveServiceHelper.save(new DynamicObject[]{customer});
|
||||||
|
} else if (demands.containsKey("msg")) {
|
||||||
|
throw new KDBizException("同步当前客户异常: " + demands.get("msg"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user