自动化立体仓库 - WMS系统
#
tzsk
2025-07-30 71592bfa6e09c482ba6c12d4bacedd470fedbec8
src/main/java/com/zy/asrs/task/handler/OverYearLogHandler.java
@@ -20,12 +20,10 @@
    @Transactional
    public ReturnT<String> start() {
        try {
            // 删除半年以上的历史档
            jdbcTemplate.update("delete from asr_stk_hplc where dateadd(day,180,appe_time) <= getdate();");
            jdbcTemplate.update("delete from asr_wrk_detl_log where dateadd(day,360,appe_time) <= getdate();");
            jdbcTemplate.update("delete from asr_wrk_mast_log where dateadd(day,360,appe_time) <= getdate();");
            jdbcTemplate.update("delete from cust_wait_pakin_log where dateadd(day,360,appe_time) <= getdate();");
            batchDelete("asr_stk_hplc", 180);
            batchDelete("asr_wrk_detl_log", 360);
            batchDelete("asr_wrk_mast_log", 360);
            batchDelete("cust_wait_pakin_log", 360);
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -34,4 +32,17 @@
        return SUCCESS;
    }
    private void batchDelete(String tableName, int days) {
        int batchSize = 1000;
        int affected;
        do {
            String sql = String.format(
                    "WITH cte AS (SELECT TOP (%d) * FROM %s WHERE dateadd(day, %d, appe_time) <= getdate()) DELETE FROM cte",
                    batchSize, tableName, days
            );
            affected = jdbcTemplate.update(sql);
        } while (affected > 0);
    }
}