|
|
@@ -30,18 +30,6 @@ public class XBBController {
|
|
|
@Autowired
|
|
|
private XBBClient xbbClient;
|
|
|
|
|
|
- @PostMapping("test")
|
|
|
- McR test() {
|
|
|
-// return McR.success(xbbClient.getFormDefine(1003094, 0)); // 钉钉 864836 tb 1003094
|
|
|
- return McR.success(xbbClient.getFormList("", 1, 100));
|
|
|
-// return McR.success(likeCusterList("钉钉客户", "计算机", "16808499470903077"));
|
|
|
-
|
|
|
-// return McR.success(xbbClient.getFormList("", 1, 601));
|
|
|
-// return McR.success(xbbClient.getFormDefine(864840, 0));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 模糊查询归属权限下客户列表
|
|
|
*/
|
|
|
@@ -52,28 +40,90 @@ public class XBBController {
|
|
|
McException.assertParamException_Null(data, "name, userId");
|
|
|
|
|
|
List<Map> customers = new ArrayList<>();
|
|
|
- customers.addAll(likeCusterList("钉钉客户", data.get("name"), data.get("userId")));
|
|
|
- customers.addAll(likeCusterList("Teambition客户", data.get("name"), data.get("userId")));
|
|
|
+ customers.addAll(_likeCustomerList(XBBConf.API_LIST_CUSTOMER, "钉钉", data.get("name"), data.get("userId")));
|
|
|
+ customers.addAll(_likeCustomerList(XBBConf.API_LIST_CUSTOMER, "Teambition", data.get("name"), data.get("userId")));
|
|
|
|
|
|
log.info("客户响应, {}", customers);
|
|
|
return McR.success(customers);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 模糊查询归属权限下客户列表
|
|
|
+ * 模糊查询归属权限下, 指定字段类型 [后置查询]
|
|
|
*/
|
|
|
- private List<Map> likeCusterList(String type, String name, String userId) {
|
|
|
- List<Map> rsp = xbbClient.getFormList(type, 1, 100); // 客户表单: 钉钉 864836 tb 1003094
|
|
|
+ private List<Map> _likeCustomerList(String url, String type, String name, String userId) {
|
|
|
+ List<Map> rsp = xbbClient.getFormList(type, 1, 100);
|
|
|
long formId = UtilMap.getLong(rsp.get(0), "formId");
|
|
|
rsp = xbbClient.getFormDefine(formId, 0); // 表单定义
|
|
|
String nameField = (rsp.stream().filter(item -> item.get("attrName").equals("客户名称")).findAny().get()).get("attr").toString();
|
|
|
- rsp = xbbClient.getCustomerList(formId, Arrays.asList(XBBConf.getConditionMap(nameField, "like", name)), null);
|
|
|
+ rsp = xbbClient.getDataList(url, formId, Arrays.asList(XBBConf.getConditionMap(nameField, "like", name)), null);
|
|
|
+ return rsp.stream().filter(item -> {
|
|
|
+ List<String> ownerId = (List<String>) JSON.parse(String.valueOf(((Map) item.get("data")).get("ownerId")));
|
|
|
+ List<String> coUserId = (List<String>) JSON.parse(String.valueOf(((Map) item.get("data")).get("coUserId")));
|
|
|
+ // 后置查询, 属于客户负责人和协同人
|
|
|
+ return ownerId.contains(userId) || coUserId.contains(userId);
|
|
|
+ }).map(item -> UtilMap.map("name", String.valueOf(((Map) item.get("data")).get(nameField)))).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 模糊查询归属权限下, 指定字段类型 [后置查询]
|
|
|
+ */
|
|
|
+ private List<Map> _likeContractList(String url, String type, String name, String userId) {
|
|
|
+ List<Map> rsp = xbbClient.getFormList(type, 1, 201);
|
|
|
+ long formId = UtilMap.getLong(rsp.get(0), "formId");
|
|
|
+ rsp = xbbClient.getFormDefine(formId, 0); // 表单定义
|
|
|
+ String nameField = (rsp.stream().filter(item -> item.get("attrName").equals("合同名称")).findAny().get()).get("attr").toString();
|
|
|
+ String codeField = (rsp.stream().filter(item -> item.get("attrName").equals("合同编号")).findAny().get()).get("attr").toString();
|
|
|
+ String cashField = (rsp.stream().filter(item -> item.get("attrName").equals("合同金额")).findAny().get()).get("attr").toString();
|
|
|
+ rsp = xbbClient.getDataList(url, formId, Arrays.asList(XBBConf.getConditionMap(nameField, "like", name)), null);
|
|
|
return rsp.stream().filter(item -> {
|
|
|
List<String> ownerId = (List<String>) JSON.parse(String.valueOf(((Map) item.get("data")).get("ownerId")));
|
|
|
List<String> coUserId = (List<String>) JSON.parse(String.valueOf(((Map) item.get("data")).get("coUserId")));
|
|
|
// 后置查询, 属于客户负责人和协同人
|
|
|
return ownerId.contains(userId) || coUserId.contains(userId);
|
|
|
- }).map(item -> UtilMap.map("name", String.valueOf(((Map) item.get("data")).get(nameField)))).collect(Collectors.toList()); // 客户名称
|
|
|
+ }).map(item -> {
|
|
|
+ Map data = (Map) item.get("data");
|
|
|
+ return UtilMap.map("name, value", data.get(nameField), data.get(codeField) + "/" + data.get(cashField));
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 模糊查询归属权限下合同列表
|
|
|
+ */
|
|
|
+ @PostMapping("list/contract")
|
|
|
+ McR contractList(@RequestBody Map<String, String> data) {
|
|
|
+
|
|
|
+ log.info("合同列表, {}", data);
|
|
|
+ McException.assertParamException_Null(data, "name, userId");
|
|
|
+
|
|
|
+ List<Map> customers = new ArrayList<>();
|
|
|
+ customers.addAll(_likeContractList(XBBConf.API_LIST_CONTRACT, "钉钉", data.get("name"), data.get("userId")));
|
|
|
+ customers.addAll(_likeContractList(XBBConf.API_LIST_CONTRACT, "Teambition", data.get("name"), data.get("userId")));
|
|
|
+
|
|
|
+ log.info("合同响应, {}", customers);
|
|
|
+ return McR.success(customers);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 自动填充合同编号/合同金额
|
|
|
+ */
|
|
|
+ @PostMapping("code/contract")
|
|
|
+ McR contractCode(@RequestBody Map<String, String> data) {
|
|
|
+
|
|
|
+ String[] content = data.get("code").split("/");
|
|
|
+ log.info("自动填充, {}, {}", content);
|
|
|
+ return McR.success(UtilMap.map("code, cash", content[0], content[1]));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("test")
|
|
|
+ McR test() {
|
|
|
+
|
|
|
+ return McR.success(xbbClient.getFormDefine(864843, 0)); // 钉钉 864836 tb 1003094
|
|
|
+// return McR.success(xbbClient.getFormList("", 1, 201));
|
|
|
+// return McR.success(likeCusterList("钉钉客户", "计算机", "16808499470903077"));
|
|
|
+
|
|
|
+// return McR.success(xbbClient.getFormList("", 1, 601));
|
|
|
+// return McR.success(xbbClient.getFormDefine(864840, 0));
|
|
|
}
|
|
|
}
|
|
|
|