Browse Source

去无锁文件。

CSL 9 years ago
parent
commit
61a00d5ecf
3 changed files with 20 additions and 29 deletions
  1. 3 2
      Forms/FindUserFrm.dfm
  2. 1 3
      Frames/ProjectFme.pas
  3. 16 24
      Frames/ProjectManagerFme.pas

+ 3 - 2
Forms/FindUserFrm.dfm

@@ -1,6 +1,6 @@
 object FindUserForm: TFindUserForm
-  Left = 336
-  Top = 273
+  Left = 934
+  Top = 272
   ActiveControl = edtMail
   BorderStyle = bsDialog
   Caption = #28155#21152#23457#25209#20154
@@ -13,6 +13,7 @@ object FindUserForm: TFindUserForm
   Font.Name = #24494#36719#38597#40657
   Font.Style = []
   OldCreateOrder = False
+  Position = poScreenCenter
   OnCreate = FormCreate
   PixelsPerInch = 96
   TextHeight = 17

+ 1 - 3
Frames/ProjectFme.pas

@@ -819,7 +819,7 @@ var sURL, sAppFile, sJsonFile_Bills, sJsonFile_Common, sAppFile_UnLock,
     end;
   begin
     Result := False;
-
+    ProgressProCreate(100, '本地数据文件上传到云端');
     ProgressProRun('保存本地数据...', 0);
     ProjectData.Save;
     ProgressProRun('保存本地数据。OK', 10, pmtEdit);
@@ -836,8 +836,6 @@ var sURL, sAppFile, sJsonFile_Bills, sJsonFile_Common, sAppFile_UnLock,
     ProgressProRun('导出并检验文件。OK', 10, pmtEdit);
   end;
 begin
-  ProgressProCreate(100, '本地数据文件上传到云端');
-  
   bSubmit := False;
   bNeedFreeEarlier := False;
   sAppFile := PHPWeb.UserPath + 'ProjectFile.rmf';

+ 16 - 24
Frames/ProjectManagerFme.pas

@@ -123,7 +123,7 @@ type
     FCurPos: Integer;                         // 用来控制审核人的添加位置
     FCheckerList: TObjectList;
 
-    function ReceiveFile(const AFileName: string): Boolean;
+    function ReceiveFile(const AFileName: string; AIsReback: Boolean = False): Boolean;
     function ImportFile(const AFileName: string; AFileMD5: string = ''): Boolean;
     procedure ConnectButtonWithAction;
     function GetImportProjectName(const AFileName: string; AParent: TsdIDTreeNode): string;
@@ -403,7 +403,7 @@ begin
   end;
 end;
 
-function TProjectManagerFrame.ReceiveFile(const AFileName: string): Boolean;
+function TProjectManagerFrame.ReceiveFile(const AFileName: string; AIsReback: Boolean): Boolean;
 var
   vRP: TReceiveProject;
   vNode: TsdIDTreeNode;
@@ -416,11 +416,11 @@ begin
 
     if G_IsCloud then
     begin
+      vRP.IsReback := AIsReback;
       bLock := (FWebAuthorID = PHPWeb.UserID) or
            ((FWebAuthorID <> PHPWeb.UserID) and (FWebCheckStatusMy <> csChecking));
-      bIsOwner := FWebOwnerID = PHPWeb.UserID;
-
       vRP.Lock := bLock;
+      bIsOwner := FWebOwnerID = PHPWeb.UserID;
       vNode := vRP.ReceiveForLost(AFileName, FOnLineCheckerBegin, FOnLineCheckerEnd, bIsOwner);
 
       if vNode <> nil then
@@ -1677,28 +1677,17 @@ begin
     Exit;
   end;
 
-  // 接收更新
-  if AReceiveKind = 1 then
-  begin
-    if not ReceiveFile(sLocalFile) then
-    begin
-      sHint := Format('已从云端下载新的[%s]到本地[%s],但接收失败,请删除该项目然后重新从云端获取!', [FWebBidName_Local, sLocalFile]);
-      Application.MessageBox(PChar(sHint), '系统提醒', MB_OK + MB_ICONWARNING);
-      Exit;
-    end;
-  end
-
-  // 导入更新
-  else if AReceiveKind = 2 then
+  // 打回情况,重新接收原报的文件
+  if AReceiveKind = 2 then
   begin
-    // 有时无锁文件出错:包含了1审2审的数据。所以导入前须检测。
+    // 有时原报文件出错:包含了1审2审的数据。所以导入前须检测。
     vFileCheck := TTenderFileChecker.Create;
     try
       // 有一期以上数据,且最新期数据审核状态为原报
       bCanImp := vFileCheck.CheckFileValid(sLocalFile) and (vFileCheck.PhaseCount > 0) and (vFileCheck.AuditStatus = 0);
       if not bCanImp then
       begin
-        Application.MessageBox(PChar('已从云端下载原报上传的无锁文件到本地,但文件有错误,禁止导入!请致电纵横服务人员以获取帮助。'),
+        Application.MessageBox(PChar('已从云端下载原报文件到本地,但文件有错误,禁止导入!请致电纵横服务人员以获取帮助。'),
           '警告', MB_OK + MB_ICONWARNING);
         Exit;
       end;
@@ -1714,11 +1703,14 @@ begin
     问:①那里下载无锁文件后不能改成新的MD5码吗?
     答:不能,因为审核人的项目会变成无锁文件,看不到不通过项目。MD5码只能在上传后更新。
     且编制人有个交互界面2种选择:a.下载更新不通过项目查看;b.下载更新无锁文件开始新一期。}
-    if not ImportFile(sLocalFile, FWebMD5_OnLine) then
-    begin
-      Application.MessageBox(PChar('已从云端下载原报上传的无锁文件到本地,但导入失败!请重试。'), '警告', MB_OK + MB_ICONWARNING);
-      Exit;
-    end;
+  end;
+
+  // 接收更新
+  if not ReceiveFile(sLocalFile, (AReceiveKind = 2)) then
+  begin
+    sHint := Format('已从云端下载新的[%s]到本地[%s],但接收失败,请删除该项目然后重新从云端获取!', [FWebBidName_Local, sLocalFile]);
+    Application.MessageBox(PChar(sHint), '系统提醒', MB_OK + MB_ICONWARNING);
+    Exit;
   end;
 
   if FileExists(sLocalFile) then