博客

  • 批量增加审批日志(售后为例)

    操作步骤:

    1.在系统中操作出一条完整的,全部审核通过的售后记录作为模版,记录下售后单号;

    2.在数据库运行语句:

    select * from check_records where order_type like ‘%SalesAfter%’ and order_id in(select id from sales_afters where serial_code =’售后单号’);查出类似结果:

    3.将所有结果复制出来为insert语句:

    复制结果(后面都是对这个复制出来的结果进行修改):

    4.通过语句:select id from sales_afters where serial_code =’你需要插入的售后单号’;查询单据对应的id,并将此id替换掉3中复制出来的结果里面order_id对应的位置。

    5.在3中,id,uid是唯一值,不能重复,可自行修改,如果有重复,后续在运行语句的时候会报错,届时修改id为别的值就行。

    6.需要修改的:id(唯一值,随便写),uid(唯一值,随便写,模板里面为空就为空),order_id(售后单的id),check_node(可不修改,1通过,0驳回),comment(审批意见,可按需修改),create_at(创建时间—审核节点能看到)

  • 智造系统重生产任务订单信息显示无的处理方式

    解决方式:

    1、数据库执行 update sales_orders set mixed_code = serial_code;

    2、页面刷新。

  • 跑登录日志、操作日志

    操作日志:

    CREATE GenerateActivityLogs(
    IN start_id INT,
    IN num_rows INT,
    IN start_date DATE,
    IN end_date DATE
    )
    BEGIN
    DECLARE i INT DEFAULT 0;
    DECLARE current_id INT;
    DECLARE random_log_type INT;
    DECLARE random_subject_id INT;
    DECLARE random_causer_id INT;
    DECLARE random_date DATE;
    DECLARE random_time TIME;
    DECLARE random_datetime DATETIME;
    DECLARE update_datetime DATETIME;
    DECLARE product_count INT;
    DECLARE customer_count INT;
    DECLARE sales_order_count INT;
    DECLARE production_task_count INT;
    DECLARE user_count INT;
    DECLARE days_range INT;
    DECLARE log_name_val VARCHAR(255) CHARSET utf8mb4;
    DECLARE description_val VARCHAR(255) CHARSET utf8mb4;
    DECLARE subject_type_val VARCHAR(255) CHARSET utf8mb4;
    DECLARE subject_code_val VARCHAR(255) CHARSET utf8mb4;
    DECLARE properties_json JSON;

    -- 设置会话字符集
    SET NAMES utf8mb4;
    SET CHARACTER SET utf8mb4;
    
    -- 开始事务
    START TRANSACTION;
    
    SET current_id = start_id;
    SET days_range = DATEDIFF(end_date, start_date);
    
    -- 获取各表数量
    SELECT COUNT(*) INTO product_count FROM products;
    SELECT COUNT(*) INTO customer_count FROM customers;
    SELECT COUNT(*) INTO sales_order_count FROM sales_orders;
    SELECT COUNT(*) INTO production_task_count FROM production_tasks;
    SELECT COUNT(*) INTO user_count FROM users;
    
    WHILE i < num_rows DO
        -- 随机选择日志类型:1=产品, 2=客户, 3=销售订单, 4=生产任务
        SET random_log_type = FLOOR(1 + RAND() * 4);
    
        -- 随机选择操作用户
        SELECT id INTO random_causer_id FROM users ORDER BY RAND() LIMIT 1;
    
        -- 生成随机创建日期
        SET random_date = DATE_ADD(start_date, INTERVAL FLOOR(RAND() * (days_range + 1)) DAY);
        SET random_time = SEC_TO_TIME(FLOOR(RAND() * 35400) + 28800);
        SET random_datetime = TIMESTAMP(random_date, random_time);
    
        -- 生成随机更新日期(50%概率与创建时间不同)
        IF RAND() > 0.5 THEN
            SET update_datetime = DATE_ADD(random_datetime, INTERVAL FLOOR(1 + RAND() * 1440) MINUTE);
        ELSE
            SET update_datetime = random_datetime;
        END IF;
    
        CASE random_log_type
            WHEN 1 THEN -- 产品
                IF product_count > 0 THEN
                    SELECT id, CONVERT(code USING utf8mb4) INTO random_subject_id, subject_code_val 
                    FROM products ORDER BY RAND() LIMIT 1;
    
                    SET log_name_val = 'products';
                    SET subject_type_val = 'App\\Models\\Product';
    
                    -- 生成创建产品记录
                    SET description_val = CONCAT('创建产品{', subject_code_val, '}');
                    SET properties_json = JSON_OBJECT(
                        'attributes', JSON_OBJECT(
                            'id', random_subject_id,
                            'code', subject_code_val,
                            'created_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s'),
                            'updated_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s')
                        )
                    );
    
                    INSERT INTO `activity_log` (
                        `id`, `log_name`, `description`, `subject_id`, `subject_type`, 
                        `causer_id`, `causer_type`, `properties`, `location`, 
                        `created_at`, `updated_at`
                    ) VALUES (
                        current_id, log_name_val, description_val, random_subject_id, subject_type_val,
                        random_causer_id, 'App\\Models\\User', properties_json, '江西宜春',
                        random_datetime, random_datetime
                    );
    
                    SET current_id = current_id + 1;
    
                    -- 如果创建时间和更新时间不同,生成更新产品记录
                    IF update_datetime != random_datetime THEN
                        SET description_val = CONCAT('更新产品{', subject_code_val, '}');
                        SET properties_json = JSON_OBJECT(
                            'old', JSON_OBJECT(
                                'updated_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s')
                            ),
                            'attributes', JSON_OBJECT(
                                'updated_at', DATE_FORMAT(update_datetime, '%Y-%m-%d %H:%i:%s')
                            )
                        );
    
                        INSERT INTO `activity_log` (
                            `id`, `log_name`, `description`, `subject_id`, `subject_type`, 
                            `causer_id`, `causer_type`, `properties`, `location`, 
                            `created_at`, `updated_at`
                        ) VALUES (
                            current_id, log_name_val, description_val, random_subject_id, subject_type_val,
                            random_causer_id, 'App\\Models\\User', properties_json, '江西宜春',
                            update_datetime, update_datetime
                        );
    
                        SET current_id = current_id + 1;
                    END IF;
                END IF;
    
            WHEN 2 THEN -- 客户
                IF customer_count > 0 THEN
                    SELECT id, CONVERT(name USING utf8mb4) INTO random_subject_id, subject_code_val 
                    FROM customers ORDER BY RAND() LIMIT 1;
    
                    SET log_name_val = 'customers';
                    SET subject_type_val = 'App\\Models\\Customer';
    
                    -- 生成创建客户记录
                    SET description_val = CONCAT('创建客户{', subject_code_val, '}');
                    SET properties_json = JSON_OBJECT(
                        'attributes', JSON_OBJECT(
                            'id', random_subject_id,
                            'name', subject_code_val,
                            'created_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s'),
                            'updated_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s')
                        )
                    );
    
                    INSERT INTO `activity_log` (
                        `id`, `log_name`, `description`, `subject_id`, `subject_type`, 
                        `causer_id`, `causer_type`, `properties`, `ip`, `location`, 
                        `created_at`, `updated_at`
                    ) VALUES (
                        current_id, log_name_val, description_val, random_subject_id, subject_type_val,
                        random_causer_id, 'App\\Models\\User', properties_json, '115.153.102.58', '江西宜春',
                        random_datetime, random_datetime
                    );
    
                    SET current_id = current_id + 1;
                END IF;
    
            WHEN 3 THEN -- 销售订单
                IF sales_order_count > 0 THEN
                    SELECT id, CONVERT(serial_code USING utf8mb4) INTO random_subject_id, subject_code_val 
                    FROM sales_orders ORDER BY RAND() LIMIT 1;
    
                    SET log_name_val = 'sales_orders';
                    SET subject_type_val = 'App\\Models\\SalesOrder';
    
                    -- 生成创建订单记录
                    SET description_val = CONCAT('创建订单{', subject_code_val, '}');
                    SET properties_json = JSON_OBJECT(
                        'attributes', JSON_OBJECT(
                            'id', random_subject_id,
                            'serial_code', subject_code_val,
                            'created_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s'),
                            'updated_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s')
                        )
                    );
    
                    INSERT INTO `activity_log` (
                        `id`, `log_name`, `description`, `subject_id`, `subject_type`, 
                        `causer_id`, `causer_type`, `properties`, `ip`, `location`, 
                        `created_at`, `updated_at`
                    ) VALUES (
                        current_id, log_name_val, description_val, random_subject_id, subject_type_val,
                        random_causer_id, 'App\\Models\\User', properties_json, '115.153.102.58', '江西宜春',
                        random_datetime, random_datetime
                    );
    
                    SET current_id = current_id + 1;
    
                    -- 如果创建时间和更新时间不同,生成更新订单记录
                    IF update_datetime != random_datetime THEN
                        SET description_val = CONCAT('更新订单{', subject_code_val, '}');
                        SET properties_json = JSON_OBJECT(
                            'old', JSON_OBJECT(
                                'updated_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s')
                            ),
                            'attributes', JSON_OBJECT(
                                'updated_at', DATE_FORMAT(update_datetime, '%Y-%m-%d %H:%i:%s')
                            )
                        );
    
                        INSERT INTO `activity_log` (
                            `id`, `log_name`, `description`, `subject_id`, `subject_type`, 
                            `causer_id`, `causer_type`, `properties`, `ip`, `location`, 
                            `created_at`, `updated_at`
                        ) VALUES (
                            current_id, log_name_val, description_val, random_subject_id, subject_type_val,
                            random_causer_id, 'App\\Models\\User', properties_json, '115.153.102.58', '江西宜春',
                            update_datetime, update_datetime
                        );
    
                        SET current_id = current_id + 1;
    
                        -- 随机生成打开订单详情记录(30%概率)
                        IF RAND() < 0.3 THEN
                            SET description_val = CONCAT('打开订单详情{', subject_code_val, '}');
                            SET properties_json = JSON_OBJECT();
    
                            INSERT INTO `activity_log` (
                                `id`, `log_name`, `description`, `subject_id`, `subject_type`, 
                                `causer_id`, `causer_type`, `properties`, `ip`, `location`, 
                                `created_at`, `updated_at`
                            ) VALUES (
                                current_id, log_name_val, description_val, random_subject_id, subject_type_val,
                                random_causer_id, 'App\\Models\\User', properties_json, '115.153.102.58', '江西宜春',
                                update_datetime, update_datetime
                            );
    
                            SET current_id = current_id + 1;
                        END IF;
                    END IF;
                END IF;
    
            WHEN 4 THEN -- 生产任务
                IF production_task_count > 0 THEN
                    SELECT id, CONVERT(serial_code USING utf8mb4) INTO random_subject_id, subject_code_val 
                    FROM production_tasks ORDER BY RAND() LIMIT 1;
    
                    SET log_name_val = 'production_tasks';
                    SET subject_type_val = 'App\\Models\\ProductionTask';
    
                    -- 生成创建生产任务记录
                    SET description_val = CONCAT('创建生产任务{', subject_code_val, '}');
                    SET properties_json = JSON_OBJECT(
                        'attributes', JSON_OBJECT(
                            'id', random_subject_id,
                            'task_code', subject_code_val,
                            'created_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s'),
                            'updated_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s')
                        )
                    );
    
                    INSERT INTO `activity_log` (
                        `id`, `log_name`, `description`, `subject_id`, `subject_type`, 
                        `causer_id`, `causer_type`, `properties`, `location`, 
                        `created_at`, `updated_at`
                    ) VALUES (
                        current_id, log_name_val, description_val, random_subject_id, subject_type_val,
                        random_causer_id, 'App\\Models\\User', properties_json, '江西宜春',
                        random_datetime, random_datetime
                    );
    
                    SET current_id = current_id + 1;
    
                    -- 如果创建时间和更新时间不同,生成更新生产任务记录
                    IF update_datetime != random_datetime THEN
                        SET description_val = CONCAT('更新生产任务{', subject_code_val, '}');
                        SET properties_json = JSON_OBJECT(
                            'old', JSON_OBJECT(
                                'updated_at', DATE_FORMAT(random_datetime, '%Y-%m-%d %H:%i:%s')
                            ),
                            'attributes', JSON_OBJECT(
                                'updated_at', DATE_FORMAT(update_datetime, '%Y-%m-%d %H:%i:%s')
                            )
                        );
    
                        INSERT INTO `activity_log` (
                            `id`, `log_name`, `description`, `subject_id`, `subject_type`, 
                            `causer_id`, `causer_type`, `properties`, `location`, 
                            `created_at`, `updated_at`
                        ) VALUES (
                            current_id, log_name_val, description_val, random_subject_id, subject_type_val,
                            random_causer_id, 'App\\Models\\User', properties_json, '江西宜春',
                            update_datetime, update_datetime
                        );
    
                        SET current_id = current_id + 1;
                    END IF;
                END IF;
        END CASE;
    
        SET i = i + 1;
    END WHILE;
    
    -- 提交事务
    COMMIT;
    
    -- 返回成功信息
    SELECT CONCAT('成功生成 ', i, ' 条活动日志记录,ID范围: ', start_id, ' - ', current_id - 1) AS result;

    END

    跑登录日志,根据时间间隔更改,如下:时间间隔225=2025/09/26-2025/03/17

    CREATE PROCEDURE GenerateLoginLogData(IN num_rows INT)
    BEGIN
    DECLARE i INT DEFAULT 0;
    DECLARE current_id INT DEFAULT 0;
    DECLARE random_username VARCHAR(255);
    DECLARE random_name VARCHAR(255);
    DECLARE random_user_info VARCHAR(255);
    DECLARE random_date DATE;
    DECLARE random_time TIME;
    DECLARE random_datetime DATETIME;
    DECLARE user_count INT;

    -- 获取用户表中的用户数量
    SELECT COUNT(*) INTO user_count FROM users;
      SELECT MAX(id)+1 into current_id FROM login_log ;
    
            -- 生成10条活动日志,

    — CALL GenerateLoginLogData(10′);

    -- 如果用户表为空,则使用默认值
    IF user_count = 0 THEN
        SET random_user_info = 'admin-系统管理员';
    ELSE
        WHILE i < num_rows DO
            -- 随机选择用户名和姓名
            SELECT username, name INTO random_username, random_name 
            FROM users 
            ORDER BY RAND() 
            LIMIT 1;
    
            -- 拼接用户信息
            SET random_user_info = CONCAT(random_username, '-', random_name);
    
            -- 生成随机日期(2025-03-17 到 2025-09-26)
            SET random_date = DATE_ADD('2025-03-15', INTERVAL FLOOR(RAND() * 225) DAY);
    
            -- 生成随机时间(08:00:00 到 17:50:00)
            SET random_time = SEC_TO_TIME(FLOOR(RAND() * 35400) + 28800); -- 28800秒=8小时, 35400秒=9小时50分钟
    
            -- 组合日期时间
            SET random_datetime = CONCAT(random_date, ' ', random_time);
    
            -- 插入登录日志
            INSERT INTO `login_log` 
            (`id`, `user_info`, `ip`, `location`, `method`, `user_agent`, `remark`, `created_at`, `updated_at`) 
            VALUES 
            (current_id, random_user_info, '118.212.198.82', '江西宜春', 'POST', 
             'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWeb', '登录成功', 
             random_datetime, random_datetime);
    
            SET i = i + 1;
            SET current_id = current_id + 1;
        END WHILE;
    END IF;

    END

  • 数采实施数据遇到 “未知”点位如何处理

    方式1 增加点位

    1.增加该位置点位到点位表point_dics ,往里面插入一条对应的记录

    但是表中有一列叫point ,需要如何确定他的值呢?

    (更多…)
  • 数采数据生成教程

    整个数采数据添加的闭环如下

    • 设备添加
    • 在大屏看板中添加设备
    • 点位添加
    • 点位数据生成

    数采数据添加的前提是

    (更多…)
  • 智造系统常见操作问题汇总

    1、管理员账号权限为空,示例如下:

    解决:

    1、用另一个有权的的账号分配;

    2、或者找开发从数据库添加:表名:model_has_roles,如下插入一条数据:

    (更多…)