parent
b8afeb426b
commit
b89653efe6
@ -5,6 +5,7 @@ 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.KDBizException;
|
||||
import kd.bos.exception.KDException;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
@ -14,65 +15,75 @@ import kd.bos.schedule.executor.AbstractTask;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.yem.or.utils.OrderApiUtils.getToken;
|
||||
|
||||
/**
|
||||
* ljw
|
||||
* 同步数据至下单平台
|
||||
*/
|
||||
public class CustomerTask extends AbstractTask {
|
||||
|
||||
private static final Log log = LogFactory.getLog(CustomerTask.class);
|
||||
|
||||
@Override
|
||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||
Log log = LogFactory.getLog(YunZhiJaGetOpenidTask.class);
|
||||
|
||||
String accessToken = "";
|
||||
|
||||
try {
|
||||
Map<String, String> token = getToken();
|
||||
accessToken = token.get("token");
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
if (YEM.isEmpty(accessToken)) {
|
||||
throw new KDBizException("获取AccessToken失败");
|
||||
}
|
||||
|
||||
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");
|
||||
if (group != null) {
|
||||
long groupid = group.getLong("id");
|
||||
DynamicObject[] bd_customergroup = BusinessDataServiceHelper.load("bd_customergroup", "id,number,parent"
|
||||
, new QFilter[]{new QFilter("parent.number", QCP.equals, "11602"), new QFilter("id", QCP.equals, groupid)});
|
||||
if (bd_customergroup.length > 0) {
|
||||
for (int i = 0; i < bd_customergroup.length; i++) {
|
||||
String number = dynamicObject.getString("number");
|
||||
String name = dynamicObject.getString("name");
|
||||
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");
|
||||
if (msg == null) {
|
||||
String id = demands.get("id");
|
||||
if (YEM.isNotEmpty(id)) {
|
||||
dynamicObject.set("yem_torderid", id);
|
||||
dynamicObject.set("yem_checkboxfield", true);
|
||||
SaveServiceHelper.update(dynamicObject);
|
||||
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||
}
|
||||
}
|
||||
}
|
||||
String number = dynamicObject.getString("number");
|
||||
String name = dynamicObject.getString("name");
|
||||
DynamicObject groupcustomers = dynamicObject.getDynamicObject("yem_groupcustomers");
|
||||
if (YEM.isEmpty(groupcustomers)) {
|
||||
log.error(" [SKIP] 业务主体为空 ");
|
||||
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)) {
|
||||
log.error(" [SKIP] 业务主体未同步 ");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
Map<String, String> demands;
|
||||
if (dynamicObject.getBoolean("yem_checkboxfield")) {
|
||||
String torderid = dynamicObject.getString("yem_torderid");
|
||||
if (YEM.isEmpty(torderid)) {
|
||||
log.error(" [SKIP] 已同步但ID为空 ");
|
||||
continue;
|
||||
}
|
||||
Long id = Long.valueOf(torderid);
|
||||
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, false, id);
|
||||
} else {
|
||||
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, true, null);
|
||||
}
|
||||
log.info(demands.toString());
|
||||
if (demands.containsKey("id")) {
|
||||
String id = demands.get("id");
|
||||
dynamicObject.set("yem_torderid", id);
|
||||
dynamicObject.set("yem_checkboxfield", true);
|
||||
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||
} else if (demands.containsKey("msg")) {
|
||||
log.error(demands.get("msg"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ public class OrderApiUtils {
|
||||
resStatus.put("msg", "未知客户");
|
||||
return resStatus;
|
||||
}
|
||||
customer = BusinessDataServiceHelper.loadSingle(customer.getPkValue(),customer.getDynamicObjectType().getName());
|
||||
customer = BusinessDataServiceHelper.loadSingle(customer.getPkValue(), customer.getDynamicObjectType().getName());
|
||||
|
||||
dynamicObject.set("yem_customer", customer);//客户\
|
||||
dynamicObject.set("yem_customername", customer.getString("name"));
|
||||
@ -421,7 +421,7 @@ public class OrderApiUtils {
|
||||
/**
|
||||
* 新增用户
|
||||
*/
|
||||
public static Map<String, String> demands(String username, String userNumber, DynamicObject groupcustomers, boolean isCreate, Long existId) {
|
||||
public static Map<String, String> demands(String accessToken, String username, String userNumber, DynamicObject groupcustomers, boolean isCreate, Long existId) {
|
||||
String requestUrl;
|
||||
if (isCreate) {
|
||||
requestUrl = ENDPOINTS + "/admin-api/system/user/create";
|
||||
@ -429,65 +429,57 @@ public class OrderApiUtils {
|
||||
requestUrl = ENDPOINTS + "/admin-api/system/user/update";
|
||||
}
|
||||
|
||||
Map<String, String> headers = null;
|
||||
try {
|
||||
headers = getToken();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
Map<String, String> resStatus = new HashMap<>();
|
||||
// 租户ID
|
||||
if ("success".equals(headers.get("status"))) {
|
||||
String accessToken = headers.get("token");
|
||||
headers.put("Authorization", "Bearer " + (accessToken));
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
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", 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 = "";
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("Authorization", "Bearer " + (accessToken));
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
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", 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 = "";
|
||||
|
||||
|
||||
try {
|
||||
log.info("start request {}", requestUrl);
|
||||
res = HttpClientUtils.postAppJson(requestUrl, headers, requestBody, 3000, 3000);
|
||||
} catch (IOException e) {
|
||||
log.error("request token error", e);
|
||||
resStatus.put("status", "error");
|
||||
resStatus.put("msg", String.format("获取token请求异常:%s", e.getMessage()));
|
||||
// throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
JSONObject jsonObject = JSONObject.parseObject(res);
|
||||
int code = jsonObject.getIntValue("code");
|
||||
if (code == 0) {
|
||||
Integer data = jsonObject.getInteger("data");
|
||||
try {
|
||||
log.info("start request {}", requestUrl);
|
||||
res = HttpClientUtils.postAppJson(requestUrl, headers, requestBody, 3000, 3000);
|
||||
} catch (IOException e) {
|
||||
log.error("request token error", e);
|
||||
resStatus.put("status", "error");
|
||||
resStatus.put("msg", String.format("获取token请求异常:%s", e.getMessage()));
|
||||
}
|
||||
log.info("request {}", requestBody);
|
||||
JSONObject jsonObject = JSONObject.parseObject(res);
|
||||
log.info("response {}", jsonObject);
|
||||
int code = jsonObject.getIntValue("code");
|
||||
if (code == 0) {
|
||||
Object data = jsonObject.get("data");
|
||||
if (!(data instanceof Boolean)) {
|
||||
resStatus.put("id", String.valueOf(data));
|
||||
} else {
|
||||
throw new KDBizException("失败:" + res);
|
||||
}
|
||||
return resStatus;
|
||||
} else {
|
||||
log.error(headers.get("msg"));
|
||||
resStatus.put("msg", JSON.toJSONString(jsonObject));
|
||||
}
|
||||
return resStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
*/
|
||||
public static Map<String, String> Modifyuser(String big,String string) {
|
||||
public static Map<String, String> Modifyuser(String big, String string) {
|
||||
|
||||
final String requestUrl = ENDPOINTS + "/admin-api/system/user/update-status";
|
||||
|
||||
@ -508,7 +500,7 @@ public class OrderApiUtils {
|
||||
String res = "";
|
||||
try {
|
||||
log.info("start request {}", requestUrl);
|
||||
res = HttpUtils.doPut(requestUrl, JSON.toJSONString(requestBody),"json", headers);
|
||||
res = HttpUtils.doPut(requestUrl, JSON.toJSONString(requestBody), "json", headers);
|
||||
// HttpUtils.doPut(requestUrl, JSON.toJSONString(objectArrayList), "json", headers);
|
||||
} catch (IOException e) {
|
||||
log.error("request token error", e);
|
||||
@ -518,6 +510,7 @@ public class OrderApiUtils {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步订单
|
||||
*
|
||||
@ -552,9 +545,9 @@ public class OrderApiUtils {
|
||||
requestBody.put("model", Bearer.get("model"));
|
||||
requestBody.put("salesman", Bearer.get("salesman"));
|
||||
requestBody.put("seller", Bearer.get("seller"));
|
||||
requestBody.put("productenname",Bearer.get("productenname"));
|
||||
requestBody.put("productname",Bearer.get("productname"));
|
||||
requestBody.put("product",Bearer.get("productnumber"));
|
||||
requestBody.put("productenname", Bearer.get("productenname"));
|
||||
requestBody.put("productname", Bearer.get("productname"));
|
||||
requestBody.put("product", Bearer.get("productnumber"));
|
||||
Map<String, Object> objectMap = new HashMap<>();
|
||||
objectMap.put("salesorderno", Bearer.get("salesordernos"));
|
||||
objectMap.put("framenumber", Bearer.get("framenumber"));
|
||||
@ -601,8 +594,8 @@ public class OrderApiUtils {
|
||||
DynamicObject[] mechanical = BusinessDataServiceHelper.load("yem_em_devicefiles"
|
||||
, "id,number,yem_ordeid,yem_issynorde"
|
||||
, new QFilter[]{new QFilter("yem_salesorderno", QCP.equals, salesorderno),
|
||||
new QFilter("number", QCP.in, compNo)
|
||||
});
|
||||
new QFilter("number", QCP.in, compNo)
|
||||
});
|
||||
for (DynamicObject d : mechanical) {
|
||||
d.set("yem_ordeid", objectsId);
|
||||
d.set("yem_issynorde", true);
|
||||
@ -620,6 +613,7 @@ public class OrderApiUtils {
|
||||
|
||||
/**
|
||||
* 同步产品机型到下单平台权限项
|
||||
*
|
||||
* @param parentObject 父级
|
||||
*/
|
||||
public static void syncProductModuleToPermissions(DynamicObject parentObject, ORM orm) throws IOException {
|
||||
@ -647,6 +641,7 @@ public class OrderApiUtils {
|
||||
|
||||
/**
|
||||
* 查询子级所有的产品机型,为空则查询一级
|
||||
*
|
||||
* @param parent
|
||||
* @return
|
||||
*/
|
||||
@ -684,7 +679,7 @@ public class OrderApiUtils {
|
||||
Long itemId = requestAddPermissionItem(object, returnId, token, subIdx);
|
||||
object.set("yem_orderperid", itemId);
|
||||
|
||||
log.info("AddPermissionItem__parent: " + dynamicObject.getString("number") + "_" + dynamicObject.getString("name") +"_item: " + object.getPkValue() + "_" + object.getString("number") + "_" + object.getString("name"));
|
||||
log.info("AddPermissionItem__parent: " + dynamicObject.getString("number") + "_" + dynamicObject.getString("name") + "_item: " + object.getPkValue() + "_" + object.getString("number") + "_" + object.getString("name"));
|
||||
}
|
||||
|
||||
SaveServiceHelper.update(collection.toArray(new DynamicObject[0]));
|
||||
@ -696,7 +691,7 @@ public class OrderApiUtils {
|
||||
if ("success".equals(resMap.get("status"))) {
|
||||
return "Bearer " + resMap.get("token");
|
||||
} else {
|
||||
throw new IOException("获取token失败");
|
||||
throw new IOException("获取token失败");
|
||||
}
|
||||
}
|
||||
|
||||
@ -754,7 +749,7 @@ public class OrderApiUtils {
|
||||
*
|
||||
* @param object 产品机型
|
||||
* @param parentId 该机型对应类型ID
|
||||
* @param subIdx 排序
|
||||
* @param subIdx 排序
|
||||
* @return
|
||||
*/
|
||||
private static Long requestAddPermissionItem(DynamicObject object, Long parentId, String token, int subIdx) throws IOException {
|
||||
@ -812,10 +807,10 @@ public class OrderApiUtils {
|
||||
headers.put("Authorization", "Bearer " + (accessToken));
|
||||
for (Map<String, Object> Bearer : list) {
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put("id",Bearer.get("id"));
|
||||
requestBody.put("status",Bearer.get("status"));
|
||||
requestBody.put("logisticsNo",Bearer.get("logisticsNo"));
|
||||
requestBody.put("ladingDate",Bearer.get("ladingDate"));
|
||||
requestBody.put("id", Bearer.get("id"));
|
||||
requestBody.put("status", Bearer.get("status"));
|
||||
requestBody.put("logisticsNo", Bearer.get("logisticsNo"));
|
||||
requestBody.put("ladingDate", Bearer.get("ladingDate"));
|
||||
objectArrayList.add(requestBody);
|
||||
}
|
||||
try {
|
||||
|
@ -5,13 +5,16 @@ import com.yem.wm.utils.YEM;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.entity.ExtendedDataEntity;
|
||||
import kd.bos.entity.validate.AbstractValidator;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.exception.KDBizException;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.yem.or.utils.OrderApiUtils.getToken;
|
||||
|
||||
/**
|
||||
* ljw
|
||||
* 同步数据至下单平台
|
||||
@ -21,18 +24,23 @@ public class CustomerValidator extends AbstractValidator {
|
||||
@Override
|
||||
public void validate() {
|
||||
ExtendedDataEntity[] dataEntities = this.getDataEntities();
|
||||
|
||||
String accessToken = "";
|
||||
|
||||
try {
|
||||
Map<String, String> token = getToken();
|
||||
accessToken = token.get("token");
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
if (YEM.isEmpty(accessToken)) {
|
||||
throw new KDBizException("获取AccessToken失败");
|
||||
}
|
||||
|
||||
for (ExtendedDataEntity dataEntitie : dataEntities) {
|
||||
DynamicObject mechanical = dataEntitie.getDataEntity();
|
||||
boolean isSynced = mechanical.getBoolean("yem_checkboxfield");
|
||||
// DynamicObject group = mechanical.getDynamicObject("group");
|
||||
// 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);
|
||||
// qFilter1.and(new QFilter("enable", QCP.equals, "1"));
|
||||
// DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("bd_customergroup", "id,number,parent"
|
||||
// , new QFilter[]{qFilter, qFilter1});
|
||||
// if (dynamicObjects.length > 0) {
|
||||
String number = mechanical.getString("number");
|
||||
String name = mechanical.getString("name");
|
||||
DynamicObject groupcustomers = mechanical.getDynamicObject("yem_groupcustomers");
|
||||
@ -53,26 +61,18 @@ public class CustomerValidator extends AbstractValidator {
|
||||
if (isSynced) {
|
||||
String torderid = mechanical.getString("yem_torderid");
|
||||
Long existId = Long.valueOf(torderid);
|
||||
demands = OrderApiUtils.demands(name, number, groupcustomers, false, existId);
|
||||
demands = OrderApiUtils.demands(accessToken, name, number, groupcustomers, false, existId);
|
||||
} else {
|
||||
demands = OrderApiUtils.demands(name, number, groupcustomers, true, null);
|
||||
demands = OrderApiUtils.demands(accessToken, 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 if (demands.containsKey("msg")) {
|
||||
this.addErrorMessage(dataEntitie, demands.get("msg"));
|
||||
}
|
||||
// } else {
|
||||
// this.addErrorMessage(dataEntitie, "当前客户不满足同步条件,禁止同步至下单平台!!!");
|
||||
// }
|
||||
// } else {
|
||||
// this.addErrorMessage(dataEntitie, "当前客户分组为空!!");
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user