iam数据同步修改

This commit is contained in:
梁琦涛
2024-08-05 16:56:17 +08:00
parent 7b09f0bff8
commit 4fb523c5eb
9 changed files with 190 additions and 100 deletions
@@ -1,8 +1,6 @@
package com.jero.modules.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.jero.common.aspect.annotation.Dict;
@@ -70,6 +68,7 @@ public class SysDepart implements Serializable {
private String status;
/**删除状态(0,正常,1已删除)*/
@Dict(dicCode = "del_flag")
@TableLogic
private String delFlag;
/**创建人*/
private String createBy;
@@ -1,6 +1,9 @@
package com.jero.modules.system.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Select;
import com.jero.modules.system.entity.SysDepart;
import org.springframework.data.repository.query.Param;
@@ -11,12 +14,12 @@ import java.util.List;
* <p>
* 部门 Mapper 接口
* <p>
*
*
* @Author: Steve
* @Since 2019-01-22
*/
public interface SysDepartMapper extends BaseMapper<SysDepart> {
/**
* 根据用户ID查询部门集合
*/
@@ -71,4 +74,25 @@ public interface SysDepartMapper extends BaseMapper<SysDepart> {
*/
@Select("SELECT * FROM sys_depart where del_flag ='0' AND parent_id = #{parentId,jdbcType=VARCHAR}")
List<SysDepart> queryDeptByPid(@Param("parentId")String parentId);
/**
* 查询部门数据
* @param
* @return
*/
List<SysDepart> queryDeptList(@org.apache.ibatis.annotations.Param(Constants.WRAPPER) LambdaQueryWrapper<SysDepart> queryWrapper);
/**
* 查詢數據
* @param id
* @return
*/
SysDepart queryId(String id);
/**
* 更新id
* @param id
*/
void updateId(String id);
}
@@ -2,7 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.system.mapper.SysDepartMapper">
<select id="queryUserDeparts" parameterType="String" resultType="com.jero.modules.system.entity.SysDepart">
<select id="queryUserDeparts" parameterType="String" resultType="com.jero.modules.system.entity.SysDepart">
select * from sys_depart where id IN ( select dep_id from sys_user_depart where user_id = #{userId} )
</select>
@@ -52,4 +53,17 @@
<select id="queryCompByOrgCode" resultType="com.jero.modules.system.entity.SysDepart">
select * from sys_depart where del_flag = '0' and org_category='1' and org_code= #{orgCode,jdbcType=VARCHAR}
</select>
</mapper>
<select id="queryDeptList" resultType="com.jero.modules.system.entity.SysDepart">
select * from sys_depart
<where>
${ew.sqlSegment}
</where>
</select>
<select id="queryId" resultType="com.jero.modules.system.entity.SysDepart">
select * from sys_depart where del_flag = 1 and id =#{id}
</select>
<update id="updateId">
update sys_depart set del_flag = 0 where id =#{id}
</update>
</mapper>
@@ -6,6 +6,7 @@ import com.jero.common.handler.IFillRuleHandler;
import com.jero.common.util.SpringContextUtils;
import com.jero.common.util.YouBianCodeUtil;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.mapper.SysDepartMapper;
import com.jero.modules.system.service.ISysDepartService;
import io.netty.util.internal.StringUtil;
import org.jetbrains.annotations.Nullable;
@@ -21,7 +22,7 @@ public class OrgCodeRule implements IFillRuleHandler {
@Override
public Object execute(JSONObject params, JSONObject formData) {
ISysDepartService sysDepartService = (ISysDepartService) SpringContextUtils.getBean("sysDepartServiceImpl");
SysDepartMapper sysDepartService = (SysDepartMapper) SpringContextUtils.getBean("sysDepartMapper");
LambdaQueryWrapper<SysDepart> query = new LambdaQueryWrapper<>();
LambdaQueryWrapper<SysDepart> query1 = new LambdaQueryWrapper<>();
@@ -42,7 +43,7 @@ public class OrgCodeRule implements IFillRuleHandler {
// 线判断数据库中的表是否为空,空则直接返回初始编码
query1.eq(SysDepart::getParentId, "").or().isNull(SysDepart::getParentId);
query1.orderByDesc(SysDepart::getOrgCode);
departList = sysDepartService.list(query1);
departList = sysDepartService.queryDeptList(query1);
if (departList == null || departList.isEmpty()) {
strArray[0] = YouBianCodeUtil.getNextYouBianCode(null);
strArray[1] = "1";
@@ -59,9 +60,9 @@ public class OrgCodeRule implements IFillRuleHandler {
// 降序排序
query.orderByDesc(SysDepart::getOrgCode);
// 查询出同级部门的集合
List<SysDepart> parentList = sysDepartService.list(query);
List<SysDepart> parentList = sysDepartService.queryDeptList(query);
// 查询出父级部门
SysDepart depart = sysDepartService.getById(parentId);
SysDepart depart = sysDepartService.selectById(parentId);
// 获取父级部门的Code
String parentCode = depart.getOrgCode();
// 根据父级部门类型算出当前部门的类型
@@ -46,7 +46,7 @@ public class TestClient {
// testClient.sendUserCreate(i);
// }
// 创建用户接口测试
// testClient.sendUserUpdate(); // 更新用户接口测试
testClient.sendUserUpdate(); // 更新用户接口测试
// testClient.sendUserDel(); // 更新用户接口测试
// testClient.sendOrgCreate(); // 组织创建接口测试
// testClient.sendOrgUpdate(); // 组织修改接口测试
@@ -54,7 +54,7 @@ public class TestClient {
// testClient.sendQueryAllUserIdsService(); // 查询所有用户ID接口测试
// testClient.sendQueryAllOrgIdsService(); // 查询所有组织ID接口测试
// testClient.sendQueryOrgByIdService(); // 查询指定id的组织数据测试
testClient.sendQueryUserByIdService(); // 查询指定id的用户数据测试
// testClient.sendQueryUserByIdService(); // 查询指定id的用户数据测试
// testClient.decryptSting("8rAKWPUwkEZ3yYLy/1TuGGkIGCYtc+MD56pShLi97OmMttoFooo5GXZ/lY4NrQ5DiWmVUX23zqDwyQqufXLZNDU+KuJO/9UonpqUlZxM91w=");
}
@@ -203,7 +203,7 @@ public class TestClient {
private void sendUserUpdate() throws JsonProcessingException {
// 封装 IamUserAcceptDto 为用户数据层
IamUserAcceptDto iamUserAcceptDto = new IamUserAcceptDto();
iamUserAcceptDto.setBimUid("1803973103451799554"); // 数据库中取到的ID
iamUserAcceptDto.setBimUid("1820381905836400641"); // 数据库中取到的ID
iamUserAcceptDto.setBirthday("2018-12-05 00:00:00");
iamUserAcceptDto.setBirthday("2024-05-01");
iamUserAcceptDto.setEntryTime("2024-06-01");
@@ -212,6 +212,7 @@ public class TestClient {
iamUserAcceptDto.setEmployeeNo("feishuid");
iamUserAcceptDto.setBimRemoteUser("srmsIam");
iamUserAcceptDto.setBimRemotePwd("srmsIam2023");
iamUserAcceptDto.set__ENABLE__(true);
StringBuilder sb = getStringBuilder(iamUserAcceptDto);
@@ -276,9 +277,13 @@ public class TestClient {
// 封装 IamUserAcceptDto 为用户数据层
IamOrgAcceptDto iamOrgAcceptDto = new IamOrgAcceptDto();
iamOrgAcceptDto.setSrmsOrgCode("IA00104");
iamOrgAcceptDto.setSrmsDepartName("测试IAM部门");
iamOrgAcceptDto.setSrmsParentCode("");
// iamOrgAcceptDto.setSrmsOrgCode("D10000001");
// iamOrgAcceptDto.setSrmsDepartName("奇瑞机构部门");
// iamOrgAcceptDto.setSrmsParentCode("");
iamOrgAcceptDto.setSrmsOrgCode("D10000005");
iamOrgAcceptDto.setSrmsDepartName("销售部");
iamOrgAcceptDto.setSrmsParentCode("D10000001");
iamOrgAcceptDto.setBimRequestId(UUIDUtils.randomUUID20());
iamOrgAcceptDto.setBimRemoteUser("srmsIam");
@@ -350,7 +355,7 @@ public class TestClient {
private void sendOrgDel() throws JsonProcessingException {
// 封装 IamUserAcceptDto 为用户数据层
IamOrgAcceptDto iamOrgAcceptDto = new IamOrgAcceptDto();
iamOrgAcceptDto.setBimOrgId("IA00104");
iamOrgAcceptDto.setBimOrgId("D10000004");
iamOrgAcceptDto.setBimRequestId(UUIDUtils.randomUUID20());
iamOrgAcceptDto.setBimRemoteUser("srmsIam");
@@ -196,6 +196,7 @@ public class SyncIamByCheryController {
}
@PostMapping({"/OrgDeleteService"})
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true)
public String orgDeleteService(HttpServletRequest req) {
IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto();
try {
@@ -82,4 +82,10 @@ public class IamUserAcceptDto extends IamCommonAcceptDto {
*/
@IamProperty(required = true, multivalued = false)
private String resignationTime;
/**
* 启用状态
*/
@IamProperty(required = true, multivalued = false)
private Boolean __ENABLE__;
}
@@ -31,6 +31,7 @@ import com.jero.modules.docking.iam.po.encrypt.SendPoEncryptPo;
import com.jero.modules.docking.utils.BamboocloudCheryUtils;
import com.jero.modules.docking.utils.DockingConstant;
import com.jero.modules.system.entity.*;
import com.jero.modules.system.mapper.SysDepartMapper;
import com.jero.modules.system.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -85,6 +86,8 @@ public class SyncIamService {
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private SysDepartMapper sysDepartMapper;
private String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
@@ -253,7 +256,6 @@ public class SyncIamService {
sysUser.setEmail(userAcceptDto.getSrmsEmail());
sysUser.setPhone(userAcceptDto.getSrmsPhone());
sysUser.setTelephone(userAcceptDto.getSrmsPhone());
sysUser.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
sysUser.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
@@ -295,70 +297,81 @@ public class SyncIamService {
throw new IamGlobalException(userAcceptDto.getBimRequestId(), "未查询到id为(" + userAcceptDto.getBimUid() + ")用户,无法更新");
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsUsername())){
sysUser.setUsername(userAcceptDto.getSrmsUsername());
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsRealname())){
sysUser.setRealname(userAcceptDto.getSrmsRealname());
}
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsSex()) && NumberUtil.isInteger(userAcceptDto.getSrmsSex())){
sysUser.setSex(Integer.valueOf(userAcceptDto.getSrmsSex()));
}
// 手机号 和 邮箱有加密,需要单独处理
sysUser.setEmail(userAcceptDto.getSrmsEmail());
sysUser.setPhone(userAcceptDto.getSrmsPhone());
sysUser.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsTypeId())){
sysUser.setTypeId(userAcceptDto.getSrmsTypeId());
}
try {
if(StringUtils.isEmpty(userAcceptDto.getBirthday())){
sysUser.setBirthday(null);
}else{
sysUser.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getBirthday()));
if(!Objects.isNull(userAcceptDto.get__ENABLE__())){
LambdaUpdateWrapper<SysUser> querySysUser = new LambdaUpdateWrapper<>();
querySysUser.eq(SysUser::getId,userAcceptDto.getBimUid());
querySysUser.set(SysUser::getStatus,userAcceptDto.get__ENABLE__() ? 1 : 2);
querySysUser.set(SysUser::getUpdateTime,new Date());
querySysUser.set(SysUser::getUpdateTime,new Date());
sysUser.setCreateBy(DockingConstant.IAM_SYSTEM_NAME);
sysUser.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
this.sysUserService.update(querySysUser);
}else{
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsUsername())){
sysUser.setUsername(userAcceptDto.getSrmsUsername());
}
} catch (ParseException e) {
throw new IamGlobalException(userAcceptDto.getBimRequestId(),"生日格式错误,请输入(yyyy-MM-dd)");
}
try {
if(StringUtils.isEmpty(userAcceptDto.getEntryTime())){
sysUser.setEntryTime(null);
}else{
sysUser.setEntryTime(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getEntryTime()));
}
} catch (ParseException e) {
throw new IamGlobalException(userAcceptDto.getBimRequestId(),"入职时间格式错误,请输入(yyyy-MM-dd)");
}
try {
if(StringUtils.isEmpty(userAcceptDto.getResignationTime())){
sysUser.setResignationTime(null);
}else{
sysUser.setResignationTime(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getResignationTime()));
}
} catch (ParseException e) {
throw new IamGlobalException(userAcceptDto.getBimRequestId(),"离职时间格式错误,请输入(yyyy-MM-dd)");
}
// 设置飞书id, IAM村的id就是飞书id
sysUser.setFeishuId(userAcceptDto.getEmployeeNo());
// 获取组织机构(多个逗号分隔)
String orgCode = userAcceptDto.getSrmsOrgCode();
String selectedDeparts = null;
if (CharSequenceUtil.isNotEmpty(orgCode)){
List<SysDepart> sysDepartList = sysDepartService.list(
new LambdaQueryWrapper<SysDepart>()
.in(SysDepart::getOrgCode, Arrays.asList(orgCode.split(","))));
if (CollectionUtils.isNotEmpty(sysDepartList)){
selectedDeparts = sysDepartList.stream().map(SysDepart::getId)
.collect(Collectors.joining(","));
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsRealname())){
sysUser.setRealname(userAcceptDto.getSrmsRealname());
}
}
// 编辑存储到用户表中,角色是系统自己处理的,更新不会影响角色,所以不传
this.sysUserService.editUser(sysUser, null, selectedDeparts);
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsSex()) && NumberUtil.isInteger(userAcceptDto.getSrmsSex())){
sysUser.setSex(Integer.valueOf(userAcceptDto.getSrmsSex()));
}
sysUser.setEmail(userAcceptDto.getSrmsEmail());
sysUser.setPhone(userAcceptDto.getSrmsPhone());
sysUser.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsTypeId())){
sysUser.setTypeId(userAcceptDto.getSrmsTypeId());
}
try {
if(StringUtils.isEmpty(userAcceptDto.getBirthday())){
sysUser.setBirthday(null);
}else{
sysUser.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getBirthday()));
}
} catch (ParseException e) {
throw new IamGlobalException(userAcceptDto.getBimRequestId(),"生日格式错误,请输入(yyyy-MM-dd)");
}
try {
if(StringUtils.isEmpty(userAcceptDto.getEntryTime())){
sysUser.setEntryTime(null);
}else{
sysUser.setEntryTime(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getEntryTime()));
}
} catch (ParseException e) {
throw new IamGlobalException(userAcceptDto.getBimRequestId(),"入职时间格式错误,请输入(yyyy-MM-dd)");
}
try {
if(StringUtils.isEmpty(userAcceptDto.getResignationTime())){
sysUser.setResignationTime(null);
}else{
sysUser.setResignationTime(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getResignationTime()));
}
} catch (ParseException e) {
throw new IamGlobalException(userAcceptDto.getBimRequestId(),"离职时间格式错误,请输入(yyyy-MM-dd)");
}
// 设置飞书id, IAM村的id就是飞书id
sysUser.setFeishuId(userAcceptDto.getEmployeeNo());
// 获取组织机构(多个逗号分隔)
String orgCode = userAcceptDto.getSrmsOrgCode();
String selectedDeparts = null;
if (CharSequenceUtil.isNotEmpty(orgCode)){
List<SysDepart> sysDepartList = sysDepartService.list(
new LambdaQueryWrapper<SysDepart>()
.in(SysDepart::getOrgCode, Arrays.asList(orgCode.split(","))));
if (CollectionUtils.isNotEmpty(sysDepartList)){
selectedDeparts = sysDepartList.stream().map(SysDepart::getId)
.collect(Collectors.joining(","));
}
}
// 编辑存储到用户表中,角色是系统自己处理的,更新不会影响角色,所以不传
this.sysUserService.editUser(sysUser, null, selectedDeparts);
}
IamUserCreateResponse iamUserCreateResponse = new IamUserCreateResponse();
iamUserCreateResponse.setBimRequestId(userAcceptDto.getBimRequestId());
@@ -389,6 +402,7 @@ public class SyncIamService {
updateSysUser.eq(SysUser::getId,userAcceptDto.getBimUid());
updateSysUser.set(SysUser::getStatus,"2");
updateSysUser.set(SysUser::getUpdateTime,new Date());
updateSysUser.set(SysUser::getUpdateBy,DockingConstant.IAM_SYSTEM_NAME);
this.sysUserService.update(updateSysUser);
IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto();
@@ -421,21 +435,49 @@ public class SyncIamService {
iamOrgCreateResponse.setResultCode(DockingConstant.IAM_SUCCESS_RESULT_CODE);
iamOrgCreateResponse.setMessage(DockingConstant.IAM_SUCCESS_MESSAGE);
// 将iam的数据转换成sysDepart数据存入数据库
SysDepart sysDepart = new SysDepart();
sysDepart.setId(orgAcceptDto.getSrmsOrgCode());
sysDepart.setParentId(orgAcceptDto.getSrmsParentCode());
// 生成orgCode
JSONObject formData = new JSONObject();
formData.put("parentId", orgAcceptDto.getSrmsParentCode());
String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.DEPART, formData);
sysDepart.setOrgCode(codeArray[0]);
sysDepart.setDepartName(orgAcceptDto.getSrmsDepartName());
sysDepart.setDepartOrder(100); // 接入数据无排序,都设置为100
SysDepart listSysDepart = sysDepartMapper.queryId(orgAcceptDto.getSrmsOrgCode());
if(!Objects.isNull(listSysDepart)){
sysDepartMapper.updateId(orgAcceptDto.getSrmsOrgCode());
// 将iam的数据转换成sysDepart数据存入数据库
SysDepart sysDepart = this.sysDepartService.getById(orgAcceptDto.getSrmsOrgCode());
if (sysDepart == null){
throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "未查询到id为(" + orgAcceptDto.getSrmsOrgCode() + ")组织,无法更新");
}
// 存储到组织机构表中
this.sysDepartService.save(sysDepart);
iamOrgCreateResponse.setUid(sysDepart.getId());
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsParentCode())){
sysDepart.setParentId(orgAcceptDto.getSrmsParentCode());
}
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsDepartName())){
sysDepart.setDepartName(orgAcceptDto.getSrmsDepartName());
}
sysDepart.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
sysDepart.setUpdateTime(new Date());
// 存储到组织机构表中
this.sysDepartService.updateById(sysDepart);
iamOrgCreateResponse.setUid(orgAcceptDto.getSrmsOrgCode());
}else{
// 将iam的数据转换成sysDepart数据存入数据库
SysDepart sysDepart = new SysDepart();
sysDepart.setId(orgAcceptDto.getSrmsOrgCode());
sysDepart.setParentId(orgAcceptDto.getSrmsParentCode());
if(StringUtils.isEmpty(orgAcceptDto.getSrmsParentCode())){
sysDepart.setOrgType("1");
}else{
sysDepart.setOrgType("2");
}
// 生成orgCode
JSONObject formData = new JSONObject();
formData.put("parentId", orgAcceptDto.getSrmsParentCode());
String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.DEPART, formData);
sysDepart.setOrgCode(codeArray[0]);
sysDepart.setDepartName(orgAcceptDto.getSrmsDepartName());
sysDepart.setDepartOrder(100); // 接入数据无排序,都设置为100
// 存储到组织机构表中
this.sysDepartService.save(sysDepart);
iamOrgCreateResponse.setUid(sysDepart.getId());
}
return iamOrgCreateResponse;
}
@@ -469,6 +511,8 @@ public class SyncIamService {
if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsDepartName())){
sysDepart.setDepartName(orgAcceptDto.getSrmsDepartName());
}
sysDepart.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME);
sysDepart.setUpdateTime(new Date());
// 存储到组织机构表中
this.sysDepartService.updateById(sysDepart);
@@ -180,7 +180,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
LawsMarketStandard manifest = marketStandardDetailVO.getManifest();
manifest.setManifestStatus(MarketStandardConstants.MANIFEST_STATUS_NOT_PUBLISH);
// 设置清单编号
manifest.setManifestNo(this.generateManifestNo(manifest.getManifestNo()));
manifest.setManifestNo(this.generateManifestNo(manifest.getManifestNo(),null));
Map<String, List<DictModel>> map = sysBaseAPI.translateManyDict("market_state",manifest.getCountry());
List<DictModel> listDict = map.get("market_state");
List<String> country = listDict.stream().map(DictModel::getText).collect(Collectors.toList());
@@ -205,7 +205,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
* @param manifestNoSub
* @return
*/
private String generateManifestNo(String manifestNoSub) {
private String generateManifestNo(String manifestNoSub,String oldManifestNoSub) {
// 生成清单编号
String s = "BZFG-" + manifestNoSub + "-";
String manifestNo = marketStandardMapper.getOneByManifestNo(s);
@@ -247,11 +247,7 @@ public class LawsMarketStandardServiceImpl extends ServiceImpl<LawsMarketStandar
update.eq(LawsMarketStandard::getId,manifest.getId());
update(update);
}else{
List<String> listCountry = Arrays.stream(manifest.getCountry().split(",")).sorted().collect(Collectors.toList());
List<String> listOldCountry = Arrays.stream(lawsMarketStandardOld.getCountry().split(",")).sorted().collect(Collectors.toList());;
if(!Objects.equals(listCountry,listOldCountry)){
manifest.setManifestNo(generateManifestNo(manifest.getManifestNo()));
}
manifest.setManifestNo(generateManifestNo(manifest.getManifestNo(),lawsMarketStandardOld.getManifestNo()));
Map<String, List<DictModel>> map = sysBaseAPI.translateManyDict("market_state",manifest.getCountry());
List<DictModel> listDict = map.get("market_state");
List<String> country = listDict.stream().map(DictModel::getText).collect(Collectors.toList());