初始提交:QuickTeam 工单接口导入工具

用「WCF + 通用存储过程网关」接口替代 Selenium(D://Learning//Python//工单自动化)导入工单:
单 Sprint 12 个项目 175s 跑完(旧方案 25~35 分钟),失败可断点续跑且不重复建单。

- 分层:transport(HTTP/协议)/ api(存储过程语义)/ domain(纯规则)/
  workflow(阶段编排)/ store(SQLite 台账)/ report / CLI
- 幂等:台账驱动断点续跑;dry-run 与跳过行不污染进度;--rollback-on-fail 清理半成品
- 命令:plan / apply / report / status,真实写入需 --yes
- tools:只读探针、存储过程源码导出(sp_helptext)、导入诊断
- docs:调研与设计文档(含联调踩到的 5 个坑)+ 6 个关键存储过程源码

实测:Sprint 2026 Sprint 10 的 12 个项目全部完成建单→导入→确认→推送 TFS,
工单 225134–225145,35 个功能模块,重跑 plan 全部 skip-pushed。69 个单测通过。
This commit is contained in:
chenshoulin
2026-11-05 19:14:25 +08:00
commit 58850314cf
32 changed files with 4590 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
CREATE PROCEDURE [QuickTeam].[usp_UpdateWorkSheetById]␍
@WorkSheetId bigint,␍
@ProjectId nvarchar(50),␍
--@TeamId nvarchar(50),␍
@ProjectName nvarchar(50),␍
@SystemName nvarchar(50),␍
@Evaluator nvarchar(50),␍
@TechnicalLeader nvarchar(50),␍
@CustomerLeader nvarchar(50),␍
@StartTime datetime,␍
@EndTime datetime,␍
@Status nvarchar(5)='01' ,␍
@ServiceType nvarchar(20),␍
@ImplementContent nvarchar(500),␍
@OtherInstructions nvarchar(1000),␍
@Operator nvarchar(50),␍
@DeleteFlag NVARCHAR(2),␍
@Operation NVARCHAR(10),␍
@BelongTeam NVARCHAR(50)␍
␍
␍
␍
AS␍
BEGIN␍
declare @length int␍
select @length=len([Status]) from [QuickTeam].[WorkSheet] where WorkSheetId=@WorkSheetId␍
update QuickTeam.WorkSheet ␍
set [WorkSheetCode]=@ProjectName+'_'+CONVERT(varchar(100), @EndTime, 112)+'_'+CONVERT(nvarchar(10),@WorkSheetId)␍
,[ProjectId]=@ProjectId␍
,[ProjectName]=@ProjectName␍
,[SystemName]=@SystemName␍
,[Evaluator]=@Evaluator␍
,[TechnicalLeader]=@TechnicalLeader␍
,[CustomerLeader]=@CustomerLeader␍
,[StartTime]=@StartTime␍
,[EndTime]=@EndTime␍
,[UpdateTime]=getdate()␍
,[Status]=@Status␍
,[ServiceType]=@ServiceType␍
,[ImplementContent]=@ImplementContent␍
,[OtherInstructions]=@OtherInstructions␍
,Operation=@Operation␍
,DeleteFlag=@DeleteFlag␍
,OperateUserName=@Operator␍
,BelongTeam=@BelongTeam␍
where WorkSheetId=CONVERT(BIGINT,@WorkSheetId)␍
␍
if(@length=0)␍
begin␍
INSERT INTO [QuickTeam].[WorkSheetVersion]␍
([VersionCode]␍
,[VersionStatus]␍
,NextOperator␍
,[WorkSheetId]␍
,Operator␍
,UpdateTime␍
)␍
VALUES␍
(N'技术责任人确认版'␍
,'N'␍
,'TechnicalLeader'␍
,@WorkSheetId␍
,''␍
,getdate()␍
)␍
end␍
select @@ERROR as Result␍
END␍