✨ 组织树独立权限、平台公司回写、合同计费客商角色与查看菜单补齐
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+4
@@ -203,14 +203,18 @@ public class Dept extends TenantEntity {
|
||||
|
||||
/**
|
||||
* 是否平台公司:0否,1是
|
||||
* ALWAYS:保证「否(0)」也能更新落库,避免被字段策略跳过
|
||||
*/
|
||||
@Schema(description = "是否平台公司:0否,1是")
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private Integer isPlatformCompany;
|
||||
|
||||
/**
|
||||
* 是否业务部门:0否,1是
|
||||
* ALWAYS:保证「否(0)」也能更新落库,避免被字段策略跳过
|
||||
*/
|
||||
@Schema(description = "是否业务部门:0否,1是")
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private Integer isBusinessDept;
|
||||
|
||||
/**
|
||||
|
||||
+12
@@ -67,6 +67,18 @@ public class RoleDataScopeVO implements Serializable {
|
||||
return scope;
|
||||
}
|
||||
|
||||
/**
|
||||
* 无组织可见(未配置数据权限时的默认结果)
|
||||
*/
|
||||
public static RoleDataScopeVO none() {
|
||||
RoleDataScopeVO scope = new RoleDataScopeVO();
|
||||
scope.setScopeType(RoleDataScopeType.CUSTOM.getCode());
|
||||
scope.setAllDept(false);
|
||||
scope.setOwnCreate(false);
|
||||
scope.setDeptIds(Collections.emptyList());
|
||||
return scope;
|
||||
}
|
||||
|
||||
public static RoleDataScopeVO ownCreate() {
|
||||
RoleDataScopeVO scope = new RoleDataScopeVO();
|
||||
scope.setScopeType(RoleDataScopeType.OWN_CREATE.getCode());
|
||||
|
||||
+5
-1
@@ -64,9 +64,13 @@ public class ContractManageVO extends ContractManage {
|
||||
private Boolean hcsSynced;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Schema(description = "生效类型筛选")
|
||||
@Schema(description = "合同状态筛选")
|
||||
private String effectiveType;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Schema(description = "客商(匹配甲/乙/丙方)")
|
||||
private String partyName;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Schema(description = "创建人姓名")
|
||||
private String createUserName;
|
||||
|
||||
+6
-2
@@ -126,8 +126,11 @@ public class DeptController extends BladeController {
|
||||
|
||||
/**
|
||||
* 获取部门树形结构
|
||||
* <p>
|
||||
* 登录即可调用;数据范围由角色「数据权限」中 {@code dept_tree}(树形结构)单独配置,
|
||||
* 未配置时返回空树(默认不展示)。
|
||||
*/
|
||||
@PreAuth(menu = "dept")
|
||||
@PreAuth(AuthConstant.PERMIT_ALL)
|
||||
@GetMapping("/tree")
|
||||
@ApiOperationSupport(order = 4)
|
||||
@Operation(summary = "树形结构", description = "树形结构")
|
||||
@@ -139,8 +142,9 @@ public class DeptController extends BladeController {
|
||||
* 懒加载获取部门树形结构
|
||||
* <p>
|
||||
* tenantId 由 Service 层完整决策:超管入参为空表示查全部,非超管强制覆盖为会话租户。
|
||||
* 数据范围与 {@link #tree} 相同,由 {@code dept_tree} 单独配置,未配置时返回空树。
|
||||
*/
|
||||
@PreAuth(menu = "dept")
|
||||
@PreAuth(AuthConstant.PERMIT_ALL)
|
||||
@GetMapping("/lazy-tree")
|
||||
@ApiOperationSupport(order = 5)
|
||||
@Operation(summary = "懒加载树形结构", description = "树形结构")
|
||||
|
||||
+10
@@ -66,6 +66,16 @@ public interface IRoleMenuDataScopeService extends BaseService<RoleMenuDataScope
|
||||
*/
|
||||
RoleDataScopeVO resolveByMenuCode(List<Long> roleIds, String menuCode, List<Long> userDeptIds);
|
||||
|
||||
/**
|
||||
* 按菜单编码解析角色数据权限;菜单不存在或未配置时返回空权限(不回落为全部组织)
|
||||
*
|
||||
* @param roleIds 角色ID集合
|
||||
* @param menuCode 菜单编码
|
||||
* @param userDeptIds 用户所属组织
|
||||
* @return 解析结果
|
||||
*/
|
||||
RoleDataScopeVO resolveByMenuCodeOrEmpty(List<Long> roleIds, String menuCode, List<Long> userDeptIds);
|
||||
|
||||
/**
|
||||
* 合并用户全部角色菜单配置为最宽数据权限
|
||||
*
|
||||
|
||||
+35
-35
@@ -224,13 +224,18 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
.toList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 组织树专用数据权限菜单编码(角色「数据权限」中单独配置;未配置时组织树默认不展示)。
|
||||
*/
|
||||
public static final String MENU_DEPT_TREE = "dept_tree";
|
||||
|
||||
/**
|
||||
* 解析当前登录用户的组织树数据权限。
|
||||
* <p>
|
||||
* 超管或角色菜单数据权限最宽合并为「全部组织」时不过滤;
|
||||
* 其余按角色配置的组织并集过滤。仅「本人创建」时按用户所属组织及下级展示组织树。
|
||||
* 仅读取 {@link #MENU_DEPT_TREE}「树形结构」菜单的数据权限配置,不再合并其他业务菜单;
|
||||
* 超管不过滤;未配置该菜单数据权限时返回空树(默认不显示)。
|
||||
*
|
||||
* @return 过滤上下文;无法识别用户时按空权限处理
|
||||
* @return 过滤上下文;无法识别用户或未配置时按空权限处理
|
||||
*/
|
||||
private DeptDataScopeFilter resolveDeptDataScopeFilter() {
|
||||
if (AuthUtil.isAdministrator()) {
|
||||
@@ -246,8 +251,11 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
if (Func.isNotEmpty(user) && Func.isNotEmpty(user.getDeptId())) {
|
||||
userDeptIds = Func.toLongList(user.getDeptId());
|
||||
}
|
||||
RoleDataScopeVO scope = roleMenuDataScopeService.resolveWidest(roleIds, userDeptIds);
|
||||
if (scope == null || scope.isAllDept()) {
|
||||
RoleDataScopeVO scope = roleMenuDataScopeService.resolveByMenuCodeOrEmpty(roleIds, MENU_DEPT_TREE, userDeptIds);
|
||||
if (scope == null) {
|
||||
return DeptDataScopeFilter.empty();
|
||||
}
|
||||
if (scope.isAllDept()) {
|
||||
return DeptDataScopeFilter.all();
|
||||
}
|
||||
LinkedHashSet<Long> allowedDeptIds = new LinkedHashSet<>();
|
||||
@@ -665,12 +673,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
dept.setAncestors(parent.getAncestors() + StringPool.COMMA + dept.getParentId());
|
||||
}
|
||||
dept.setIsDeleted(BladeConstant.DB_NOT_DELETED);
|
||||
if (dept.getIsPlatformCompany() == null) {
|
||||
dept.setIsPlatformCompany(0);
|
||||
}
|
||||
if (dept.getIsBusinessDept() == null) {
|
||||
dept.setIsBusinessDept(0);
|
||||
}
|
||||
// 统一规范为 0/1,避免前端传空串、布尔或其它类型导致更新未生效
|
||||
dept.setIsPlatformCompany(normalizeYesNoFlag(dept.getIsPlatformCompany()));
|
||||
dept.setIsBusinessDept(normalizeYesNoFlag(dept.getIsBusinessDept()));
|
||||
// 排序未填时默认 1
|
||||
if (dept.getSort() == null) {
|
||||
dept.setSort(1);
|
||||
@@ -679,9 +684,24 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
throw new ServiceException("租户ID不能为空");
|
||||
}
|
||||
validateDeptCategory(dept);
|
||||
validateDeptCode(dept, parent);
|
||||
validateDeptCode(dept);
|
||||
validateContractInitialSerial(dept);
|
||||
return saveOrUpdate(dept);
|
||||
boolean saved = saveOrUpdate(dept);
|
||||
if (saved && Func.isNotEmpty(dept.getId())) {
|
||||
// 显式回写两个业务标志,避免部分更新路径漏改
|
||||
this.update(Wrappers.<Dept>lambdaUpdate()
|
||||
.set(Dept::getIsPlatformCompany, dept.getIsPlatformCompany())
|
||||
.set(Dept::getIsBusinessDept, dept.getIsBusinessDept())
|
||||
.eq(Dept::getId, dept.getId()));
|
||||
}
|
||||
return saved;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将是否类标志规范为 0/1;空值按 0 处理。
|
||||
*/
|
||||
private Integer normalizeYesNoFlag(Integer flag) {
|
||||
return Integer.valueOf(1).equals(flag) ? 1 : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -881,9 +901,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
}
|
||||
}
|
||||
|
||||
private void validateDeptCode(Dept dept, Dept parent) {
|
||||
private void validateDeptCode(Dept dept) {
|
||||
String deptCode = dept.getDeptCode();
|
||||
// 组织编码非必填,为空时存 null,避免唯一索引冲突
|
||||
// 组织编码非必填,为空时存 null,避免唯一索引冲突;不再校验 GWWL/上级编码+三位数字格式
|
||||
if (StringUtil.isBlank(deptCode)) {
|
||||
dept.setDeptCode(null);
|
||||
return;
|
||||
@@ -892,26 +912,6 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
|
||||
if (deptCode.length() > 30) {
|
||||
throw new ServiceException("组织编码不能超过30个字符");
|
||||
}
|
||||
// 顶级组织不依赖上级编码
|
||||
if (parent == null) {
|
||||
this.ensureDeptCodeUnique(dept, deptCode);
|
||||
dept.setDeptCode(deptCode);
|
||||
return;
|
||||
}
|
||||
if (StringUtil.isBlank(parent.getDeptCode())) {
|
||||
throw new ServiceException("请选择已配置组织编码的上级组织");
|
||||
}
|
||||
// 公司:GWWL+三位数字;部门:所属公司编码+三位数字;其他:上级编码+三位数字
|
||||
String expectedParentCode = parent.getDeptCode();
|
||||
if (DeptCategory.COMPANY.getCode().equals(dept.getDeptCategory())) {
|
||||
expectedParentCode = OAConvertConstant.OA_SYNC_ROOT_DEPT_CODE;
|
||||
} else if (DeptCategory.DEPT.getCode().equals(dept.getDeptCategory())
|
||||
&& StringUtil.isNotBlank(dept.getBelongCompanyCode())) {
|
||||
expectedParentCode = dept.getBelongCompanyCode();
|
||||
}
|
||||
if (!org.springblade.system.util.DeptCodeUtil.matchesChildCode(expectedParentCode, deptCode)) {
|
||||
throw new ServiceException("组织编码格式应为:" + expectedParentCode + "三位数字(不足补零,中间不加-)");
|
||||
}
|
||||
this.ensureDeptCodeUnique(dept, deptCode);
|
||||
dept.setDeptCode(deptCode);
|
||||
}
|
||||
|
||||
+32
-8
@@ -184,20 +184,44 @@ public class RoleMenuDataScopeServiceImpl extends BaseServiceImpl<RoleMenuDataSc
|
||||
if (Func.isEmpty(roleIds) || Func.isBlank(menuCode)) {
|
||||
return RoleDataScopeVO.all();
|
||||
}
|
||||
Menu menu = menuMapper.selectOne(Wrappers.<Menu>lambdaQuery()
|
||||
.eq(Menu::getCode, menuCode)
|
||||
.eq(Menu::getIsDeleted, 0)
|
||||
.last("limit 1"));
|
||||
Menu menu = findMenuByCode(menuCode);
|
||||
if (Func.isEmpty(menu)) {
|
||||
return RoleDataScopeVO.all();
|
||||
}
|
||||
List<RoleMenuDataScope> scopeList = list(Wrappers.<RoleMenuDataScope>lambdaQuery()
|
||||
.in(RoleMenuDataScope::getRoleId, roleIds)
|
||||
.eq(RoleMenuDataScope::getMenuId, menu.getId())
|
||||
.eq(RoleMenuDataScope::getIsDeleted, 0));
|
||||
List<RoleMenuDataScope> scopeList = listScopes(roleIds, menu.getId());
|
||||
return mergeScopes(scopeList, userDeptIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RoleDataScopeVO resolveByMenuCodeOrEmpty(List<Long> roleIds, String menuCode, List<Long> userDeptIds) {
|
||||
if (Func.isEmpty(roleIds) || Func.isBlank(menuCode)) {
|
||||
return RoleDataScopeVO.none();
|
||||
}
|
||||
Menu menu = findMenuByCode(menuCode);
|
||||
if (Func.isEmpty(menu)) {
|
||||
return RoleDataScopeVO.none();
|
||||
}
|
||||
List<RoleMenuDataScope> scopeList = listScopes(roleIds, menu.getId());
|
||||
if (Func.isEmpty(scopeList)) {
|
||||
return RoleDataScopeVO.none();
|
||||
}
|
||||
return mergeScopes(scopeList, userDeptIds);
|
||||
}
|
||||
|
||||
private Menu findMenuByCode(String menuCode) {
|
||||
return menuMapper.selectOne(Wrappers.<Menu>lambdaQuery()
|
||||
.eq(Menu::getCode, menuCode)
|
||||
.eq(Menu::getIsDeleted, 0)
|
||||
.last("limit 1"));
|
||||
}
|
||||
|
||||
private List<RoleMenuDataScope> listScopes(List<Long> roleIds, Long menuId) {
|
||||
return list(Wrappers.<RoleMenuDataScope>lambdaQuery()
|
||||
.in(RoleMenuDataScope::getRoleId, roleIds)
|
||||
.eq(RoleMenuDataScope::getMenuId, menuId)
|
||||
.eq(RoleMenuDataScope::getIsDeleted, 0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RoleDataScopeVO resolveWidest(List<Long> roleIds, List<Long> userDeptIds) {
|
||||
if (Func.isEmpty(roleIds)) {
|
||||
|
||||
+1
-1
@@ -310,7 +310,7 @@ public class CommonAddressServiceImpl extends BaseServiceImpl<CommonAddressMappe
|
||||
|
||||
private void fillDisplay(CommonAddressVO address) {
|
||||
address.setSiteCodeDisplay(TYPE_NORMAL.equals(address.getAddressType()) ? NORMAL_SITE_CODE : address.getSiteCode());
|
||||
address.setReadonly(!TransportBusinessSupport.isAdministrator() && !Objects.equals(address.getDeptId(), currentDeptId()));
|
||||
address.setReadonly(TransportBusinessSupport.isDeptReadonly(address.getDeptId(), TransportBusinessSupport.MENU_COMMON_ADDRESS));
|
||||
address.setCreateUserName(UserCache.getUserRealName(address.getCreateUser()));
|
||||
address.setUpdateUserName(UserCache.getUserRealName(address.getUpdateUser()));
|
||||
}
|
||||
|
||||
+15
-19
@@ -60,7 +60,6 @@ import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
@@ -646,6 +645,7 @@ public class ContractManageServiceImpl extends BaseServiceImpl<ContractManageMap
|
||||
.eq(Func.isNotEmpty(contractManage.getArchiveStatus()), ContractManage::getArchiveStatus, contractManage.getArchiveStatus())
|
||||
.eq(Func.isNotEmpty(contractManage.getContractStage()), ContractManage::getContractStage, contractManage.getContractStage())
|
||||
.orderByDesc(ContractManage::getCreateTime);
|
||||
applyPartyName(queryWrapper, contractManage.getPartyName());
|
||||
applyEffectiveType(queryWrapper, contractManage.getEffectiveType());
|
||||
applyExpireScope(queryWrapper, contractManage.getExpireScope());
|
||||
// 是否同步金蝶(kingdee_id 是否已回填)/ 是否同步合规(hcs_sync_status 是否 synced)
|
||||
@@ -671,6 +671,18 @@ public class ContractManageServiceImpl extends BaseServiceImpl<ContractManageMap
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 客商筛选:匹配合同甲/乙/丙方名称(模糊)
|
||||
*/
|
||||
private void applyPartyName(LambdaQueryWrapper<ContractManage> queryWrapper, String partyName) {
|
||||
if (Func.isEmpty(partyName)) {
|
||||
return;
|
||||
}
|
||||
queryWrapper.and(wrapper -> wrapper.like(ContractManage::getPartyA, partyName)
|
||||
.or().like(ContractManage::getPartyB, partyName)
|
||||
.or().like(ContractManage::getPartyC, partyName));
|
||||
}
|
||||
|
||||
private void applyEffectiveType(LambdaQueryWrapper<ContractManage> queryWrapper, String effectiveType) {
|
||||
if (Func.isEmpty(effectiveType)) {
|
||||
return;
|
||||
@@ -700,7 +712,7 @@ public class ContractManageServiceImpl extends BaseServiceImpl<ContractManageMap
|
||||
.lt(ContractManage::getTemporaryEndDate, today)
|
||||
.or(wrapper2 -> wrapper2.ne(ContractManage::getContractStage, STAGE_TEMPORARY)
|
||||
.lt(ContractManage::getEndDate, today)));
|
||||
default -> throw new ServiceException("无效的生效类型筛选条件");
|
||||
default -> throw new ServiceException("无效的合同状态筛选条件");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1049,18 +1061,11 @@ public class ContractManageServiceImpl extends BaseServiceImpl<ContractManageMap
|
||||
if (!(parsed instanceof List<?> plans)) {
|
||||
throw new ServiceException("计费方案设置格式不正确");
|
||||
}
|
||||
Map<String, Integer> defaultPlanCount = new HashMap<>();
|
||||
for (Object value : plans) {
|
||||
if (!(value instanceof Map<?, ?> plan)) {
|
||||
throw new ServiceException("计费方案设置格式不正确");
|
||||
}
|
||||
String transportMode = trimValue(plan.get("transportMode"));
|
||||
if (isDefaultBillingPlan(plan)) {
|
||||
int count = defaultPlanCount.merge(transportMode, 1, Integer::sum);
|
||||
if (count > 1) {
|
||||
throw new ServiceException("同一运输方式仅支持配置一个默认计费方案");
|
||||
}
|
||||
}
|
||||
// 一个客商对应一个方案,不再校验「默认方案」
|
||||
validateBillingMatchConditions(plan);
|
||||
validateBillingRuleTaxRates(plan);
|
||||
}
|
||||
@@ -1122,15 +1127,6 @@ public class ContractManageServiceImpl extends BaseServiceImpl<ContractManageMap
|
||||
return value != null && !String.valueOf(value).trim().isEmpty();
|
||||
}
|
||||
|
||||
private boolean isDefaultBillingPlan(Map<?, ?> plan) {
|
||||
Object value = plan.get("defaultPlan");
|
||||
return Boolean.TRUE.equals(value) || "true".equalsIgnoreCase(String.valueOf(value)) || "1".equals(String.valueOf(value));
|
||||
}
|
||||
|
||||
private String trimValue(Object value) {
|
||||
return value == null ? null : TransportBusinessSupport.trimToNull(String.valueOf(value));
|
||||
}
|
||||
|
||||
private void validatePaymentRatios(String paymentRatioJson) {
|
||||
if (Func.isEmpty(paymentRatioJson)) return;
|
||||
try {
|
||||
|
||||
+35
-3
@@ -93,7 +93,8 @@ public final class ContractPartySupport {
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验计费方案均已绑定合同明细中的客商
|
||||
* 校验计费方案均已绑定合同明细中的客商。
|
||||
* 客户合同仅允许绑定甲方;承运商合同仅允许绑定乙方/丙方。
|
||||
*/
|
||||
public static void validateBillingPlanBindings(ContractManage contractManage) {
|
||||
String billingPlanJson = contractManage.getBillingPlanJson();
|
||||
@@ -104,7 +105,10 @@ public final class ContractPartySupport {
|
||||
if (!(parsed instanceof List<?> plans) || plans.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Map<String, Map<String, Object>> partyByRowId = indexPartyRows(contractManage);
|
||||
Set<String> allowedRoles = allowedBillingPartyRoles(contractManage.getContractCategory());
|
||||
Map<String, Map<String, Object>> partyByRowId = indexPartyRows(contractManage).entrySet().stream()
|
||||
.filter(entry -> allowedRoles.contains(normalizeRole(String.valueOf(entry.getValue().get("partyRole")))))
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (left, right) -> left, LinkedHashMap::new));
|
||||
Set<String> customerKeys = partyByRowId.values().stream()
|
||||
.map(ContractPartySupport::customerMatchKey)
|
||||
.filter(Func::isNotEmpty)
|
||||
@@ -121,6 +125,9 @@ public final class ContractPartySupport {
|
||||
if (Func.isEmpty(partyRowId) && Func.isEmpty(customerId) && Func.isEmpty(customerName)) {
|
||||
throw new ServiceException("计费方案第" + (index + 1) + "个必须选择适用客商");
|
||||
}
|
||||
if (Func.isNotEmpty(partyRole) && !allowedRoles.contains(partyRole)) {
|
||||
throw new ServiceException(billingPartyRoleMessage(contractManage.getContractCategory(), index + 1));
|
||||
}
|
||||
boolean matched = false;
|
||||
if (Func.isNotEmpty(partyRowId) && partyByRowId.containsKey(partyRowId)) {
|
||||
matched = true;
|
||||
@@ -134,11 +141,36 @@ public final class ContractPartySupport {
|
||||
}
|
||||
}
|
||||
if (!matched) {
|
||||
throw new ServiceException("计费方案第" + (index + 1) + "个适用客商不在合同甲/乙/丙明细中");
|
||||
throw new ServiceException(billingPartyRoleMessage(contractManage.getContractCategory(), index + 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 计费方案可选客商角色:客户合同=甲方;承运商合同=乙方/丙方
|
||||
*/
|
||||
public static Set<String> allowedBillingPartyRoles(String contractCategory) {
|
||||
String category = Func.toStr(contractCategory).trim();
|
||||
if ("承运商合同".equals(category)) {
|
||||
return Set.of(ROLE_B, ROLE_C);
|
||||
}
|
||||
if ("客户合同".equals(category)) {
|
||||
return Set.of(ROLE_A);
|
||||
}
|
||||
return Set.of(ROLE_A, ROLE_B, ROLE_C);
|
||||
}
|
||||
|
||||
private static String billingPartyRoleMessage(String contractCategory, int planIndex) {
|
||||
String category = Func.toStr(contractCategory).trim();
|
||||
if ("承运商合同".equals(category)) {
|
||||
return "计费方案第" + planIndex + "个适用客商只能选择乙方或丙方";
|
||||
}
|
||||
if ("客户合同".equals(category)) {
|
||||
return "计费方案第" + planIndex + "个适用客商只能选择甲方";
|
||||
}
|
||||
return "计费方案第" + planIndex + "个适用客商不在合同甲/乙/丙明细中";
|
||||
}
|
||||
|
||||
public static List<Map<String, Object>> parsePartyRows(String partyJson) {
|
||||
if (Func.isEmpty(partyJson)) {
|
||||
return List.of();
|
||||
|
||||
+2
-4
@@ -23,12 +23,11 @@
|
||||
package org.springblade.transport.wrapper;
|
||||
|
||||
import org.springblade.core.mp.support.BaseEntityWrapper;
|
||||
import org.springblade.core.secure.utils.AuthUtil;
|
||||
import org.springblade.core.tool.utils.BeanUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
import org.springblade.system.cache.UserCache;
|
||||
import org.springblade.transport.pojo.entity.CommonCargo;
|
||||
import org.springblade.transport.pojo.vo.CommonCargoVO;
|
||||
import org.springblade.transport.support.TransportBusinessSupport;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Objects;
|
||||
@@ -52,8 +51,7 @@ public class CommonCargoWrapper extends BaseEntityWrapper<CommonCargo, CommonCar
|
||||
}
|
||||
commonCargoVO.setCreateUserName(UserCache.getUserRealName(commonCargo.getCreateUser()));
|
||||
commonCargoVO.setUpdateUserName(UserCache.getUserRealName(commonCargo.getUpdateUser()));
|
||||
Long currentDeptId = Func.firstLong(AuthUtil.getDeptId());
|
||||
commonCargoVO.setReadonly(currentDeptId != null && !Objects.equals(commonCargo.getDeptId(), currentDeptId));
|
||||
commonCargoVO.setReadonly(TransportBusinessSupport.isDeptReadonly(commonCargo.getDeptId(), TransportBusinessSupport.MENU_COMMON_CARGO));
|
||||
return commonCargoVO;
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -23,12 +23,11 @@
|
||||
package org.springblade.transport.wrapper;
|
||||
|
||||
import org.springblade.core.mp.support.BaseEntityWrapper;
|
||||
import org.springblade.core.secure.utils.AuthUtil;
|
||||
import org.springblade.core.tool.utils.BeanUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
import org.springblade.system.cache.UserCache;
|
||||
import org.springblade.transport.pojo.entity.CommonRoute;
|
||||
import org.springblade.transport.pojo.vo.CommonRouteVO;
|
||||
import org.springblade.transport.support.TransportBusinessSupport;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -48,8 +47,7 @@ public class CommonRouteWrapper extends BaseEntityWrapper<CommonRoute, CommonRou
|
||||
CommonRouteVO commonRouteVO = Objects.requireNonNull(BeanUtil.copyProperties(commonRoute, CommonRouteVO.class));
|
||||
commonRouteVO.setCreateUserName(UserCache.getUserRealName(commonRoute.getCreateUser()));
|
||||
commonRouteVO.setUpdateUserName(UserCache.getUserRealName(commonRoute.getUpdateUser()));
|
||||
Long currentDeptId = Func.firstLong(AuthUtil.getDeptId());
|
||||
commonRouteVO.setReadonly(currentDeptId != null && !Objects.equals(commonRoute.getDeptId(), currentDeptId));
|
||||
commonRouteVO.setReadonly(TransportBusinessSupport.isDeptReadonly(commonRoute.getDeptId(), TransportBusinessSupport.MENU_COMMON_ROUTE));
|
||||
return commonRouteVO;
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -5,12 +5,11 @@
|
||||
package org.springblade.transport.wrapper;
|
||||
|
||||
import org.springblade.core.mp.support.BaseEntityWrapper;
|
||||
import org.springblade.core.secure.utils.AuthUtil;
|
||||
import org.springblade.core.tool.utils.BeanUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
import org.springblade.system.cache.UserCache;
|
||||
import org.springblade.transport.pojo.entity.LoadingManage;
|
||||
import org.springblade.transport.pojo.vo.LoadingManageVO;
|
||||
import org.springblade.transport.support.TransportBusinessSupport;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Objects;
|
||||
@@ -31,8 +30,7 @@ public class LoadingManageWrapper extends BaseEntityWrapper<LoadingManage, Loadi
|
||||
LoadingManageVO loadingManageVO = Objects.requireNonNull(BeanUtil.copyProperties(loadingManage, LoadingManageVO.class));
|
||||
loadingManageVO.setCreateUserName(UserCache.getUserRealName(loadingManage.getCreateUser()));
|
||||
loadingManageVO.setUpdateUserName(UserCache.getUserRealName(loadingManage.getUpdateUser()));
|
||||
Long currentDeptId = Func.firstLong(AuthUtil.getDeptId());
|
||||
loadingManageVO.setReadonly(currentDeptId != null && !Objects.equals(loadingManage.getDeptId(), currentDeptId));
|
||||
loadingManageVO.setReadonly(TransportBusinessSupport.isDeptReadonly(loadingManage.getDeptId(), TransportBusinessSupport.MENU_LOADING_MANAGE));
|
||||
loadingManageVO.setBusinessStatusName(businessStatusName(loadingManage.getBusinessStatus()));
|
||||
// 未维护里程的占位值 -1 对外展示为空
|
||||
if (loadingManageVO.getMileage() != null
|
||||
|
||||
+2
-4
@@ -23,12 +23,11 @@
|
||||
package org.springblade.transport.wrapper;
|
||||
|
||||
import org.springblade.core.mp.support.BaseEntityWrapper;
|
||||
import org.springblade.core.secure.utils.AuthUtil;
|
||||
import org.springblade.core.tool.utils.BeanUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
import org.springblade.system.cache.UserCache;
|
||||
import org.springblade.transport.pojo.entity.ProcessConfig;
|
||||
import org.springblade.transport.pojo.vo.ProcessConfigVO;
|
||||
import org.springblade.transport.support.TransportBusinessSupport;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -48,8 +47,7 @@ public class ProcessConfigWrapper extends BaseEntityWrapper<ProcessConfig, Proce
|
||||
ProcessConfigVO processConfigVO = Objects.requireNonNull(BeanUtil.copyProperties(processConfig, ProcessConfigVO.class));
|
||||
processConfigVO.setCreateUserName(UserCache.getUserRealName(processConfig.getCreateUser()));
|
||||
processConfigVO.setUpdateUserName(UserCache.getUserRealName(processConfig.getUpdateUser()));
|
||||
Long currentDeptId = Func.firstLong(AuthUtil.getDeptId());
|
||||
processConfigVO.setReadonly(currentDeptId != null && !Objects.equals(processConfig.getDeptId(), currentDeptId));
|
||||
processConfigVO.setReadonly(TransportBusinessSupport.isDeptReadonly(processConfig.getDeptId(), TransportBusinessSupport.MENU_PROCESS_CONFIG));
|
||||
processConfigVO.setStatusName(statusName(processConfig.getStatus()));
|
||||
return processConfigVO;
|
||||
}
|
||||
|
||||
+2
-4
@@ -23,12 +23,11 @@
|
||||
package org.springblade.transport.wrapper;
|
||||
|
||||
import org.springblade.core.mp.support.BaseEntityWrapper;
|
||||
import org.springblade.core.secure.utils.AuthUtil;
|
||||
import org.springblade.core.tool.utils.BeanUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
import org.springblade.system.cache.UserCache;
|
||||
import org.springblade.transport.pojo.entity.ShippingTemplate;
|
||||
import org.springblade.transport.pojo.vo.ShippingTemplateVO;
|
||||
import org.springblade.transport.support.TransportBusinessSupport;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -48,8 +47,7 @@ public class ShippingTemplateWrapper extends BaseEntityWrapper<ShippingTemplate,
|
||||
ShippingTemplateVO shippingTemplateVO = Objects.requireNonNull(BeanUtil.copyProperties(shippingTemplate, ShippingTemplateVO.class));
|
||||
shippingTemplateVO.setCreateUserName(UserCache.getUserRealName(shippingTemplate.getCreateUser()));
|
||||
shippingTemplateVO.setUpdateUserName(UserCache.getUserRealName(shippingTemplate.getUpdateUser()));
|
||||
Long currentDeptId = Func.firstLong(AuthUtil.getDeptId());
|
||||
shippingTemplateVO.setReadonly(currentDeptId != null && !Objects.equals(shippingTemplate.getDeptId(), currentDeptId));
|
||||
shippingTemplateVO.setReadonly(TransportBusinessSupport.isDeptReadonly(shippingTemplate.getDeptId(), TransportBusinessSupport.MENU_SHIPPING_TEMPLATE));
|
||||
return shippingTemplateVO;
|
||||
}
|
||||
|
||||
|
||||
+1
-4
@@ -23,9 +23,7 @@
|
||||
package org.springblade.transport.wrapper;
|
||||
|
||||
import org.springblade.core.mp.support.BaseEntityWrapper;
|
||||
import org.springblade.core.secure.utils.AuthUtil;
|
||||
import org.springblade.core.tool.utils.BeanUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
import org.springblade.system.cache.UserCache;
|
||||
import org.springblade.transport.pojo.entity.TransportPlan;
|
||||
import org.springblade.transport.pojo.vo.TransportPlanVO;
|
||||
@@ -50,8 +48,7 @@ public class TransportPlanWrapper extends BaseEntityWrapper<TransportPlan, Trans
|
||||
transportPlanVO.setCreateUserName(UserCache.getUserRealName(transportPlan.getCreateUser()));
|
||||
transportPlanVO.setUpdateUserName(UserCache.getUserRealName(transportPlan.getUpdateUser()));
|
||||
transportPlanVO.setDataSource(TransportBusinessSupport.normalizeTransportPlanDataSource(transportPlan.getDataSource()));
|
||||
Long currentDeptId = Func.firstLong(AuthUtil.getDeptId());
|
||||
transportPlanVO.setReadonly(currentDeptId != null && !Objects.equals(transportPlan.getDeptId(), currentDeptId));
|
||||
transportPlanVO.setReadonly(TransportBusinessSupport.isDeptReadonly(transportPlan.getDeptId(), TransportBusinessSupport.MENU_TRANSPORT_PLAN));
|
||||
transportPlanVO.setBusinessStatusName(businessStatusName(transportPlan.getBusinessStatus()));
|
||||
return transportPlanVO;
|
||||
}
|
||||
|
||||
+1
-3
@@ -23,7 +23,6 @@
|
||||
package org.springblade.transport.wrapper;
|
||||
|
||||
import org.springblade.core.mp.support.BaseEntityWrapper;
|
||||
import org.springblade.core.secure.utils.AuthUtil;
|
||||
import org.springblade.core.tool.utils.BeanUtil;
|
||||
import org.springblade.core.tool.utils.Func;
|
||||
import org.springblade.system.cache.DictBizCache;
|
||||
@@ -54,8 +53,7 @@ public class WaybillWrapper extends BaseEntityWrapper<Waybill, WaybillVO> {
|
||||
waybillVO.setCreateUserName(UserCache.getUserRealName(waybill.getCreateUser()));
|
||||
waybillVO.setUpdateUserName(UserCache.getUserRealName(waybill.getUpdateUser()));
|
||||
waybillVO.setDataSource(TransportBusinessSupport.normalizeWaybillDataSource(waybill.getDataSource()));
|
||||
Long currentDeptId = Func.firstLong(AuthUtil.getDeptId());
|
||||
waybillVO.setReadonly(currentDeptId != null && !Objects.equals(waybill.getDeptId(), currentDeptId));
|
||||
waybillVO.setReadonly(TransportBusinessSupport.isDeptReadonly(waybill.getDeptId(), TransportBusinessSupport.MENU_WAYBILL_MANAGE));
|
||||
String displayStatus = WaybillProcessSupport.normalizeBusinessStatus(
|
||||
waybill.getBusinessStatus(), waybill.getProcessJson(), waybill.getDriverAcceptStatus());
|
||||
waybillVO.setBusinessStatus(displayStatus);
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
-- ----------------------------
|
||||
-- 补齐基础/系统业务模块「查看」按钮权限(角色授权用)
|
||||
-- 执行前请确认目标库尚未存在同 code 菜单
|
||||
-- ----------------------------
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2075429330000000001, 2075421555200860162, 'port_terminal_view', '查看', 'port_terminal_view', '', '', 1, 2, 0, 1, NULL, '', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'port_terminal_view' AND `is_deleted` = 0);
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2075429280000000001, 2075427962415456258, 'railway_station_view', '查看', 'railway_station_view', '', '', 1, 2, 0, 1, NULL, '', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'railway_station_view' AND `is_deleted` = 0);
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2075431850000000001, 2075431169720033282, 'airport_master_view', '查看', 'airport_master_view', '', '', 1, 2, 0, 1, NULL, '', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'airport_master_view' AND `is_deleted` = 0);
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2075449000000000009, 2075449000000000001, 'currency_view', '查看', 'currency_view', '', '', 1, 2, 0, 1, NULL, '', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'currency_view' AND `is_deleted` = 0);
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2075449100000000006, 2075449100000000001, 'customer_type_view', '查看', 'customer_type_view', '', '', 1, 2, 0, 1, NULL, '', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'customer_type_view' AND `is_deleted` = 0);
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2075449200000000009, 2075449200000000001, 'fee_item_view', '查看', 'fee_item_view', '', '', 1, 2, 0, 1, NULL, '', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'fee_item_view' AND `is_deleted` = 0);
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2075449300000000006, 2075449300000000001, 'measurement_unit_view', '查看', 'measurement_unit_view', '', '', 1, 2, 0, 1, NULL, '', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'measurement_unit_view' AND `is_deleted` = 0);
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2080110200000000105, 2080110200000000101, 'business_dept_config_view', '查看', 'business_dept_config_view', '', '', 4, 2, 0, 1, NULL, '', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'business_dept_config_view' AND `is_deleted` = 0);
|
||||
@@ -0,0 +1,511 @@
|
||||
-- ----------------------------
|
||||
-- 业务数据「所属组织」旧残留批量订正
|
||||
-- 口径:按创建人当前所属组织(blade_user.dept_id 首个)回填 dept_id / dept_name(或 organization_name)
|
||||
-- 适用:各环境 OA/组织同步后,业务表仍挂着已删/不存在/空组织的存量数据
|
||||
-- 可重复执行;update_time 不改,保留原值
|
||||
-- ----------------------------
|
||||
--
|
||||
-- 订正范围(仅处理残留):
|
||||
-- 1) dept_id 为空或 <=0
|
||||
-- 2) dept_id 在 blade_dept 中不存在或已逻辑删除
|
||||
-- 仅名称字段的表:organization_name / dept_name 为空,或名称在当前未删除组织中找不到
|
||||
--
|
||||
-- 取值规则:
|
||||
-- create_user → blade_user.dept_id(多组织取逗号分隔第一个,与登录态 AuthUtil.firstLong 一致)
|
||||
-- → blade_dept.dept_name
|
||||
-- 创建人无组织、或组织已失效:跳过该行
|
||||
--
|
||||
-- 特殊:
|
||||
-- blade_customer_archive 客商所属组织业务上固定为「广西现代物流集团有限公司」,
|
||||
-- 不按创建人组织回填,残留时改挂该顶级组织。
|
||||
-- 合同负责部门(organization_id)/ 票据使用部门(blade_bill_payment.dept_id)不在本脚本范围。
|
||||
--
|
||||
-- 执行顺序:
|
||||
-- 0 预览 → 1 备份 → 2 订正 → 3 校验;出问题用 4 回退
|
||||
-- ----------------------------
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- ----------------------------
|
||||
-- 0. 预览:各表待订正条数(执行订正前先看)
|
||||
-- ----------------------------
|
||||
-- DROP TEMPORARY TABLE IF EXISTS tmp_user_current_dept;
|
||||
-- CREATE TEMPORARY TABLE tmp_user_current_dept AS
|
||||
-- SELECT
|
||||
-- u.id AS user_id,
|
||||
-- CAST(SUBSTRING_INDEX(TRIM(u.dept_id), ',', 1) AS UNSIGNED) AS dept_id,
|
||||
-- d.dept_name AS dept_name
|
||||
-- FROM blade_user u
|
||||
-- INNER JOIN blade_dept d
|
||||
-- ON d.id = CAST(SUBSTRING_INDEX(TRIM(IFNULL(u.dept_id, '')), ',', 1) AS UNSIGNED)
|
||||
-- AND IFNULL(d.is_deleted, 0) = 0
|
||||
-- WHERE IFNULL(u.is_deleted, 0) = 0
|
||||
-- AND IFNULL(TRIM(u.dept_id), '') <> ''
|
||||
-- AND CAST(SUBSTRING_INDEX(TRIM(u.dept_id), ',', 1) AS UNSIGNED) > 0;
|
||||
-- ALTER TABLE tmp_user_current_dept ADD PRIMARY KEY (user_id);
|
||||
--
|
||||
-- SELECT 'blade_common_route' AS table_name, COUNT(*) AS pending_cnt
|
||||
-- FROM blade_common_route t
|
||||
-- INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
-- WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
-- AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
-- OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
-- -- 其余表同理,可按第 2 节表清单自行复制预览
|
||||
|
||||
-- ----------------------------
|
||||
-- 1. 备份表(不存在则创建;可重复执行)
|
||||
-- ----------------------------
|
||||
CREATE TABLE IF NOT EXISTS blade_biz_dept_backfill_bak_20261104 (
|
||||
bak_id BIGINT NOT NULL AUTO_INCREMENT,
|
||||
table_name VARCHAR(64) NOT NULL,
|
||||
biz_id BIGINT NOT NULL,
|
||||
old_dept_id BIGINT DEFAULT NULL,
|
||||
old_dept_name VARCHAR(255) DEFAULT NULL,
|
||||
new_dept_id BIGINT DEFAULT NULL,
|
||||
new_dept_name VARCHAR(255) DEFAULT NULL,
|
||||
create_user BIGINT DEFAULT NULL,
|
||||
bak_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (bak_id),
|
||||
KEY idx_biz_dept_bak_table_biz (table_name, biz_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='所属组织订正备份20261104';
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
-- 创建人 → 当前所属组织(多组织取第一个)
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_user_current_dept;
|
||||
CREATE TEMPORARY TABLE tmp_user_current_dept AS
|
||||
SELECT
|
||||
u.id AS user_id,
|
||||
CAST(SUBSTRING_INDEX(TRIM(u.dept_id), ',', 1) AS UNSIGNED) AS dept_id,
|
||||
d.dept_name AS dept_name
|
||||
FROM blade_user u
|
||||
INNER JOIN blade_dept d
|
||||
ON d.id = CAST(SUBSTRING_INDEX(TRIM(IFNULL(u.dept_id, '')), ',', 1) AS UNSIGNED)
|
||||
AND IFNULL(d.is_deleted, 0) = 0
|
||||
WHERE IFNULL(u.is_deleted, 0) = 0
|
||||
AND IFNULL(TRIM(u.dept_id), '') <> ''
|
||||
AND CAST(SUBSTRING_INDEX(TRIM(u.dept_id), ',', 1) AS UNSIGNED) > 0;
|
||||
ALTER TABLE tmp_user_current_dept ADD PRIMARY KEY (user_id);
|
||||
|
||||
-- 客商固定顶级组织
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_fixed_owner_dept;
|
||||
CREATE TEMPORARY TABLE tmp_fixed_owner_dept AS
|
||||
SELECT d.id AS dept_id, d.dept_name
|
||||
FROM blade_dept d
|
||||
WHERE IFNULL(d.is_deleted, 0) = 0
|
||||
AND d.dept_name = '广西现代物流集团有限公司'
|
||||
ORDER BY d.id
|
||||
LIMIT 1;
|
||||
ALTER TABLE tmp_fixed_owner_dept ADD PRIMARY KEY (dept_id);
|
||||
|
||||
-- ----------------------------
|
||||
-- 2. 订正:dept_id + dept_name 类表
|
||||
-- ----------------------------
|
||||
|
||||
-- 2.1 常用线路
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_common_route', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_common_route t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_common_route t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.2 常用货物
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_common_cargo', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_common_cargo t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_common_cargo t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.3 过程配置
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_process_config', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_process_config t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_process_config t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.4 发货模板
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_shipping_template', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_shipping_template t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_shipping_template t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.5 运输计划
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_transport_plan', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_transport_plan t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_transport_plan t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.6 运单
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_waybill', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_waybill t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_waybill t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.7 配载
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_loading_manage', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_loading_manage t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_loading_manage t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.8 常用地址
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_common_address', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_common_address t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_common_address t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.9 预结算
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_pre_settlement', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_pre_settlement t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_pre_settlement t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.10 正式结算
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_formal_settlement', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_formal_settlement t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_formal_settlement t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.11 应收应付明细
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_receivable_payable_detail', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_receivable_payable_detail t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_receivable_payable_detail t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.12 异常处置
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_exception_disposal', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_exception_disposal t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_exception_disposal t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.13 风险处置
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_risk_disposal', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_risk_disposal t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_risk_disposal t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.14 开票申请
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_invoice_application', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_invoice_application t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_invoice_application t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.15 收票登记
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_invoice_receipt', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_invoice_receipt t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_invoice_receipt t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.16 付款申请
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_payment_application', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_payment_application t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_payment_application t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.17 运输对账
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_transport_reconciliation', t.id, t.dept_id, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_transport_reconciliation t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
UPDATE blade_transport_reconciliation t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- 2.18 客商档案:固定挂顶级「广西现代物流集团有限公司」
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_customer_archive', t.id, t.dept_id, t.dept_name, f.dept_id, f.dept_name, t.create_user
|
||||
FROM blade_customer_archive t
|
||||
CROSS JOIN tmp_fixed_owner_dept f
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0)
|
||||
OR IFNULL(t.dept_id, 0) <> f.dept_id);
|
||||
|
||||
UPDATE blade_customer_archive t
|
||||
CROSS JOIN tmp_fixed_owner_dept f
|
||||
SET t.dept_id = f.dept_id,
|
||||
t.dept_ids = CAST(f.dept_id AS CHAR),
|
||||
t.dept_name = f.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0)
|
||||
OR IFNULL(t.dept_id, 0) <> f.dept_id);
|
||||
|
||||
-- ----------------------------
|
||||
-- 2.19 仅名称字段:司机 / 车辆 / 船舶 / 派车
|
||||
-- ----------------------------
|
||||
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_transport_driver', t.id, NULL, t.organization_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_transport_driver t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.organization_name IS NULL OR TRIM(t.organization_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.organization_name));
|
||||
|
||||
UPDATE blade_transport_driver t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.organization_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.organization_name IS NULL OR TRIM(t.organization_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.organization_name));
|
||||
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_transport_vehicle', t.id, NULL, t.organization_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_transport_vehicle t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.organization_name IS NULL OR TRIM(t.organization_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.organization_name));
|
||||
|
||||
UPDATE blade_transport_vehicle t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.organization_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.organization_name IS NULL OR TRIM(t.organization_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.organization_name));
|
||||
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_transport_ship', t.id, NULL, t.organization_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_transport_ship t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.organization_name IS NULL OR TRIM(t.organization_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.organization_name));
|
||||
|
||||
UPDATE blade_transport_ship t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.organization_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.organization_name IS NULL OR TRIM(t.organization_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.organization_name));
|
||||
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_vehicle_dispatch', t.id, NULL, t.organization_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_vehicle_dispatch t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.organization_name IS NULL OR TRIM(t.organization_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.organization_name));
|
||||
|
||||
UPDATE blade_vehicle_dispatch t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.organization_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.organization_name IS NULL OR TRIM(t.organization_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.organization_name));
|
||||
|
||||
-- 2.20 结算调整单(仅 dept_name)
|
||||
INSERT INTO blade_biz_dept_backfill_bak_20261104 (table_name, biz_id, old_dept_id, old_dept_name, new_dept_id, new_dept_name, create_user)
|
||||
SELECT 'blade_settlement_adjustment', t.id, NULL, t.dept_name, c.dept_id, c.dept_name, t.create_user
|
||||
FROM blade_settlement_adjustment t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_name IS NULL OR TRIM(t.dept_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.dept_name));
|
||||
|
||||
UPDATE blade_settlement_adjustment t
|
||||
INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
SET t.dept_name = c.dept_name
|
||||
WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
AND (t.dept_name IS NULL OR TRIM(t.dept_name) = ''
|
||||
OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE IFNULL(d.is_deleted, 0) = 0 AND d.dept_name = t.dept_name));
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- ----------------------------
|
||||
-- 3. 校验(订正后执行)
|
||||
-- ----------------------------
|
||||
-- SELECT table_name, COUNT(*) AS bak_rows
|
||||
-- FROM blade_biz_dept_backfill_bak_20261104
|
||||
-- GROUP BY table_name
|
||||
-- ORDER BY table_name;
|
||||
--
|
||||
-- -- 仍挂无效组织、且创建人当前有有效组织的运单(示例,期望 0)
|
||||
-- SELECT COUNT(*) AS still_bad
|
||||
-- FROM blade_waybill t
|
||||
-- INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
-- WHERE IFNULL(t.is_deleted, 0) = 0
|
||||
-- AND (t.dept_id IS NULL OR t.dept_id <= 0
|
||||
-- OR NOT EXISTS (SELECT 1 FROM blade_dept d WHERE d.id = t.dept_id AND IFNULL(d.is_deleted, 0) = 0));
|
||||
|
||||
-- ----------------------------
|
||||
-- 4. 回退(按备份表恢复;按需取消注释)
|
||||
-- ----------------------------
|
||||
-- UPDATE blade_waybill t
|
||||
-- INNER JOIN blade_biz_dept_backfill_bak_20261104 b
|
||||
-- ON b.table_name = 'blade_waybill' AND b.biz_id = t.id
|
||||
-- SET t.dept_id = b.old_dept_id, t.dept_name = b.old_dept_name;
|
||||
-- -- 其他表同理替换 table_name / 字段名
|
||||
|
||||
-- ----------------------------
|
||||
-- 5. 可选:全量强制按创建人当前组织覆盖(不仅残留)
|
||||
-- 默认不要执行;确认业务需要「全部改挂创建人当前组织」时再跑
|
||||
-- ----------------------------
|
||||
-- UPDATE blade_waybill t
|
||||
-- INNER JOIN tmp_user_current_dept c ON c.user_id = t.create_user
|
||||
-- SET t.dept_id = c.dept_id, t.dept_name = c.dept_name
|
||||
-- WHERE IFNULL(t.is_deleted, 0) = 0;
|
||||
@@ -34,4 +34,5 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
(2080110200000000101, 1123598815738675203, 'business_dept_config', '业务部门配置', 'business_dept_config', '/system/business-dept-config', 'iconfont iconicon_group', 25, 1, 0, 1, NULL, '', 0),
|
||||
(2080110200000000102, 2080110200000000101, 'business_dept_config_add', '新增', 'business_dept_config_add', '', '', 1, 2, 0, 1, NULL, '', 0),
|
||||
(2080110200000000103, 2080110200000000101, 'business_dept_config_edit', '编辑', 'business_dept_config_edit', '', '', 2, 2, 0, 1, NULL, '', 0),
|
||||
(2080110200000000104, 2080110200000000101, 'business_dept_config_delete', '删除', 'business_dept_config_delete', '', '', 3, 2, 0, 1, NULL, '', 0);
|
||||
(2080110200000000104, 2080110200000000101, 'business_dept_config_delete', '删除', 'business_dept_config_delete', '', '', 3, 2, 0, 1, NULL, '', 0),
|
||||
(2080110200000000105, 2080110200000000101, 'business_dept_config_view', '查看', 'business_dept_config_view', '', '', 4, 2, 0, 1, NULL, '', 0);
|
||||
|
||||
@@ -40,3 +40,4 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000006, 2075449000000000001, 'currency_edit', '编辑', 'currency_edit', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000007, 2075449000000000001, 'currency_status', '修改状态', 'currency_status', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000008, 2075449000000000001, 'currency_add', '新增', 'currency_add', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000009, 2075449000000000001, 'currency_view', '查看', 'currency_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
|
||||
@@ -26,3 +26,4 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000003, 2075449100000000001, 'customer_type_edit', '编辑', 'customer_type_edit', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000004, 2075449100000000001, 'customer_type_status', '修改状态', 'customer_type_status', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000005, 2075449100000000001, 'customer_type_add', '新增', 'customer_type_add', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000006, 2075449100000000001, 'customer_type_view', '查看', 'customer_type_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
-- ----------------------------
|
||||
-- 组织树 /dept/tree 独立权限菜单(角色「数据权限」中配置)
|
||||
-- 未配置该菜单数据权限时,组织树接口默认返回空(不展示)
|
||||
-- ----------------------------
|
||||
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`)
|
||||
SELECT 2076110415738675232, 1123598815738675205, 'dept_tree', '树形结构', 'dept_tree', '/api/blade-system/dept/tree', 'file-text', 5, 2, 2, 1, '', '组织树接口独立数据权限配置项;未配置时组织树默认不展示', 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (SELECT 1 FROM `blade_menu` WHERE `code` = 'dept_tree' AND `is_deleted` = 0);
|
||||
@@ -33,3 +33,4 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000006, 2075449200000000001, 'fee_item_import', '批量导入', 'fee_item_import', '/api/blade-system/fee-item/import-fee-item', 'upload', 5, 2, 3, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000007, 2075449200000000001, 'fee_item_template', '下载模板', 'fee_item_template', '/api/blade-system/fee-item/export-template', 'download', 6, 2, 2, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000008, 2075449200000000001, 'fee_item_export', '批量导出', 'fee_item_export', '/api/blade-system/fee-item/export-fee-item', 'download', 7, 2, 2, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000009, 2075449200000000001, 'fee_item_view', '查看', 'fee_item_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
|
||||
@@ -30,4 +30,5 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
(2075449300000000002, 2075449300000000001, 'measurement_unit_delete', '删除', 'measurement_unit_delete', '', '', 1, 2, 0, 1, NULL, '', 0),
|
||||
(2075449300000000003, 2075449300000000001, 'measurement_unit_edit', '编辑', 'measurement_unit_edit', '', '', 1, 2, 0, 1, NULL, '', 0),
|
||||
(2075449300000000004, 2075449300000000001, 'measurement_unit_status', '修改状态', 'measurement_unit_status', '', '', 1, 2, 0, 1, NULL, '', 0),
|
||||
(2075449300000000005, 2075449300000000001, 'measurement_unit_add', '新增', 'measurement_unit_add', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
(2075449300000000005, 2075449300000000001, 'measurement_unit_add', '新增', 'measurement_unit_add', '', '', 1, 2, 0, 1, NULL, '', 0),
|
||||
(2075449300000000006, 2075449300000000001, 'measurement_unit_view', '查看', 'measurement_unit_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
|
||||
@@ -836,6 +836,7 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2076110415738675232, 1123598815738675205, 'dept_tree', '树形结构', 'dept_tree', '/api/blade-system/dept/tree', 'file-text', 5, 2, 2, 1, '', '组织树接口独立数据权限配置项;未配置时组织树默认不展示', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
|
||||
@@ -998,7 +999,9 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075429169922023425, 2075427962415456258, 'railway_station_edit', '编辑', 'railway_station_edit', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075429216734650369, 2075427962415456258, 'railway_station_status', '修改状态', 'railway_station_status', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075429274242752513, 2075427962415456258, 'railway_station_add', '新增', 'railway_station_add', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075429280000000001, 2075427962415456258, 'railway_station_view', '查看', 'railway_station_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075429329544650754, 2075421555200860162, 'port_terminal_add', '新增', 'port_terminal_add', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075429330000000001, 2075421555200860162, 'port_terminal_view', '查看', 'port_terminal_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075431169720033282, 1164733399668962201, 'airport_master', '空港机场主数据', 'airport_master', '/base/airport-master', 'iconfont icon-fengche', 30, 1, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075431461312241665, 2075431169720033282, 'airport_master_import', '批量导入', 'airport_master_import', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075431522544885762, 2075431169720033282, 'airport_master_template', '下载模板', 'airport_master_template', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
@@ -1007,6 +1010,7 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075431710063828994, 2075431169720033282, 'airport_master_edit', '编辑', 'airport_master_edit', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075431753298714626, 2075431169720033282, 'airport_master_status', '修改状态', 'airport_master_status', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075431820189474818, 2075431169720033282, 'airport_master_add', '新增', 'airport_master_add', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075431850000000001, 2075431169720033282, 'airport_master_view', '查看', 'airport_master_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000001, 1164733399668962201, 'currency', '币种汇率管理', 'currency', '/base/currency', 'iconfont iconicon_exchange', 40, 1, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000002, 2075449000000000001, 'currency_import', '批量导入', 'currency_import', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000003, 2075449000000000001, 'currency_template', '下载模板', 'currency_template', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
@@ -1015,11 +1019,13 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000006, 2075449000000000001, 'currency_edit', '编辑', 'currency_edit', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000007, 2075449000000000001, 'currency_status', '修改状态', 'currency_status', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000008, 2075449000000000001, 'currency_add', '新增', 'currency_add', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449000000000009, 2075449000000000001, 'currency_view', '查看', 'currency_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000001, 1164733399668962201, 'customer_type', '客商类型', 'customer_type', '/base/customer-type', 'iconfont icon-hezuohuobanmiyueguanli', 50, 1, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000002, 2075449100000000001, 'customer_type_delete', '批量删除', 'customer_type_delete', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000003, 2075449100000000001, 'customer_type_edit', '编辑', 'customer_type_edit', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000004, 2075449100000000001, 'customer_type_status', '修改状态', 'customer_type_status', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000005, 2075449100000000001, 'customer_type_add', '新增', 'customer_type_add', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449100000000006, 2075449100000000001, 'customer_type_view', '查看', 'customer_type_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000001, 1164733399668962201, 'fee_item', '费用项', 'fee_item', '/base/fee-item', 'iconfont icon-shoucang', 60, 1, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000002, 2075449200000000001, 'fee_item_delete', '批量删除', 'fee_item_delete', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000003, 2075449200000000001, 'fee_item_edit', '编辑', 'fee_item_edit', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
@@ -1028,6 +1034,7 @@ INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `s
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000006, 2075449200000000001, 'fee_item_import', '批量导入', 'fee_item_import', '/api/blade-system/fee-item/import-fee-item', 'upload', 5, 2, 3, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000007, 2075449200000000001, 'fee_item_template', '下载模板', 'fee_item_template', '/api/blade-system/fee-item/export-template', 'download', 6, 2, 2, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000008, 2075449200000000001, 'fee_item_export', '批量导出', 'fee_item_export', '/api/blade-system/fee-item/export-fee-item', 'download', 7, 2, 2, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075449200000000009, 2075449200000000001, 'fee_item_view', '查看', 'fee_item_view', '', '', 1, 2, 0, 1, NULL, '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075436235826896898, 0, 'blade-transport', '车/船务管理', 'blade-transport', '/vehicle', 'iconfont icon-shebeiguanli', 10, 1, 0, 1, '', '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075437082342301697, 2075436235826896898, 'maintenance_record', '维修记录', 'maintenance_record', '/vehicle/maintenance-record', 'iconfont icon-wxbgongju', 20, 1, 0, 1, '', '', 0);
|
||||
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (2075437237678350338, 2075436235826896898, 'maintenance_plan', '保养记录', 'maintenance_plan', '/vehicle/maintenance-plan', 'iconfont iconicon_exchange', 30, 1, 0, 1, '', '', 0);
|
||||
|
||||
Reference in New Issue
Block a user