feat: 同步所有客户到下单平台

This commit is contained in:
zzs 2025-04-09 15:03:44 +08:00
parent 9971b563c8
commit 7a5944c413
2 changed files with 53 additions and 56 deletions

View File

@ -19,6 +19,7 @@ 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.logging.Log; import kd.bos.logging.Log;
import kd.bos.logging.LogFactory; import kd.bos.logging.LogFactory;
import kd.bos.orm.ORM; import kd.bos.orm.ORM;
@ -472,11 +473,10 @@ public class OrderApiUtils {
JSONObject jsonObject = JSONObject.parseObject(res); JSONObject jsonObject = JSONObject.parseObject(res);
int code = jsonObject.getIntValue("code"); int code = jsonObject.getIntValue("code");
if (code == 0) { if (code == 0) {
Object data = jsonObject.get("data"); Integer data = jsonObject.getInteger("data");
if (data instanceof Long) { resStatus.put("id", String.valueOf(data));
String ids = data.toString(); } else {
resStatus.put("id", ids); throw new KDBizException("失败:" + res);
}
} }
return resStatus; return resStatus;
} else { } else {

View File

@ -4,7 +4,6 @@ import com.yem.or.utils.OrderApiUtils;
import com.yem.wm.utils.YEM; 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.validate.AbstractValidator; import kd.bos.entity.validate.AbstractValidator;
import kd.bos.orm.query.QCP; import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
@ -25,57 +24,55 @@ public class CustomerValidator extends AbstractValidator {
for (ExtendedDataEntity dataEntitie : dataEntities) { for (ExtendedDataEntity dataEntitie : dataEntities) {
DynamicObject mechanical = dataEntitie.getDataEntity(); DynamicObject mechanical = dataEntitie.getDataEntity();
boolean isSynced = mechanical.getBoolean("yem_checkboxfield"); boolean isSynced = mechanical.getBoolean("yem_checkboxfield");
DynamicObject group = mechanical.getDynamicObject("group"); // DynamicObject group = mechanical.getDynamicObject("group");
if (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);
qFilter1.and(new QFilter("enable", QCP.equals, "1")); // qFilter1.and(new QFilter("enable", QCP.equals, "1"));
DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_customergroup", "id,number,parent" // DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_customergroup", "id,number,parent"
, 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 name = mechanical.getString("name"); String name = mechanical.getString("name");
DynamicObject groupcustomers = mechanical.getDynamicObject("yem_groupcustomers"); 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;
}
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");
if (msg == null) {
String id = demands.get("id");
if (YEM.isNotEmpty(id)) {
mechanical.set("yem_torderid", id);
mechanical.set("yem_checkboxfield", true);
SaveServiceHelper.update(mechanical);
SaveServiceHelper.save(new DynamicObject[]{mechanical});
}
} else {
this.addErrorMessage(dataEntitie, msg);
}
} else {
this.addErrorMessage(dataEntitie, "当前客户不满足同步条件,禁止同步至下单平台!!!");
}
} else {
this.addErrorMessage(dataEntitie, "当前客户分组为空!!");
} }
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;
}
}
if (isSynced) {
String torderid = mechanical.getString("yem_torderid");
Long existId = Long.valueOf(torderid);
demands = OrderApiUtils.demands(name, number, groupcustomers, false, existId);
} else {
demands = OrderApiUtils.demands(name, number, groupcustomers, true, null);
}
String msg = demands.get("msg");
if (demands.containsKey("id")) {
String id = demands.get("id");
mechanical.set("yem_torderid", id);
mechanical.set("yem_checkboxfield", true);
SaveServiceHelper.update(mechanical);
SaveServiceHelper.save(new DynamicObject[]{mechanical});
} else {
this.addErrorMessage(dataEntitie, msg);
}
// } else {
// this.addErrorMessage(dataEntitie, "当前客户不满足同步条件,禁止同步至下单平台!!!");
// }
// } else {
// this.addErrorMessage(dataEntitie, "当前客户分组为空!!");
// }
} }
} }
} }