指令同步日志
This commit is contained in:
parent
212b627879
commit
fe39e1d0c1
|
|
@ -31,6 +31,10 @@ public class OrgAllInfo implements Serializable {
|
|||
* 协议+域名
|
||||
*/
|
||||
private String url;
|
||||
/**
|
||||
* 协议+域名
|
||||
*/
|
||||
private String contextPath;
|
||||
/**
|
||||
* 省份
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -153,5 +153,6 @@ public class DirectiveAsyncMQDto implements Serializable {
|
|||
//情绪标签json字符串(有id、label)
|
||||
private String emotionTagsObj;
|
||||
|
||||
|
||||
//资源请求接口域名+项目上下文路径
|
||||
private String api;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,4 +28,6 @@ public class DirectiveMQDto {
|
|||
private List<BodyTagMQDto> bodyTagList;
|
||||
//情绪标签字典项
|
||||
private List<EmotionTagMQDto> emotionTagList;
|
||||
//是否同步指令资源
|
||||
private boolean izSyncMedia;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.nu.modules.async.entity;
|
|||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
|
@ -57,4 +58,11 @@ public class AsyncStatus implements Serializable {
|
|||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "更新日期")
|
||||
private java.util.Date updateTime;
|
||||
/**目标机构编码*/
|
||||
@Excel(name = "目标机构编码", width = 15)
|
||||
@ApiModelProperty(value = "目标机构编码")
|
||||
private java.lang.String targetOrgCode;
|
||||
//目标机构名称
|
||||
@TableField(exist = false)
|
||||
private String zOrgName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@
|
|||
<result property="status" column="zstatus"/>
|
||||
<result property="msg" column="zmsg"/>
|
||||
<result property="updateTime" column="zupdataTime"/>
|
||||
<result property="targetOrgCode" column="targetOrgCode"/>
|
||||
<result property="zOrgName" column="zOrgName"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
|
|
@ -26,7 +28,7 @@
|
|||
f.id as id,
|
||||
f.primary_key as primaryKey,
|
||||
f.org_code as orgCode,
|
||||
f.org_name as orgName,
|
||||
md.depart_name as orgName,
|
||||
f.type as type,
|
||||
f.descr as descr,
|
||||
f.create_by as createBy,
|
||||
|
|
@ -36,9 +38,13 @@
|
|||
z.name as zname,
|
||||
z.status as zstatus,
|
||||
z.msg as zmsg,
|
||||
z.update_time as zupdataTime
|
||||
z.update_time as zupdataTime,
|
||||
z.target_org_code as targetOrgCode,
|
||||
sd.depart_name as zOrgName
|
||||
from nu_async_main f
|
||||
left join sys_depart md on f.org_code = md.org_code
|
||||
left join nu_async_status z on f.id = z.pkid
|
||||
left join sys_depart sd on z.target_org_code = sd.org_code
|
||||
<where>
|
||||
<if test="records !=null and !records.isEmpty()">
|
||||
f.id in
|
||||
|
|
|
|||
|
|
@ -17,4 +17,6 @@ public interface IAsyncMainService extends IService<AsyncMain> {
|
|||
List<AsyncMain> pageList(List<AsyncMain> records, AsyncMain dto);
|
||||
|
||||
Map<String,List<AsyncMain>> listByType(AsyncMain am);
|
||||
|
||||
void saveData(String dataSourceCode,AsyncMain asyncMain);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.nu.modules.async.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nu.modules.async.entity.AsyncMain;
|
||||
import com.nu.modules.async.entity.AsyncStatus;
|
||||
|
||||
/**
|
||||
* @Description: 数据同步子表-状态记录表
|
||||
|
|
@ -9,5 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
* @Version: V1.0
|
||||
*/
|
||||
public interface IAsyncStatusService extends IService<com.nu.modules.async.entity.AsyncStatus> {
|
||||
|
||||
void saveData(String dataSourceCode,AsyncStatus asyncStatus);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.nu.modules.async.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.nu.enums.MQStatus;
|
||||
|
|
@ -75,4 +76,10 @@ public class AsyncMainServiceImpl extends ServiceImpl<AsyncMainMapper, AsyncMain
|
|||
result.put("processingList", processingList);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@DS("dataSourceCode")
|
||||
public void saveData(String dataSourceCode,AsyncMain asyncMain) {
|
||||
baseMapper.insert(asyncMain);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.nu.modules.async.service.impl;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.nu.modules.async.entity.AsyncStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
|
@ -13,4 +15,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
@Service
|
||||
public class AsyncStatusServiceImpl extends ServiceImpl<com.nu.modules.async.mapper.AsyncStatusMapper, com.nu.modules.async.entity.AsyncStatus> implements com.nu.modules.async.service.IAsyncStatusService {
|
||||
|
||||
@Override
|
||||
@DS("dataSourceCode")
|
||||
public void saveData(String dataSourceCode,AsyncStatus asyncStatus) {
|
||||
baseMapper.insert(asyncStatus);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.nu.modules.servicedirective.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
|
|
@ -7,7 +8,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.beust.jcommander.internal.Maps;
|
||||
import com.nu.dto.DirectiveAsyncMQDto;
|
||||
import com.nu.dto.DirectiveMQDto;
|
||||
import com.nu.modules.directivetag.body.entity.DirectiveBodyTag;
|
||||
import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService;
|
||||
import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag;
|
||||
import com.nu.modules.servicedirective.entity.ConfigServiceDirective;
|
||||
import com.nu.modules.servicedirective.entity.DirectiveSyncDto;
|
||||
import com.nu.modules.servicedirective.service.IConfigServiceDirectiveService;
|
||||
|
|
@ -394,29 +398,63 @@ public class ConfigServiceDirectiveController extends JeecgController<ConfigServ
|
|||
|
||||
/**
|
||||
* @param dataSourceCode 源数据机构编码
|
||||
* @param syncIds 新增指令的id(逗号拼接)
|
||||
* @param upIds 更新指令的id(逗号拼接)
|
||||
* @param syncOrgCodes 同步给哪些机构
|
||||
* @param syncOption “新增”指令需要更新哪些内容 all(业务字段+指令资源) business(业务字段) media(指令资源)
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "服务指令-指令同步")
|
||||
@ApiOperation(value = "服务指令-指令同步", notes = "服务指令-指令同步")
|
||||
@PostMapping(value = "/syncDirective")
|
||||
@DS("#dataSourceCode")
|
||||
public Result<Map> syncDirective(@RequestParam(name = "dataSourceCode") String dataSourceCode,@RequestBody DirectiveSyncDto dto) {
|
||||
public Result<Map> syncDirective(@RequestParam(name = "dataSourceCode") String dataSourceCode, @RequestBody DirectiveSyncDto dto) {
|
||||
//处理接口地址
|
||||
String fullPath = "";
|
||||
if ("all".equals(dto.getSyncOption()) || "media".equals(dto.getSyncOption()) || StringUtils.isNotBlank(dto.getUpIds())) {
|
||||
JSONObject deptInfo = configServiceDirectiveService.getDeptInfo("master",dataSourceCode);
|
||||
String url = deptInfo.getString("url");
|
||||
String contextPath = deptInfo.getString("contextPath");
|
||||
String baseUrl = url.endsWith("/") ? url.substring(0, url.length() - 1) : url;
|
||||
String normalizedContextPath = contextPath.startsWith("/") ? contextPath : "/" + contextPath;
|
||||
normalizedContextPath = normalizedContextPath.endsWith("/")
|
||||
? normalizedContextPath.substring(0, normalizedContextPath.length() - 1)
|
||||
: normalizedContextPath;
|
||||
//接口协议、域名、上下文路径
|
||||
fullPath = baseUrl + normalizedContextPath;
|
||||
}
|
||||
|
||||
//同步-新增服务指令
|
||||
configServiceDirectiveService.syncDirective(dto.getSyncIds(), dto.getSyncOrgCodes(), dto.getSyncOption());
|
||||
//给新增的指令同步指令资源
|
||||
if ("all".equals(dto.getSyncOption()) || "media".equals(dto.getSyncOption())) {
|
||||
configServiceDirectiveService.syncDirective(dto.getSyncIds(), dto.getSyncOrgCodes(), dto.getSyncOption(),fullPath,dataSourceCode);
|
||||
|
||||
}
|
||||
|
||||
//同步 - 更新指令资源字段
|
||||
//给待更新的指令
|
||||
if (StringUtils.isNotBlank(dto.getUpIds())) {
|
||||
|
||||
DirectiveMQDto upDirectiveMQDto = new DirectiveMQDto();
|
||||
List<ConfigServiceDirective> directives;
|
||||
{
|
||||
List<ConfigServiceDirective> param = Lists.newArrayList();
|
||||
Arrays.stream(dto.getUpIds().split(",")).forEach(id -> {
|
||||
ConfigServiceDirective configServiceDirective = new ConfigServiceDirective();
|
||||
configServiceDirective.setId(id);
|
||||
param.add(configServiceDirective);
|
||||
});
|
||||
directives = configServiceDirectiveService.pageList(param);
|
||||
upDirectiveMQDto.setDirectiveList(BeanUtil.copyToList(directives, DirectiveAsyncMQDto.class));
|
||||
}
|
||||
List<DirectiveAsyncMQDto> upDirectiveList = upDirectiveMQDto.getDirectiveList();
|
||||
for (int i = 0; i < upDirectiveList.size(); i++) {
|
||||
upDirectiveList.get(i).setApi(fullPath);
|
||||
}
|
||||
new Thread(() -> {
|
||||
for (String code : dto.getSyncOrgCodes().split(",")) {
|
||||
try {
|
||||
rabbitMQUtil.sendToExchange("hldy.directive", code + ".directive.createmedia", upDirectiveMQDto);
|
||||
// 发送完后,休眠 5 分钟
|
||||
// Thread.sleep(TimeUnit.MINUTES.toMillis(5));
|
||||
// } catch (InterruptedException e) {
|
||||
} catch (Exception e) {
|
||||
Thread.currentThread().interrupt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
//发送消息
|
||||
return Result.ok();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
package com.nu.modules.servicedirective.service;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nu.dto.DirectiveMQDto;
|
||||
import com.nu.modules.servicedirective.entity.ConfigServiceDirective;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -62,5 +63,9 @@ public interface IConfigServiceDirectiveService extends IService<ConfigServiceDi
|
|||
void auditPass(ConfigServiceDirective dto);
|
||||
|
||||
//同步服务指令
|
||||
void syncDirective(String syncIds, String syncOrgCodes, String syncOption);
|
||||
DirectiveMQDto syncDirective(String syncIds, String syncOrgCodes, String syncOption, String fullPath, String dataSourceCode);
|
||||
|
||||
JSONObject getDeptInfo(String dataSourceCode,String orgCode);
|
||||
|
||||
List<ConfigServiceDirective> pageList(List<ConfigServiceDirective> param);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,18 @@
|
|||
package com.nu.modules.servicedirective.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nu.dto.*;
|
||||
import com.nu.enums.MQStatus;
|
||||
import com.nu.modules.async.entity.AsyncMain;
|
||||
import com.nu.modules.async.entity.AsyncStatus;
|
||||
import com.nu.modules.async.service.IAsyncMainService;
|
||||
import com.nu.modules.async.service.IAsyncStatusService;
|
||||
import com.nu.modules.directivetag.body.entity.DirectiveBodyTag;
|
||||
import com.nu.modules.directivetag.body.service.IDirectiveBodyTagService;
|
||||
import com.nu.modules.directivetag.emotion.entity.DirectiveEmotionTag;
|
||||
|
|
@ -69,6 +75,10 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl<ConfigService
|
|||
private IDirectiveEmotionTagService emotionTagService;
|
||||
@Autowired
|
||||
private RabbitMQUtil rabbitMQUtil;
|
||||
@Autowired
|
||||
private IAsyncMainService asyncMainService;
|
||||
@Autowired
|
||||
private IAsyncStatusService asyncStatusService;
|
||||
|
||||
@Override
|
||||
public List<ConfigServiceDirective> pageList(ConfigServiceDirective configServiceDirective, IPage<ConfigServiceDirective> list_) {
|
||||
|
|
@ -400,12 +410,17 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl<ConfigService
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ConfigServiceDirective> pageList(List<ConfigServiceDirective> param) {
|
||||
return baseMapper.pageList(null, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param syncIds 需要同步的指令ID
|
||||
* @param syncOrgCodes 需要同步的目标平台orgCode
|
||||
*/
|
||||
@Override
|
||||
public void syncDirective(String syncIds, String syncOrgCodes, String syncOption) {
|
||||
public DirectiveMQDto syncDirective(String syncIds, String syncOrgCodes, String syncOption, String fullPath, String dataSourceCode) {
|
||||
DirectiveMQDto directiveMQDto = new DirectiveMQDto();
|
||||
List<ConfigServiceDirective> directives;
|
||||
List<String> directiveIds = Arrays.asList(syncIds.split(","));
|
||||
|
|
@ -419,13 +434,17 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl<ConfigService
|
|||
directives = baseMapper.pageList(null, param);
|
||||
if (directives != null && !directives.isEmpty()) {
|
||||
directives.stream().forEach(record -> {
|
||||
//只同步业务字段的话清空指令资源字段的值
|
||||
//清空指令资源字段的值
|
||||
if ("business".equals(syncOption)) {
|
||||
record.setPreviewFile(null);
|
||||
record.setImmediateFile(null);
|
||||
record.setMp3File(null);
|
||||
record.setMp4File(null);
|
||||
record.setServiceContent(null);
|
||||
record.setPreviewFileMd5(null);
|
||||
record.setImmediateFileMd5(null);
|
||||
record.setMp3FileMd5(null);
|
||||
record.setMp4FileMd5(null);
|
||||
}
|
||||
|
||||
List<DirectiveBodyTag> bodyTagList = record.getBodyTagList();
|
||||
|
|
@ -436,6 +455,12 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl<ConfigService
|
|||
});
|
||||
}
|
||||
directiveMQDto.setDirectiveList(BeanUtil.copyToList(directives, DirectiveAsyncMQDto.class));
|
||||
if ("all".equals(syncOption) || "media".equals(syncOption)) {
|
||||
directiveMQDto.setIzSyncMedia(true);
|
||||
directiveMQDto.getDirectiveList().stream().forEach(d -> {
|
||||
d.setApi(fullPath);
|
||||
});
|
||||
}
|
||||
}
|
||||
//分类标签
|
||||
{
|
||||
|
|
@ -477,7 +502,40 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl<ConfigService
|
|||
}
|
||||
//给对应业务平台发送消息
|
||||
Arrays.stream(syncOrgCodes.split(",")).forEach(orgCode -> {
|
||||
AsyncMain asyncMain = new AsyncMain();
|
||||
asyncMain.setType("directive");
|
||||
asyncMain.setOrgCode(dataSourceCode);
|
||||
asyncMain.setDescr("服务指令同步");
|
||||
asyncMainService.saveData("master",asyncMain);
|
||||
directiveMQDto.setAsyncId(asyncMain.getId());
|
||||
|
||||
AsyncStatus asyncStatus_data = new AsyncStatus();
|
||||
asyncStatus_data.setPkid(asyncMain.getId());
|
||||
asyncStatus_data.setCode("data");
|
||||
asyncStatus_data.setName("数据");
|
||||
asyncStatus_data.setStatus(MQStatus.LOADING.getCode() + "");
|
||||
asyncStatus_data.setMsg("同步中");
|
||||
asyncStatus_data.setTargetOrgCode(orgCode);
|
||||
asyncStatusService.saveData("master",asyncStatus_data);
|
||||
|
||||
if ("all".equals(syncOption) || "media".equals(syncOption)) {
|
||||
AsyncStatus asyncStatus_file = new AsyncStatus();
|
||||
asyncStatus_file.setPkid(asyncMain.getId());
|
||||
asyncStatus_file.setCode("file");
|
||||
asyncStatus_file.setName("文件");
|
||||
asyncStatus_file.setStatus(MQStatus.LOADING.getCode() + "");
|
||||
asyncStatus_file.setMsg("同步中");
|
||||
asyncStatus_file.setTargetOrgCode(orgCode);
|
||||
asyncStatusService.saveData("master",asyncStatus_file);
|
||||
}
|
||||
rabbitMQUtil.sendToExchange("hldy.directive", orgCode + ".directive.syncDirective", directiveMQDto);
|
||||
});
|
||||
return directiveMQDto;
|
||||
}
|
||||
|
||||
@DS("dataSourceCode")
|
||||
@Override
|
||||
public JSONObject getDeptInfo(String dataSourceCode,String orgCode) {
|
||||
return sysBaseAPI.getOrgInfo(orgCode);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,6 +60,10 @@ public class SysDepartEntity implements Serializable {
|
|||
* 协议+域名
|
||||
*/
|
||||
private String url;
|
||||
/**
|
||||
* 项目访问路径
|
||||
*/
|
||||
private String contextPath;
|
||||
/**
|
||||
* 省份
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -80,6 +80,10 @@ public class SysDepart implements Serializable {
|
|||
*/
|
||||
@Excel(name = "协议+域名", width = 30)
|
||||
private String url;
|
||||
/**
|
||||
* 项目访问路径
|
||||
*/
|
||||
private String contextPath;
|
||||
/**
|
||||
* 省份
|
||||
*/
|
||||
|
|
@ -246,6 +250,7 @@ public class SysDepart implements Serializable {
|
|||
Objects.equals(orgType, depart.orgType) &&
|
||||
Objects.equals(orgCode, depart.orgCode) &&
|
||||
Objects.equals(url, depart.url) &&
|
||||
Objects.equals(contextPath, depart.contextPath) &&
|
||||
Objects.equals(province, depart.province) &&
|
||||
Objects.equals(city, depart.city) &&
|
||||
Objects.equals(district, depart.district) &&
|
||||
|
|
@ -274,7 +279,7 @@ public class SysDepart implements Serializable {
|
|||
public int hashCode() {
|
||||
return Objects.hash(super.hashCode(), id, parentId, departName,
|
||||
departNameEn, departNameAbbr, departOrder, description, orgCategory,
|
||||
orgType, orgCode, url, province, city, district, operationStartTime,
|
||||
orgType, orgCode, url,contextPath, province, city, district, operationStartTime,
|
||||
operationEndTime, contractStartTime, contractEndTime, mobile, fax, address, memo, status,
|
||||
delFlag, createBy, createTime, updateBy, updateTime, tenantId, payableAmount);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ public class SysDepartTreeModel implements Serializable {
|
|||
|
||||
private String url;
|
||||
|
||||
private String contextPath;
|
||||
|
||||
private String province;
|
||||
|
||||
private String city;
|
||||
|
|
@ -138,6 +140,7 @@ public class SysDepartTreeModel implements Serializable {
|
|||
this.orgType = sysDepart.getOrgType();
|
||||
this.orgCode = sysDepart.getOrgCode();
|
||||
this.url = sysDepart.getUrl();
|
||||
this.contextPath = sysDepart.getContextPath();
|
||||
this.province = sysDepart.getProvince();
|
||||
this.city = sysDepart.getCity();
|
||||
this.district = sysDepart.getDistrict();
|
||||
|
|
@ -486,6 +489,14 @@ public class SysDepartTreeModel implements Serializable {
|
|||
this.url = url;
|
||||
}
|
||||
|
||||
public String getContextPath() {
|
||||
return contextPath;
|
||||
}
|
||||
|
||||
public void setContextPath(String contextPath) {
|
||||
this.contextPath = contextPath;
|
||||
}
|
||||
|
||||
/**
|
||||
* 重写equals方法
|
||||
*/
|
||||
|
|
@ -510,6 +521,7 @@ public class SysDepartTreeModel implements Serializable {
|
|||
Objects.equals(orgType, model.orgType) &&
|
||||
Objects.equals(orgCode, model.orgCode) &&
|
||||
Objects.equals(url, model.url) &&
|
||||
Objects.equals(contextPath, model.contextPath) &&
|
||||
Objects.equals(province, model.province) &&
|
||||
Objects.equals(city, model.city) &&
|
||||
Objects.equals(district, model.district) &&
|
||||
|
|
@ -540,7 +552,7 @@ public class SysDepartTreeModel implements Serializable {
|
|||
public int hashCode() {
|
||||
|
||||
return Objects.hash(id, parentId, platType, departName, departNameEn, departNameAbbr,
|
||||
departOrder, description, orgCategory, orgType, orgCode, url, province, city, district,
|
||||
departOrder, description, orgCategory, orgType, orgCode, url, contextPath, province, city, district,
|
||||
operationStartTime, operationEndTime, contractStartTime, contractEndTime,
|
||||
mobile, fax, address, memo, status, delFlag, qywxIdentifier,
|
||||
createBy, createTime, updateBy, updateTime, children, directorUserIds, payableAmount);
|
||||
|
|
|
|||
|
|
@ -1917,6 +1917,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
|||
map.put("code",list.get(0).getOrgCode());
|
||||
map.put("name",list.get(0).getDepartName());
|
||||
map.put("url",list.get(0).getUrl());
|
||||
map.put("contextPath",list.get(0).getContextPath());
|
||||
}
|
||||
return new JSONObject(map);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue