You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
187 lines
7.9 KiB
Java
187 lines
7.9 KiB
Java
package com.weaver.seconddev.util;
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.weaver.common.hrm.util.Util;
|
|
import com.weaver.common.i18n.tool.util.I18nContextUtil;
|
|
import com.weaver.ebuilder.datasource.api.entity.ExecuteSqlEntity;
|
|
import com.weaver.ebuilder.datasource.api.enums.SourceType;
|
|
import com.weaver.ebuilder.datasource.api.service.DataSetService;
|
|
import com.weaver.framework.rpc.context.impl.TenantRpcContext;
|
|
import com.weaver.seconddev.entity.DataOptions;
|
|
import com.weaver.seconddev.entity.FormDataDuty;
|
|
import com.weaver.verupgrade.conn.RecordSet;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import javax.sql.DataSource;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* @Author: calyrex
|
|
* @CreateTime: 2025-04-25
|
|
* @Description: 数据操作工具
|
|
*/
|
|
|
|
@Component
|
|
@Slf4j
|
|
public class DataOperateUtil {
|
|
|
|
@Autowired
|
|
private DataSetService dataSetService;
|
|
|
|
public List<Long> getDetailFormId(String workflowId) {
|
|
log.error("getDetailFormId start : " + workflowId );
|
|
List<Long> formIdList = new ArrayList();
|
|
String sourceType = String.valueOf(SourceType.LOGIC);
|
|
String groupId = "weaver-basic-schedule-service";
|
|
try {
|
|
String sql = "select form_id from ecology10.dbo.form_table where form_id in (select id from ecology10.dbo.sub_form where form_id in (select relatekey from ecology10.dbo.wfp_relateform where workflowid = '"+workflowId+"'))";
|
|
log.info("getConfig sql-->" + sql);
|
|
Map<String, Object> datas = executeForQuery(sourceType, groupId, sql);
|
|
// log.info("getConfig datas-->" + datas);
|
|
if(String.valueOf(datas.get("status")).equals("OK")){
|
|
List<Map<String,Object>> records = (List<Map<String,Object>>)datas.get("records");
|
|
for (int i = 0; i < records.size(); i++) {
|
|
Map<String, Object> map = records.get(i);
|
|
String formId = map.get("form_id").toString();
|
|
formIdList.add(Long.valueOf(formId));
|
|
}
|
|
return formIdList;
|
|
}else {
|
|
log.error("getConfig status-->"+ datas.get("status"));
|
|
return formIdList;
|
|
}
|
|
}catch (Exception e){
|
|
log.error("getConfig e--> ",e);
|
|
return formIdList;
|
|
}
|
|
}
|
|
|
|
public String getConfig(String key,String tenantKey){
|
|
String sourceType = String.valueOf(SourceType.LOGIC);
|
|
String groupId = "weaver-basic-schedule-service";
|
|
try {
|
|
String sql = "select configvalue from ecology10.dbo.uf_config where configkey = '" + key + "' and zhkey = '"+tenantKey+"'";
|
|
log.info("getConfig sql-->" + sql);
|
|
Map<String, Object> datas = executeForQuery(sourceType, groupId, sql);
|
|
// log.info("getConfig datas-->" + datas);
|
|
if(String.valueOf(datas.get("status")).equals("OK")){
|
|
List<Map<String,Object>> records = (List<Map<String,Object>>)datas.get("records");
|
|
Map<String, Object> map = records.get(0);
|
|
return map.get("config_value").toString();
|
|
}else {
|
|
log.error("getConfig status-->"+ datas.get("status"));
|
|
return "";
|
|
}
|
|
}catch (Exception e){
|
|
log.error("getConfig e--> ",e);
|
|
return "";
|
|
}
|
|
}
|
|
public Map<String, Object> executeForQuery(String sourceType, String groupId, String sql) {
|
|
// log.info("executeForQuery sourceType-->" + sourceType + ",groupId-->" + groupId + ",sql-->" + sql);
|
|
TenantRpcContext.setTargetTenantKey("temkc46eme");
|
|
ExecuteSqlEntity executeSqlEntity = new ExecuteSqlEntity();
|
|
executeSqlEntity.setSql(cn.hutool.core.codec.Base64.encode(sql));
|
|
executeSqlEntity.setGroupId(groupId); //groupid,可以访问 E10地址/api/datasource/ds/group?sourceType=LOGIC 获取
|
|
executeSqlEntity.setSourceType(SourceType.valueOf(sourceType));
|
|
// log.info("executeForQuery executeSqlEntity-->"+executeSqlEntity.getSql()+"-->"+executeSqlEntity.getGroupId()+"-->"+executeSqlEntity.getSourceType());
|
|
Map<String, Object> datas = dataSetService.executeSql(executeSqlEntity);
|
|
// log.info("executeForQuery datas-->" + datas);
|
|
TenantRpcContext.removeTargetTenantKey();
|
|
return datas;
|
|
}
|
|
|
|
/**
|
|
* 表单字段构建
|
|
* @return
|
|
*/
|
|
public static JSONObject getFromDataByDataDetails(List<FormDataDuty> formDataDutyList) {
|
|
JSONObject formData = new JSONObject();
|
|
formData.put("module","workflow");
|
|
|
|
JSONArray dataDetails = new JSONArray();
|
|
formData.put("dataDetails", dataDetails);
|
|
|
|
formDataDutyList.forEach(formDataDuty -> {
|
|
if (formDataDuty.getSubFormId() != null) {
|
|
//明细表
|
|
if (formDataDuty.getDataOptions() == null) {
|
|
//普通字段
|
|
JSONObject inputDataKey = new JSONObject();
|
|
inputDataKey.put("dataKey", formDataDuty.getDataKey());
|
|
inputDataKey.put("dataIndex", formDataDuty.getDataIndex());
|
|
inputDataKey.put("content", formDataDuty.getContent());
|
|
inputDataKey.put("subFormId", formDataDuty.getSubFormId());
|
|
dataDetails.add(inputDataKey);
|
|
}else {
|
|
JSONObject details = new JSONObject();
|
|
dataDetails.add(details);
|
|
|
|
JSONArray dataOptions = new JSONArray();
|
|
details.put("dataKey", formDataDuty.getDataKey());
|
|
details.put("dataIndex", formDataDuty.getDataIndex());
|
|
details.put("subFormId", formDataDuty.getSubFormId());
|
|
|
|
details.put("dataOptions", dataOptions);
|
|
List<DataOptions> dataOptions1 = formDataDuty.getDataOptions();
|
|
dataOptions1.forEach(e -> {
|
|
JSONObject option = new JSONObject();
|
|
option.put("optionId", e.getOptionId());
|
|
dataOptions.add(option);
|
|
});
|
|
}
|
|
|
|
}else {
|
|
//主表
|
|
if (formDataDuty.getDataOptions() == null) {
|
|
//普通字段
|
|
JSONObject inputDataKey = new JSONObject();
|
|
inputDataKey.put("dataKey", formDataDuty.getDataKey());
|
|
inputDataKey.put("content", formDataDuty.getContent());
|
|
dataDetails.add(inputDataKey);
|
|
}else {
|
|
//浏览按钮字段
|
|
// 浏览按钮
|
|
JSONObject details = new JSONObject();
|
|
dataDetails.add(details);
|
|
|
|
JSONArray dataOptions = new JSONArray();
|
|
details.put("dataKey", formDataDuty.getDataKey());
|
|
details.put("dataOptions", dataOptions);
|
|
|
|
List<DataOptions> dataOptions1 = formDataDuty.getDataOptions();
|
|
dataOptions1.forEach(e -> {
|
|
JSONObject option = new JSONObject();
|
|
option.put("optionId", e.getOptionId());
|
|
//fieldType 3为附件
|
|
if (formDataDuty.getFieldType() == 3) {
|
|
option.put("content", e.getContent());
|
|
}
|
|
dataOptions.add(option);
|
|
});
|
|
|
|
}
|
|
}
|
|
});
|
|
|
|
return formData;
|
|
}
|
|
|
|
public static String null2String(String s){
|
|
return s == null ? "" : s;
|
|
}
|
|
|
|
public static String null2String(Object o){
|
|
return o == null ? "" : o.toString();
|
|
}
|
|
|
|
public static String null2String(String s1,String s2){
|
|
return s1 == null ? (s2 == null ? "" : s2) : s1;
|
|
}
|
|
}
|