新增MES库区管理功能,包含免密接口、数据处理逻辑及相关控制器、服务和实体的实现。支持库区的增删改查操作,优化用户体验并增强系统的实时数据同步能力。
This commit is contained in:
@@ -31,7 +31,6 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
|
||||
|
||||
@Override
|
||||
public void addSysCategory(SysCategory sysCategory) {
|
||||
String categoryCode = "";
|
||||
String categoryPid = ISysCategoryService.ROOT_PID_VALUE;
|
||||
String parentCode = null;
|
||||
if(oConvertUtils.isNotEmpty(sysCategory.getPid())){
|
||||
@@ -47,11 +46,23 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
|
||||
}
|
||||
}
|
||||
}
|
||||
// 代码逻辑说明: 分类字典编码规则生成器做成公用配置
|
||||
JSONObject formData = new JSONObject();
|
||||
formData.put("pid",categoryPid);
|
||||
categoryCode = (String) FillRuleUtil.executeRule(FillRuleConstant.CATEGORY,formData);
|
||||
sysCategory.setCode(categoryCode);
|
||||
// 编码处理:
|
||||
// ① 前端传入了编码 → 使用前端传入值(允许用户自定义编码);
|
||||
// ② 前端未传 → 按规则自动生成(保留原行为);
|
||||
// ③ 防止重复:自定义编码先查一次是否已存在,存在则抛业务异常。
|
||||
if(oConvertUtils.isEmpty(sysCategory.getCode())){
|
||||
JSONObject formData = new JSONObject();
|
||||
formData.put("pid",categoryPid);
|
||||
String categoryCode = (String) FillRuleUtil.executeRule(FillRuleConstant.CATEGORY,formData);
|
||||
sysCategory.setCode(categoryCode);
|
||||
} else {
|
||||
String customCode = sysCategory.getCode().trim();
|
||||
long exists = this.count(new LambdaQueryWrapper<SysCategory>().eq(SysCategory::getCode, customCode));
|
||||
if(exists > 0){
|
||||
throw new JeecgBootException("分类编码【"+customCode+"】已存在,请更换!");
|
||||
}
|
||||
sysCategory.setCode(customCode);
|
||||
}
|
||||
sysCategory.setPid(categoryPid);
|
||||
baseMapper.insert(sysCategory);
|
||||
}
|
||||
@@ -68,6 +79,18 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
|
||||
baseMapper.updateById(parent);
|
||||
}
|
||||
}
|
||||
// 编辑模式编码重复校验:用户改成已存在的编码(非自身记录)时拒绝保存。
|
||||
// 编码为空时跳过校验(保留旧值由数据库层面控制)。
|
||||
if(oConvertUtils.isNotEmpty(sysCategory.getCode())){
|
||||
String newCode = sysCategory.getCode().trim();
|
||||
long exists = this.count(new LambdaQueryWrapper<SysCategory>()
|
||||
.eq(SysCategory::getCode, newCode)
|
||||
.ne(SysCategory::getId, sysCategory.getId()));
|
||||
if(exists > 0){
|
||||
throw new JeecgBootException("分类编码【"+newCode+"】已存在,请更换!");
|
||||
}
|
||||
sysCategory.setCode(newCode);
|
||||
}
|
||||
baseMapper.updateById(sysCategory);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
-- 库区管理:建表 + 菜单权限(幂等)
|
||||
|
||||
-- ===================== 1. 建表 =====================
|
||||
CREATE TABLE IF NOT EXISTS `mes_xsl_warehouse_area` (
|
||||
`id` varchar(32) NOT NULL COMMENT '主键',
|
||||
`area_code` varchar(100) DEFAULT NULL COMMENT '库区编码(同租户唯一)',
|
||||
`area_name` varchar(200) DEFAULT NULL COMMENT '库区名称',
|
||||
`warehouse_id` varchar(32) DEFAULT NULL COMMENT '所属仓库ID',
|
||||
`warehouse_name` varchar(200) DEFAULT NULL COMMENT '所属仓库名称(冗余)',
|
||||
`warehouse_category` varchar(36) DEFAULT NULL COMMENT '仓库分类(sys_category.id,由仓库带出,根编码 XSLMES_WH)',
|
||||
`max_capacity` int DEFAULT NULL COMMENT '最大存放量',
|
||||
`actual_capacity` int DEFAULT NULL COMMENT '实际存放量',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
`status` varchar(10) DEFAULT '0' COMMENT '状态(字典 xslmes_unit_status:0启用 1停用)',
|
||||
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`del_flag` int DEFAULT 0 COMMENT '删除标记(0正常 1已删除)',
|
||||
`tenant_id` int DEFAULT 1002 COMMENT '租户ID',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_wa_warehouse_id` (`warehouse_id`),
|
||||
KEY `idx_wa_area_code` (`area_code`),
|
||||
KEY `idx_wa_warehouse_category` (`warehouse_category`),
|
||||
KEY `idx_wa_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='MES库区管理';
|
||||
|
||||
-- ===================== 2. 菜单权限(父菜单:MES XSL 1900000000000000300)=====================
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
|
||||
SELECT '1900000000000000550', '1900000000000000300', '库区管理', '/xslmes/mesXslWarehouseArea', 'xslmes/mesXslWarehouseArea/MesXslWarehouseAreaList', 1, NULL, NULL, 1, NULL, '0', 13.00, 0, 'ant-design:appstore-outlined', 0, 1, 0, 0, '库区管理', 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000550');
|
||||
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
|
||||
SELECT '1900000000000000551', '1900000000000000550', '添加', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_warehouse_area:add', '1', 1.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000551');
|
||||
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
|
||||
SELECT '1900000000000000552', '1900000000000000550', '编辑', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_warehouse_area:edit', '1', 2.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000552');
|
||||
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
|
||||
SELECT '1900000000000000553', '1900000000000000550', '删除', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_warehouse_area:delete', '1', 3.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000553');
|
||||
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
|
||||
SELECT '1900000000000000554', '1900000000000000550', '批量删除', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_warehouse_area:deleteBatch', '1', 4.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000554');
|
||||
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
|
||||
SELECT '1900000000000000555', '1900000000000000550', '导出', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_warehouse_area:exportXls', '1', 5.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000555');
|
||||
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
|
||||
SELECT '1900000000000000556', '1900000000000000550', '导入', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_warehouse_area:importExcel', '1', 6.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000556');
|
||||
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`)
|
||||
SELECT '1900000000000000557', '1900000000000000550', '启用/停用', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_warehouse_area:updateStatus', '1', 7.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0
|
||||
FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `sys_permission` WHERE `id` = '1900000000000000557');
|
||||
|
||||
-- ===================== 3. 角色菜单授权(admin 角色)=====================
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, '1900000000000000550', NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r WHERE r.`role_code` = 'admin'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.id AND rp.`permission_id` = '1900000000000000550');
|
||||
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, '1900000000000000551', NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r WHERE r.`role_code` = 'admin'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.id AND rp.`permission_id` = '1900000000000000551');
|
||||
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, '1900000000000000552', NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r WHERE r.`role_code` = 'admin'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.id AND rp.`permission_id` = '1900000000000000552');
|
||||
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, '1900000000000000553', NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r WHERE r.`role_code` = 'admin'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.id AND rp.`permission_id` = '1900000000000000553');
|
||||
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, '1900000000000000554', NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r WHERE r.`role_code` = 'admin'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.id AND rp.`permission_id` = '1900000000000000554');
|
||||
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, '1900000000000000555', NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r WHERE r.`role_code` = 'admin'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.id AND rp.`permission_id` = '1900000000000000555');
|
||||
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, '1900000000000000556', NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r WHERE r.`role_code` = 'admin'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.id AND rp.`permission_id` = '1900000000000000556');
|
||||
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), r.id, '1900000000000000557', NULL, NOW(), '127.0.0.1'
|
||||
FROM `sys_role` r WHERE r.`role_code` = 'admin'
|
||||
AND NOT EXISTS (SELECT 1 FROM `sys_role_permission` rp WHERE rp.`role_id` = r.id AND rp.`permission_id` = '1900000000000000557');
|
||||
@@ -0,0 +1,22 @@
|
||||
-- ============================================================
|
||||
-- 原料入场记录表:新增「拆码明细库位」拼接字段 portion_warehouse_locations
|
||||
-- 背景:桌面端「拆码明细」每行均可独立选择库位,需要把多行的库位
|
||||
-- 与「总份数 / 每份总重(KG) / 每份包数」一样以 "/" 分隔拼接持久化,
|
||||
-- 便于生成原材料卡片之后再次打开入场记录时正确回填每行库位。
|
||||
-- 字段:portion_warehouse_locations VARCHAR(500) DEFAULT NULL
|
||||
-- 形如:"1F-A01/1F-A02/2F-B05/"
|
||||
-- 注意:原 warehouse_location 字段保留,作为「基础资料」区的整票级单值。
|
||||
-- 幂等:列已存在则跳过 ADD。
|
||||
-- ============================================================
|
||||
|
||||
SET @col_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'mes_xsl_raw_material_entry'
|
||||
AND COLUMN_NAME = 'portion_warehouse_locations'
|
||||
);
|
||||
SET @ddl := IF(@col_exists > 0,
|
||||
'SELECT 1',
|
||||
'ALTER TABLE `mes_xsl_raw_material_entry` ADD COLUMN `portion_warehouse_locations` varchar(500) DEFAULT NULL COMMENT ''拆码明细库位拼接(以 / 分隔,末尾带 /,如 1F-A01/1F-A02/)'' AFTER `warehouse_location`'
|
||||
);
|
||||
PREPARE s FROM @ddl; EXECUTE s; DEALLOCATE PREPARE s;
|
||||
@@ -0,0 +1,49 @@
|
||||
-- ============================================================
|
||||
-- 拆码明细 ID 关联:
|
||||
-- 1) mes_xsl_raw_material_card.split_detail_id VARCHAR(64) — 关联到拆码明细行(每行一个 GUID)
|
||||
-- 2) mes_xsl_raw_material_entry.portion_detail_ids VARCHAR(800) — 拆码明细每行的 GUID 拼接(以 / 分隔,末尾带 /)
|
||||
--
|
||||
-- 用途:
|
||||
-- - 「生成原材料卡片」时把当前明细行的 ID 写入卡片 split_detail_id;
|
||||
-- - 「重新拆码」时按入场记录的 portion_detail_ids 反查并清除所有关联卡片。
|
||||
-- 幂等:列已存在则跳过 ADD。
|
||||
-- ============================================================
|
||||
|
||||
-- 1) mes_xsl_raw_material_card.split_detail_id
|
||||
SET @col_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'mes_xsl_raw_material_card'
|
||||
AND COLUMN_NAME = 'split_detail_id'
|
||||
);
|
||||
SET @ddl := IF(@col_exists > 0,
|
||||
'SELECT 1',
|
||||
'ALTER TABLE `mes_xsl_raw_material_card` ADD COLUMN `split_detail_id` varchar(64) DEFAULT NULL COMMENT ''关联的拆码明细行 ID(GUID,可空,便于按入场记录批删)'' AFTER `barcode`'
|
||||
);
|
||||
PREPARE s FROM @ddl; EXECUTE s; DEALLOCATE PREPARE s;
|
||||
|
||||
-- 1.1) 为 split_detail_id 加普通索引(重新拆码批删按此字段 IN 过滤)
|
||||
SET @idx_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'mes_xsl_raw_material_card'
|
||||
AND INDEX_NAME = 'idx_card_split_detail_id'
|
||||
);
|
||||
SET @ddl := IF(@idx_exists > 0,
|
||||
'SELECT 1',
|
||||
'ALTER TABLE `mes_xsl_raw_material_card` ADD INDEX `idx_card_split_detail_id` (`split_detail_id`)'
|
||||
);
|
||||
PREPARE s FROM @ddl; EXECUTE s; DEALLOCATE PREPARE s;
|
||||
|
||||
-- 2) mes_xsl_raw_material_entry.portion_detail_ids
|
||||
SET @col_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'mes_xsl_raw_material_entry'
|
||||
AND COLUMN_NAME = 'portion_detail_ids'
|
||||
);
|
||||
SET @ddl := IF(@col_exists > 0,
|
||||
'SELECT 1',
|
||||
'ALTER TABLE `mes_xsl_raw_material_entry` ADD COLUMN `portion_detail_ids` varchar(800) DEFAULT NULL COMMENT ''拆码明细每行的 GUID 拼接(以 / 分隔,末尾带 /,与 total_portions 等同行对齐)'' AFTER `portion_warehouse_locations`'
|
||||
);
|
||||
PREPARE s FROM @ddl; EXECUTE s; DEALLOCATE PREPARE s;
|
||||
@@ -0,0 +1,24 @@
|
||||
-- ============================================================
|
||||
-- 原料入场记录表:新增「行级 已生成卡片 标志」拼接字段 portion_card_flags
|
||||
-- 背景:之前桌面端用 entry.print_flag(整票) 推断每行的 HasCard,
|
||||
-- 导致已打印记录上新增的明细行(保存后未生成卡片)也被误判为「已打印」,
|
||||
-- 且会绕过「未打印才允许生成」的过滤,造成重复加卡风险。
|
||||
-- 修复:把每行的 HasCard 真实状态按 / 分隔拼接持久化,
|
||||
-- 桌面端「生成原材料卡片」前以本字段为唯一依据过滤。
|
||||
-- 字段:portion_card_flags VARCHAR(500) DEFAULT NULL
|
||||
-- 形如:"1/1/0/" 表示该入场记录 3 条明细中前 2 行已生成卡片、第 3 行未生成。
|
||||
-- 历史数据:留空时桌面端降级用 print_flag 推断,与原行为兼容。
|
||||
-- 幂等:列已存在则跳过 ADD。
|
||||
-- ============================================================
|
||||
|
||||
SET @col_exists := (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'mes_xsl_raw_material_entry'
|
||||
AND COLUMN_NAME = 'portion_card_flags'
|
||||
);
|
||||
SET @ddl := IF(@col_exists > 0,
|
||||
'SELECT 1',
|
||||
'ALTER TABLE `mes_xsl_raw_material_entry` ADD COLUMN `portion_card_flags` varchar(500) DEFAULT NULL COMMENT ''拆码明细行级 已生成卡片 标志拼接(以 / 分隔,1=已生成 0=未生成,末尾带 /,如 1/1/0/)'' AFTER `portion_warehouse_locations`'
|
||||
);
|
||||
PREPARE s FROM @ddl; EXECUTE s; DEALLOCATE PREPARE s;
|
||||
@@ -0,0 +1,23 @@
|
||||
-- 原料入场记录:新增「结存入库」按钮权限(parent_id=1900000000000000530,sort_no=7)
|
||||
|
||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES
|
||||
('1900000000000000537', '1900000000000000530', '结存入库', NULL, NULL, 0, NULL, NULL, 2, 'xslmes:mes_xsl_raw_material_entry:stockIn', '1', 7.00, 0, NULL, 1, 0, 0, 0, NULL, 'admin', NOW(), 'admin', NOW(), 0, 0, '1', 0)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`parent_id` = VALUES(`parent_id`),
|
||||
`name` = VALUES(`name`),
|
||||
`menu_type` = VALUES(`menu_type`),
|
||||
`perms` = VALUES(`perms`),
|
||||
`perms_type` = VALUES(`perms_type`),
|
||||
`sort_no` = VALUES(`sort_no`),
|
||||
`del_flag` = VALUES(`del_flag`),
|
||||
`status` = VALUES(`status`),
|
||||
`update_by` = VALUES(`update_by`),
|
||||
`update_time` = VALUES(`update_time`);
|
||||
|
||||
-- 默认管理员角色授权
|
||||
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
|
||||
SELECT REPLACE(UUID(), '-', ''), 'f6817f48af4fb3af11b9e8bf182f618b', '1900000000000000537', NULL, NOW(), '127.0.0.1'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_role_permission`
|
||||
WHERE `role_id` = 'f6817f48af4fb3af11b9e8bf182f618b' AND `permission_id` = '1900000000000000537'
|
||||
);
|
||||
Reference in New Issue
Block a user