|
@@ -123,7 +123,7 @@ type
|
|
|
FCurPos: Integer; // 用来控制审核人的添加位置
|
|
|
FCheckerList: TObjectList;
|
|
|
|
|
|
- function ReceiveFile(const AFileName: string; AFileMD5: string = ''; ANeedLock: Boolean = False): Boolean;
|
|
|
+ function ReceiveFile(const AFileName: string): Boolean;
|
|
|
function ImportFile(const AFileName: string; AFileMD5: string = ''): Boolean;
|
|
|
procedure ConnectButtonWithAction;
|
|
|
function GetImportProjectName(const AFileName: string; AParent: TsdIDTreeNode): string;
|
|
@@ -403,41 +403,47 @@ begin
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
-function TProjectManagerFrame.ReceiveFile(const AFileName: string; AFileMD5: string;
|
|
|
- ANeedLock: Boolean): Boolean;
|
|
|
+function TProjectManagerFrame.ReceiveFile(const AFileName: string): Boolean;
|
|
|
var
|
|
|
- Recevier: TReceiveProject;
|
|
|
+ vRP: TReceiveProject;
|
|
|
vNode: TsdIDTreeNode;
|
|
|
+ bLock, bIsOwner: Boolean;
|
|
|
begin
|
|
|
Result := False;
|
|
|
- Recevier := TReceiveProject.Create(stdProjects.IDTree.Selected);
|
|
|
+ vRP := TReceiveProject.Create(stdProjects.IDTree.Selected);
|
|
|
try
|
|
|
- try
|
|
|
- if G_IsCloud then
|
|
|
- Recevier.Lock := ANeedLock;
|
|
|
+ ProjectManager.RefreshSeedID;
|
|
|
|
|
|
- ProjectManager.RefreshSeedID;
|
|
|
- vNode := Recevier.Receive(AFileName);
|
|
|
+ if G_IsCloud then
|
|
|
+ begin
|
|
|
+ bLock := (FWebAuthorID = PHPWeb.UserID) or
|
|
|
+ ((FWebAuthorID <> PHPWeb.UserID) and (FWebCheckStatusMy <> csChecking));
|
|
|
+ bIsOwner := FWebOwnerID = PHPWeb.UserID;
|
|
|
|
|
|
- if G_IsCloud then
|
|
|
+ vRP.Lock := bLock;
|
|
|
+ vNode := vRP.ReceiveForLost(AFileName, FOnLineCheckerBegin, FOnLineCheckerEnd, bIsOwner);
|
|
|
+
|
|
|
+ if vNode <> nil then
|
|
|
begin
|
|
|
vNode.Rec.BeginUpdate;
|
|
|
- vNode.Rec.ValueByName('WebMD5').AsString := AFileMD5;
|
|
|
+ vNode.Rec.ValueByName('WebMD5').AsString := FWebMD5_OnLine;
|
|
|
vNode.Rec.ValueByName('WebUserID').AsInteger := PHPWeb.UserID;
|
|
|
vNode.Rec.EndUpdate;
|
|
|
end;
|
|
|
- Result := True;
|
|
|
- except
|
|
|
- Result := False;
|
|
|
- end;
|
|
|
+ end
|
|
|
+ else
|
|
|
+ vNode := vRP.Receive(AFileName);
|
|
|
finally
|
|
|
- case Recevier.MessageID of
|
|
|
- 0: vNode.LocateInControl;
|
|
|
+ case vRP.MessageID of
|
|
|
+ 0: begin
|
|
|
+ Result := True;
|
|
|
+ vNode.LocateInControl;
|
|
|
+ end;
|
|
|
1: ErrorMessage('当前标段处于打开状态,未能成功接收,请先关闭标段再次接收。');
|
|
|
2: ErrorMessage('下载数据与审核状态不一致,未能成功接收,请再次接收。');
|
|
|
3: ErrorMessage('升级数据失败,未能成功接收,请再次接收。');
|
|
|
end;
|
|
|
- Recevier.Free;
|
|
|
+ vRP.Free;
|
|
|
FProjectManagerData.Save;
|
|
|
end;
|
|
|
end;
|
|
@@ -1653,7 +1659,7 @@ end;
|
|
|
|
|
|
function TProjectManagerFrame.FileDownAndReceive(ADownURL: string; AReceiveKind: Integer): Boolean;
|
|
|
var sLocalFile, sHint: string;
|
|
|
- bLock, bCanImp, bIsOwner: Boolean;
|
|
|
+ bCanImp: Boolean;
|
|
|
vFileCheck: TTenderFileChecker;
|
|
|
begin
|
|
|
Result := False;
|
|
@@ -1674,11 +1680,7 @@ begin
|
|
|
// 接收更新
|
|
|
if AReceiveKind = 1 then
|
|
|
begin
|
|
|
- bLock := (FWebAuthorID = PHPWeb.UserID) or
|
|
|
- ((FWebAuthorID <> PHPWeb.UserID) and (FWebCheckStatusMy <> csChecking));
|
|
|
- bIsOwner := FWebOwnerID = PHPWeb.UserID;
|
|
|
- if not ReceiveFile(sLocalFile, FWebMD5_OnLine, bLock) then
|
|
|
-// if not ReceiveForLost(sLocalFile, FWebMD5_OnLine, bLock, FOnLineCheckerBegin, FOnLineCheckerEnd, bIsOwner) then
|
|
|
+ if not ReceiveFile(sLocalFile) then
|
|
|
begin
|
|
|
sHint := Format('已从云端下载新的[%s]到本地[%s],但接收失败,请删除该项目然后重新从云端获取!', [FWebBidName_Local, sLocalFile]);
|
|
|
Application.MessageBox(PChar(sHint), '系统提醒', MB_OK + MB_ICONWARNING);
|