test:本地环境测试功能
This commit is contained in:
parent
e94f43df25
commit
3d104ac67a
|
|
@ -12,6 +12,7 @@
|
|||
/build.gradle
|
||||
/gradle/
|
||||
/secondev-xianghui-performance/build/
|
||||
/secondev-chapanda-attend/build/
|
||||
|
||||
/buildSrc/
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
plugins{
|
||||
id 'java'
|
||||
}
|
||||
description = ""
|
||||
|
||||
dependencies {
|
||||
// 子项目私有依赖添加
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package com.weaver.seconddev.chapanda.controller;
|
||||
|
||||
import com.weaver.common.authority.annotation.WeaPermission;
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
import com.weaver.seconddev.chapanda.eb.ChaPandaEbFormMonthConfigService;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@RestController
|
||||
@Api("EbFormRpc接口测试")
|
||||
@RequestMapping("/api/secondev/chaPanda/sync")
|
||||
@WeaPermission(publicPermission = true)
|
||||
@Slf4j
|
||||
public class EbFormRpcController {
|
||||
|
||||
@Autowired
|
||||
private ChaPandaEbFormMonthConfigService chaPandaEbFormMonthConfigService;
|
||||
|
||||
@GetMapping("/testRpc")
|
||||
public WeaResult<Object> monthData() {
|
||||
List<Map<String, Object>> datas = chaPandaEbFormMonthConfigService.getDatas("0");
|
||||
return WeaResult.success(datas);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,184 @@
|
|||
package com.weaver.seconddev.chapanda.eb;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.weaver.common.distribution.genid.IdGenerator;
|
||||
import com.weaver.ebuilder.form.client.entity.field.FieldsQueryDto;
|
||||
import com.weaver.ebuilder.form.client.entity.field.ModuleField;
|
||||
import com.weaver.ebuilder.form.client.service.emobile.IEtFormDatasetService;
|
||||
import com.weaver.ebuilder.teams.etform.base.query.ConditionTreeDto;
|
||||
import com.weaver.ebuilder.teams.etform.base.query.Query;
|
||||
import com.weaver.ebuilder.teams.etform.base.query.QueryField;
|
||||
import com.weaver.ebuilder.teams.etform.org.bean.EBSimpleEmployee;
|
||||
import com.weaver.framework.util.JsonUtil;
|
||||
import com.weaver.publishkit.api.util.PublishKitRuntimeUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.logging.log4j.util.Base64Util;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2025/7/8 09:47
|
||||
* @Description: 茶百道考勤静态Eb表单 出勤汇总映射表
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ChaPandaEbFormMonthConfigService {
|
||||
|
||||
@Resource
|
||||
private PublishKitRuntimeUtil publishKitRuntimeUtil;
|
||||
|
||||
private String attendConfigFormId;
|
||||
private String tenantKey;
|
||||
private String operator;
|
||||
|
||||
|
||||
@Value("${attend.chaPanda.attendConfigFormId:1161713839596036100}")
|
||||
public void setAttendConfigFormId(String attendConfigFormId) {
|
||||
this.attendConfigFormId = attendConfigFormId;
|
||||
}
|
||||
|
||||
@Value("${attend.chaPanda.scheduler.tenantKey:tma3ktp1q7}")
|
||||
public void setTenantKey(String tenantKey) {
|
||||
this.tenantKey = tenantKey;
|
||||
}
|
||||
|
||||
@Value("${attend.chaPanda.scheduler.operator:1123182988002492419")
|
||||
public void setOperator(String operator) {
|
||||
this.operator = operator;
|
||||
}
|
||||
|
||||
public Query buildQuery(Map<String, String> fields,String group) {
|
||||
Query query = new Query();
|
||||
query.setPageNo(1);
|
||||
query.setPageSize(100);
|
||||
query.setStatCount(true);
|
||||
// 搜索条件
|
||||
query.setConditionTrees(buildConditionTree(fields,group));
|
||||
// 权限相关
|
||||
Map<String, Object> ebuilderDataConfig = Maps.newHashMap();
|
||||
Map<String, Object> dataSetup = Maps.newHashMap();
|
||||
dataSetup.put("dataPermission", "ALL");
|
||||
ebuilderDataConfig.put("dataSetup", dataSetup);
|
||||
query.setEbuilderDataConfig(ebuilderDataConfig);
|
||||
// 查询字段
|
||||
List<String> fieldIds = Arrays.asList(String.valueOf(fields.get("cqzd")),String.valueOf(fields.get("jtzd")));
|
||||
List<QueryField> queryFields = fieldIds.stream().map(id -> {
|
||||
QueryField field = new QueryField();
|
||||
field.setFieldId(id);
|
||||
field.setObjId(Long.valueOf(attendConfigFormId));
|
||||
return field;
|
||||
}).collect(Collectors.toList());
|
||||
query.setQueryFields(queryFields);
|
||||
|
||||
return query;
|
||||
}
|
||||
|
||||
private ConditionTreeDto buildConditionTree(Map<String, String> fields,String group) {
|
||||
ConditionTreeDto rootNode = new ConditionTreeDto();
|
||||
rootNode.setKey(String.valueOf(IdGenerator.generate()));
|
||||
rootNode.setRelationship("1");
|
||||
rootNode.setIsParent(true);
|
||||
rootNode.setConditionList(Lists.newArrayList());
|
||||
|
||||
ConditionTreeDto leaf1Node = new ConditionTreeDto();
|
||||
leaf1Node.setIsParent(true);
|
||||
leaf1Node.setKey(String.valueOf(IdGenerator.generate()));
|
||||
leaf1Node.setParentNode(rootNode.getKey());
|
||||
leaf1Node.setRelationship("1");
|
||||
leaf1Node.setConditionList(Lists.newArrayList());
|
||||
rootNode.getConditionList().add(leaf1Node);
|
||||
|
||||
ConditionTreeDto leaf2Node = new ConditionTreeDto();
|
||||
leaf2Node.setCompareType("eq");
|
||||
leaf2Node.setConditionId(fields.get("fz"));
|
||||
leaf2Node.setConditionValue(group);
|
||||
leaf2Node.setConditionType("Number");
|
||||
leaf2Node.setIsParent(false);
|
||||
leaf2Node.setKey(String.valueOf(IdGenerator.generate()));
|
||||
leaf2Node.setObjId(attendConfigFormId);
|
||||
leaf2Node.setParentNode(leaf1Node.getKey());
|
||||
leaf1Node.getConditionList().add(leaf2Node);
|
||||
|
||||
ConditionTreeDto leaf3Node = new ConditionTreeDto();
|
||||
leaf3Node.setCompareType("eq");
|
||||
leaf3Node.setConditionId(fields.get("fc"));
|
||||
leaf3Node.setConditionType("Number");
|
||||
leaf3Node.setConditionValue("1");
|
||||
leaf3Node.setIsParent(false);
|
||||
leaf3Node.setKey(String.valueOf(IdGenerator.generate()));
|
||||
leaf3Node.setObjId(attendConfigFormId);
|
||||
leaf3Node.setParentNode(leaf1Node.getKey());
|
||||
leaf1Node.getConditionList().add(leaf3Node);
|
||||
return rootNode;
|
||||
}
|
||||
|
||||
public List<Map<String, Object>> getDatas(String group){
|
||||
List<Map<String, Object>> result = Lists.newArrayList();
|
||||
IEtFormDatasetService iEtFormDatasetService = publishKitRuntimeUtil.buildRpcService(IEtFormDatasetService.class, "ebuilderform", publishKitRuntimeUtil.getDefaultAppId());
|
||||
FieldsQueryDto fieldsQueryDto = new FieldsQueryDto();
|
||||
fieldsQueryDto.setObjId(Long.valueOf(attendConfigFormId));
|
||||
EBSimpleEmployee ebSimpleEmployee = new EBSimpleEmployee(operator,tenantKey);
|
||||
fieldsQueryDto.setEbSimpleEmployee(ebSimpleEmployee);
|
||||
List<ModuleField> field = iEtFormDatasetService.getFields(fieldsQueryDto);
|
||||
Map<String, String> fields = field.stream()
|
||||
.filter(f ->
|
||||
f.getDataKey() != null &&
|
||||
!f.getDataKey().isEmpty())
|
||||
.collect(Collectors.toMap(
|
||||
ModuleField::getDataKey,
|
||||
ModuleField::getFieldId,
|
||||
(oldValue, newValue) -> oldValue
|
||||
));
|
||||
Query query = buildQuery(fields,group);
|
||||
String queryStr = Base64Util.encode(JsonUtil.toJsonString(query));
|
||||
try {
|
||||
Map<String, Object> ebFormDataMap = iEtFormDatasetService.getDatas(Long.valueOf(attendConfigFormId), "attend", queryStr, null);
|
||||
result.addAll((List<Map<String, Object>>) ebFormDataMap.getOrDefault("list", Collections.emptyList()));
|
||||
Object total = ebFormDataMap.get("count");
|
||||
if (Objects.nonNull(total)) {
|
||||
int totalInt = Integer.parseInt(total.toString());
|
||||
for (int i = 1; i * 100 < totalInt; i++) {
|
||||
query.setPageNo(i + 1);
|
||||
query.setStatCount(false);
|
||||
queryStr = Base64Util.encode(JsonUtil.toJsonString(query));
|
||||
ebFormDataMap = iEtFormDatasetService.getDatas(Long.valueOf(attendConfigFormId), "attend", queryStr, null);
|
||||
result.addAll((List<Map<String, Object>>) ebFormDataMap.getOrDefault("list", Collections.emptyList()));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("表单不存在或已被删除", e);
|
||||
}
|
||||
List<Map<String, Object>> transList = result.stream()
|
||||
.map(originalMap -> {
|
||||
Map<String, Object> newMap = new HashMap<>();
|
||||
originalMap.forEach((oldKey, value) -> {
|
||||
// 找到 fields 中 Value 等于 oldKey 的 Key
|
||||
fields.entrySet().stream()
|
||||
.filter(entry -> entry.getValue().equals(oldKey))
|
||||
.findFirst()
|
||||
.ifPresent(entry -> newMap.put(entry.getKey(), value)); // 替换 Key
|
||||
});
|
||||
return newMap;
|
||||
})
|
||||
.filter(newMap -> !newMap.isEmpty()) // 过滤掉未匹配到 fields 的 Map
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return transList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue