ソースを参照

云版,后台打开项目,未读取审核人信息问题

MaiXinRong 7 年 前
コミット
5bc707760e
2 ファイル変更39 行追加26 行削除
  1. 1 1
      Forms/SignOnlineReportsFrm.pas
  2. 38 25
      Units/ProjectData.pas

+ 1 - 1
Forms/SignOnlineReportsFrm.pas

@@ -192,7 +192,7 @@ begin
   FSignPhase := ASignPhase;
 
   FProjectData := TProjectData.Create;
-  FProjectData.OpenForSignOnline(GetMyProjectsFilePath + AProjNode.Rec.ValueByName('FileName').AsString, ASignPhase);
+  FProjectData.OpenForSignOnline(AProjNode.Rec, ASignPhase);
   FReportDataPrepare := TReportPrepare.Create(FProjectData);
   FReportCon := TReportConnection.Create(FProjectData);
 

+ 38 - 25
Units/ProjectData.pas

@@ -90,6 +90,8 @@ type
 
     procedure InnerSave;
 
+    procedure LoadCheckersData;
+
     function GetMainFileName: string;
     procedure SetPhaseIndex(const Value: Integer);
     function GetTempPath: string;
@@ -141,7 +143,7 @@ type
     {OpenForGather: BillsData, BillsMeasureTree, DealPaymentData, BGLData, PhaseData(根据PhaseIndex指定打开)}
     procedure OpenForGather(const AFileName: string; APhaseIndex: Integer = -1);
     {OpenForSignOnline: BillsData, BillsMeasureTree, PhaseData(根据PhaseIndex指定打开)}
-    procedure OpenForSignOnline(const AFileName: string; APhaseIndex: Integer = -1);
+    procedure OpenForSignOnline(AProjRec: TsdDataRecord; APhaseIndex: Integer = -1);
     //-----------------------  End ---后台打开 ------------------------
 
     procedure SaveDebugFile(const AFileName: string);
@@ -266,7 +268,7 @@ implementation
 uses UtilMethods, Globals, ProjectCommands, sdIDTree, StageDm,
   ZJJLDm, PHPWebDm, XMLDoc, XMLIntf, ConstUnit, PasswordInputFrm,
   mProgressProFrm, mDataRecord, ConditionalDefines, DbTreeImport,
-  StrUtils, sdProvider, CalcDecimal, Math;
+  StrUtils, sdProvider, CalcDecimal, Math, CslJson, OrderCheckerFme;
 
 { TProjectData }
 
@@ -1987,7 +1989,10 @@ var
   sFileName: string;
 begin
   sFileName := ExtractFileName(AFileName);
-  FConnection.SaveDebugFile(FDebugDir + '\' + sFileName);
+  if FDebugDir = '' then
+    FConnection.SaveDebugFile('E:\' + sFileName)
+  else
+    FConnection.SaveDebugFile(FDebugDir + '\' + sFileName);
 end;
 
 procedure TProjectData.SaveTempDataBaseFile(const AFileName: string);
@@ -2018,7 +2023,7 @@ begin
   FProjProperties.Open(FConnection.Connection);
   UpdateOldData;
   FBillsData.Open(FConnection.Connection);
-  FBillsCompileData.Open;
+  FBillsMeasureData.Open;
   FDealPaymentData.Open(FConnection.Connection);
   FBGLData.Open(FConnection.Connection);
   if ProjProperties.PhaseCount > 0 then
@@ -2037,29 +2042,16 @@ begin
   Result := PhaseIndex < ProjProperties.PhaseCount;
 end;
 
-procedure TProjectData.OpenForSignOnline(const AFileName: string;
+procedure TProjectData.OpenForSignOnline(AProjRec: TsdDataRecord;
   APhaseIndex: Integer);
 begin
-  FProjectID := -1;
-  UnZipFile(AFileName, TempPath);
-  FConnection.Open(MainFileName);
-  UpdateProjectDataBase;
-  FProjProperties.Open(FConnection.Connection);
-  UpdateOldData;
-  FBillsData.Open(FConnection.Connection);
-  FBillsMeasureData.Open;
-  FDealPaymentData.Open(FConnection.Connection);
-  FBGLData.Open(FConnection.Connection);
-  if ProjProperties.PhaseCount > 0 then
-  begin
-    if (APhaseIndex <= ProjProperties.PhaseCount) and (APhaseIndex > 0) then
-      FPhaseIndex := APhaseIndex
-    else
-      FPhaseIndex := ProjProperties.PhaseCount;
-    FPhaseData.SimpleOpen2(Format('%sPhase%d.dat', [TempPath, FPhaseIndex]));
-  end;
-  FBillsMeasureData.ResetTreeNodeStageRec;
-
+  FWebID := AProjRec.ValueByName('WebID').AsInteger;
+  FWebOwnerID := AProjRec.ValueByName('WebOwnerID').AsInteger;
+  FWebAuthorID := AProjRec.ValueByName('WebAuthorID').AsInteger;
+  
+  OpenForGather(GetMyProjectsFilePath + AProjRec.ValueByName('FileName').AsString, APhaseIndex);
+  if _IsCloud then
+    LoadCheckersData;
   CopyPhaseData(False);
 end;
 
@@ -2197,4 +2189,25 @@ begin
   FIsGuest := Value;
 end;
 
+procedure TProjectData.LoadCheckersData;
+var
+  sURL: string;
+  vA: TOVArr;
+  i, iIndex: Integer;
+  vStatus: TCheckStatus;
+begin
+  Checkers.Clear;
+  sURL := Format('%suser/get/all/%d/%d/measure', [PHPWeb.MeasureURL, WebID, PhaseIndex]);
+  if PHPWeb.Search(sURL, [''], [''], vA) = 1 then
+  begin
+    for i := Low(vA) to High(vA) do
+    begin
+      vStatus :=  TCheckStatus(StrToInt(vA[i, 3])-1);
+      iIndex := Checkers.Add(StrToInt(vA[i, 4]), vA[i, 0], vA[i, 2], vA[i, 6], vA[i, 8]);
+      if vStatus in [csFinished, csNotPass] then
+        Checkers.LastChecker := Checkers.Item[iIndex];
+    end;
+  end
+end;
+
 end.