Files
openclaw-config/workspace-sql/memory/2026-07-17.md
T
2026-07-17 15:09:40 +08:00

116 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-07-17 工作记录
## 日期修正 SQL — 新增第16、17表(ecid='hsjm'
继7月15日已生成的15个表批量日期修正脚本之后,今日补充两个表:
### 16. 收款单 `dmp_serp.idb_fin_ar_collection_doc`
```sql
UPDATE dmp_serp.idb_fin_ar_collection_doc
SET
doc_date = doc_date,
create_time = STR_TO_DATE(
CONCAT(DATE_FORMAT(doc_date, '%Y-%m-%d'), ' ', DATE_FORMAT(create_time, '%H:%i:%s')),
'%Y-%m-%d %H:%i:%s'
)
WHERE ecid = 'hsjm';
```
### 17. 付款单 `dmp_serp.idb_fin_ap_payment_doc`
```sql
UPDATE dmp_serp.idb_fin_ap_payment_doc
SET
doc_date = doc_date,
create_time = STR_TO_DATE(
CONCAT(DATE_FORMAT(doc_date, '%Y-%m-%d'), ' ', DATE_FORMAT(create_time, '%H:%i:%s')),
'%Y-%m-%d %H:%i:%s'
)
WHERE ecid = 'hsjm';
```
### 规则说明
- 与之前15个表一致:用业务日期源字段(`doc_date`)的日期部分替换 `create_time` 的日期,保留原时分秒
- 不更新 `update_time`
- 数据库 `dmp_serp` 不在本地 Docker MySQL 实例中,需在对应环境的数据库上执行
## JumpServer 堡垒机 API 认证测试
**时间:** 2026-07-17 14:17
**API 凭证:**
- Access Key: `ae50b72c-e92e-4185-8371-636bc16bdde0`
- Secret Key: `e0414b64-4126-4747-b318-8457dcd8590d`
- 堡垒机地址:`https://bastion.witdn.com`
**测试结果:**
- 堡垒机 Web 页面可正常访问(HTTP 200
- API 认证尝试多次,签名格式始终不对(返回 "Invalid signature"
- JumpServer 的 Signature 认证需要 HMAC-SHA1 签名,签名串格式为:`{method}\n{accept}\n{date}\n{path}\n`
- 需要进一步调试签名算法或确认 API 凭证权限
**后续:** 可能需要用正确的 Python 脚本生成签名,或确认凭证是否有 API 访问权限。
## MySQL 数据库连接与表操作
### 本地 Docker MySQLdmp_serp
- **容器名**: mysql (mysql:8)
- **密码**: `MYSQL_PWD_SQL=5gynj20J`(来自 .env
- **命令模板**: `docker exec mysql mysql -u root -p"${MYSQL_PWD_SQL}" -D dmp_serp`
### 远程服务器
- **IP**: `101.34.227.188` (xuan-vps)
- **版本**: MySQL 8.4.9
- **用户**: root / 5gynj20J
- **可用库**: `dmp_smdm`(物料主数据)、`ruoyi-vue-pro``sys`
- **注意**: 远程无 `dmp_serp`
### 新建表
- **`dmp_im_stock_out`**(出库表)— 在本地 `dmp_serp` 创建,54个字段,InnoDB/utf8mb4
### 级联更新 SQLecid='hsjm'
基于 `dmp_im_stock_in_out_flow_detail``stock_date` 更新入库单和出库单:
```sql
-- 1. 更新流水明细(每个 stock_no 取 MIN(stock_date)
UPDATE dmp_serp.dmp_im_stock_in_out_flow_detail t1
INNER JOIN (
SELECT ecid, stock_no, MIN(stock_date) AS min_stock_date
FROM dmp_serp.dmp_im_stock_in_out_flow_detail
WHERE ecid = 'hsjm' AND stock_date IS NOT NULL
GROUP BY ecid, stock_no
) t2 ON t1.ecid = t2.ecid AND t1.stock_no = t2.stock_no AND t1.stock_date = t2.min_stock_date
SET t1.create_time = STR_TO_DATE(CONCAT(DATE_FORMAT(t1.stock_date,'%Y-%m-%d'),' ',DATE_FORMAT(t1.create_time,'%H:%i:%s')),'%Y-%m-%d %H:%i:%s'),
t1.update_time = STR_TO_DATE(CONCAT(DATE_FORMAT(t1.stock_date,'%Y-%m-%d'),' ',DATE_FORMAT(t1.update_time,'%H:%i:%s')),'%Y-%m-%d %H:%i:%s')
WHERE t1.ecid = 'hsjm';
-- 2. 级联更新入库单(stock_in_no = stock_no
UPDATE dmp_serp.dmp_im_stock_in t1
INNER JOIN (
SELECT ecid, stock_no, MIN(stock_date) AS min_stock_date
FROM dmp_serp.dmp_im_stock_in_out_flow_detail
WHERE ecid = 'hsjm' AND stock_date IS NOT NULL
GROUP BY ecid, stock_no
) t2 ON t1.ecid = t2.ecid AND t1.stock_in_no = t2.stock_no
SET t1.create_time = STR_TO_DATE(CONCAT(DATE_FORMAT(t2.min_stock_date,'%Y-%m-%d'),' ',DATE_FORMAT(t1.create_time,'%H:%i:%s')),'%Y-%m-%d %H:%i:%s'),
t1.update_time = STR_TO_DATE(CONCAT(DATE_FORMAT(t2.min_stock_date,'%Y-%m-%d'),' ',DATE_FORMAT(t1.update_time,'%H:%i:%s')),'%Y-%m-%d %H:%i:%s'),
t1.completed_at = STR_TO_DATE(CONCAT(DATE_FORMAT(t2.min_stock_date,'%Y-%m-%d'),' ',DATE_FORMAT(COALESCE(t1.completed_at,t1.create_time),'%H:%i:%s')),'%Y-%m-%d %H:%i:%s'),
t1.bill_date = t2.min_stock_date
WHERE t1.ecid = 'hsjm';
-- 3. 级联更新出库单(stock_out_no = stock_no
UPDATE dmp_serp.dmp_im_stock_out t1
INNER JOIN (
SELECT ecid, stock_no, MIN(stock_date) AS min_stock_date
FROM dmp_serp.dmp_im_stock_in_out_flow_detail
WHERE ecid = 'hsjm' AND stock_date IS NOT NULL
GROUP BY ecid, stock_no
) t2 ON t1.ecid = t2.ecid AND t1.stock_out_no = t2.stock_no
SET t1.create_time = STR_TO_DATE(CONCAT(DATE_FORMAT(t2.min_stock_date,'%Y-%m-%d'),' ',DATE_FORMAT(t1.create_time,'%H:%i:%s')),'%Y-%m-%d %H:%i:%s'),
t1.update_time = STR_TO_DATE(CONCAT(DATE_FORMAT(t2.min_stock_date,'%Y-%m-%d'),' ',DATE_FORMAT(t1.update_time,'%H:%i:%s')),'%Y-%m-%d %H:%i:%s'),
t1.delivery_at = STR_TO_DATE(CONCAT(DATE_FORMAT(t2.min_stock_date,'%Y-%m-%d'),' ',DATE_FORMAT(COALESCE(t1.delivery_at,t1.create_time),'%H:%i:%s')),'%Y-%m-%d %H:%i:%s'),
t1.bill_date = t2.min_stock_date
WHERE t1.ecid = 'hsjm';
```
### 当前状态
三个表(`dmp_im_stock_in``dmp_im_stock_out``dmp_im_stock_in_out_flow_detail`)在 `dmp_serp` 中均**无数据**ecid='hsjm'),需先导入数据后再执行更新。