密炼机动作维护、日罐物料对应信息、密炼机条件维护、生产订单、金蝶对接配置

This commit is contained in:
2026-05-22 12:04:46 +08:00
parent 874e513c90
commit 467c49f432
30 changed files with 1509 additions and 5 deletions

View File

@@ -31,6 +31,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletRequest;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -61,7 +63,7 @@ public class ThirdAppController {
*/
@GetMapping("/getEnabledType")
public Result getEnabledType() {
Map<String, Boolean> enabledMap = new HashMap(5);
Map<String, Boolean> enabledMap = new HashMap<>(5);
int tenantId;
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
@@ -75,6 +77,8 @@ public class ThirdAppController {
boolean dingConfig = false;
//企业微信是否已配置
boolean qywxConfig = false;
//金蝶是否已配置
boolean kingdeeConfig = false;
if(null != list && list.size()>0){
for (SysThirdAppConfig config:list) {
if(MessageTypeEnum.DD.getType().equals(config.getThirdType())){
@@ -85,10 +89,14 @@ public class ThirdAppController {
qywxConfig = true;
continue;
}
if("kingdee".equals(config.getThirdType())){
kingdeeConfig = true;
}
}
}
enabledMap.put("wechatEnterprise", qywxConfig);
enabledMap.put("dingtalk", dingConfig);
enabledMap.put("kingdee", kingdeeConfig);
return Result.OK(enabledMap);
}
@@ -473,6 +481,59 @@ public class ThirdAppController {
return result;
}
/**
* 测试金蝶配置连通性
*/
@GetMapping("/testKingdeeConnect")
public Result<String> testKingdeeConnect(@RequestParam(name = "tenantId", required = false) Integer tenantId) {
if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) {
if (tenantId == null) {
return Result.error("开启多租户模式租户ID参数不允许为空");
}
} else if (tenantId == null) {
tenantId = oConvertUtils.getInt(TenantContext.getTenant(), 0);
}
SysThirdAppConfig config = appConfigService.getThirdConfigByThirdType(tenantId, "kingdee");
if (config == null) {
return Result.error("金蝶尚未配置,请先完成配置");
}
String rawUrl = config.getCorpId();
if (oConvertUtils.isEmpty(rawUrl)) {
return Result.error("金蝶服务地址为空,请先维护服务地址");
}
String endpoint = normalizeUrl(rawUrl);
HttpURLConnection conn = null;
try {
URL url = new URL(endpoint);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.setUseCaches(false);
int code = conn.getResponseCode();
if (code >= 200 && code < 400) {
return Result.OK("连接成功HTTP状态码" + code);
}
return Result.error("连接失败HTTP状态码" + code);
} catch (Exception e) {
log.error("金蝶连通性测试失败", e);
return Result.error("连接失败:" + e.getMessage());
} finally {
if (conn != null) {
conn.disconnect();
}
}
}
private String normalizeUrl(String rawUrl) {
String url = rawUrl == null ? "" : rawUrl.trim();
if (!url.startsWith("http://") && !url.startsWith("https://")) {
url = "http://" + url;
}
return url;
}
/**
* 同步【钉钉】[部门和用户]到本地
*