Forráskód Böngészése

Task #1200 拉取云端审核信息,以供报表查询

MaiXinRong 9 éve
szülő
commit
b30e949dee
3 módosított fájl, 45 hozzáadás és 3 törlés
  1. 1 1
      Frames/CheckerFme.pas
  2. 5 2
      Units/Checker.pas
  3. 39 0
      Units/ProjectData.pas

+ 1 - 1
Frames/CheckerFme.pas

@@ -185,7 +185,7 @@ begin
           vA[i, 0], vA[i, 2], vA[i, 1], sPicPath, vA[i, 6], vStatus, vA[i, 8], StrToInt(vA[i, 7]));
 
       vCM := TChecker.Create;
-      vProj.Checkers.Add(StrToInt(vA[i, 4]), vA[i, 0], vA[i, 2], vA[i, 6]);
+      vProj.Checkers.Add(StrToInt(vA[i, 4]), vA[i, 0], vA[i, 2], vA[i, 6], vA[i, 8]);
     end;
     RepairOrder;
   end

+ 5 - 2
Units/Checker.pas

@@ -22,6 +22,7 @@ type
     FMemo: string;
     FName: string;
     FNo: Integer;
+    FCheckedDateTime: string;
     procedure SetID(const Value: Integer);
     procedure SetMemo(const Value: string);
     procedure SetName(const Value: string);
@@ -33,6 +34,7 @@ type
     property Name: string read FName write SetName;    // 审核人姓名
     property Role: string read FRole write SetRole;    // 审核人职务
     property Memo: string read FMemo write SetMemo;    // 审核人审核意见
+    property CheckedDateTime: string read FCheckedDateTime write FCheckedDateTime;
     constructor Create;
     destructor Destroy; override;
   end;
@@ -46,7 +48,7 @@ type
     constructor Create;
     destructor Destroy; override;
     function Add(AChecker: TChecker): Integer; overload;
-    function Add(AID: Integer; AName, ARole, AMemo: string): Integer; overload;
+    function Add(AID: Integer; AName, ARole, AMemo, ATime: string): Integer; overload;
     procedure Delete(AIndex: Integer); overload;
     procedure Delete(AChecker: TChecker); overload;
     procedure Clear;
@@ -63,7 +65,7 @@ uses UtilMethods;
 
 { TCheckers }
 
-function TCheckers.Add(AID: Integer; AName, ARole, AMemo: string): Integer;
+function TCheckers.Add(AID: Integer; AName, ARole, AMemo, ATime: string): Integer;
 var vCM: TChecker;
 begin
   vCM := TChecker.Create;
@@ -73,6 +75,7 @@ begin
   vCM.Name := AName;
   vCM.Role := ARole;
   vCM.Memo := RecoverCharsFromJson(AMemo);
+  vCM.CheckedDateTime := ATime;
 end;
 
 function TCheckers.Add(AChecker: TChecker): Integer;

+ 39 - 0
Units/ProjectData.pas

@@ -1039,6 +1039,43 @@ procedure TProjectData.CopyPhaseData;
     FilterDealBillsByBills;
   end;
 
+  procedure SaveCurPhaseCheckers;
+  const
+    sCreateSql = 'Create Table P_Checkers (CheckerNo Integer NOT NULL, Name Text(50), Role Text(50), MemoStr Text(255), CheckedDateTime Text(20), Flag Integer,'+
+                 '  CONSTRAINT PrimaryKey PRIMARY KEY (CheckerNo, Flag))';
+    sInsertSql = 'Insert Into P_Checkers (CheckerNo, Name, Role, MemoStr, CheckedDateTime, Flag) Values (%d, ''%s'', ''%s'', ''%s'', ''%s'', %d)';
+  var
+    i: Integer;
+    vChecker: TChecker;
+    sSql: string;
+  begin
+    ExecuteSql(sCreateSql);
+    // 全部审核人
+    for i := 0 to Checkers.Count - 1 do
+    begin
+      vChecker := Checkers.Item[i];
+      sSql := Format(sInsertSql, [vChecker.No, vChecker.Name, vChecker.Role, vChecker.Memo, vChecker.CheckedDateTime, 0]);
+      ExecuteSql(sSql);
+    end;
+    // 审核通过的最后一人
+    if ProjProperties.AuditStatus <> 0 then
+    begin
+      if ProjProperties.AuditStatus = -1 then
+        vChecker := Checkers.Item[Checkers.Count -1]
+      else
+        vChecker := Checkers.Item[ProjProperties.AuditStatus-1];
+      sSql := Format(sInsertSql, [vChecker.No, vChecker.Name, vChecker.Role, vChecker.Memo, vChecker.CheckedDateTime, 1]);
+    end
+    else
+      sSql := Format(sInsertSql, [-1, '', '', '', '', 1]);
+    ExecuteSql(sSql);
+  end;
+
+  procedure SaveCloudInfo;
+  begin
+    SaveCurPhaseCheckers;
+  end;
+
 begin
   Save;
   ClearReportCacheData;
@@ -1047,6 +1084,8 @@ begin
     CopyCurPhaseData;
   FDealPaymentData.UpdateLinkSerialNo;
   //CopyHistoryCompleteData;
+  if G_IsCloud then
+    SaveCloudInfo;
   if _IsDebugView then
     SaveDebugFile('Report.dat');
 end;