5.1 KiB
5.1 KiB
2026-07-17 工作记录
日期修正 SQL — 新增第16、17表(ecid='hsjm')
继7月15日已生成的15个表批量日期修正脚本之后,今日补充两个表:
16. 收款单 dmp_serp.idb_fin_ar_collection_doc
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
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 MySQL(dmp_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
级联更新 SQL(ecid='hsjm')
基于 dmp_im_stock_in_out_flow_detail 的 stock_date 更新入库单和出库单:
-- 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'),需先导入数据后再执行更新。