瀏覽代碼

原报、审核人、批复人三种情况下,保存导出上传逻辑合并整理。

CSL 9 年之前
父節點
當前提交
2ec70aedc3
共有 3 個文件被更改,包括 39 次插入58 次删除
  1. 2 2
      Dprs/CSL/Measure_Cloud.dof
  2. 二進制
      Dprs/CSL/Measure_Cloud.res
  3. 37 56
      Frames/ProjectFme.pas

+ 2 - 2
Dprs/CSL/Measure_Cloud.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=3
 MinorVer=1
 Release=3
-Build=1067
+Build=1069
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=纵横结算决算计量一体化云版
-FileVersion=3.1.3.1067
+FileVersion=3.1.3.1069
 InternalName=Measure
 LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2014。保留所有权利。
 LegalTrademarks=Measure

二進制
Dprs/CSL/Measure_Cloud.res


+ 37 - 56
Frames/ProjectFme.pas

@@ -806,13 +806,43 @@ var sURL, sAppFile, sJsonFile_Bills, sJsonFile_Common, sAppFile_UnLock,
   vExportor: TTenderExport;
   vCF: TCheckerMemoForm;
   bNeedFreeEarlier: Boolean;
-  iFile: Integer;
+
+  // 1 审核; 2 批复。
+  function SaveAndExport(AType: Integer): Boolean;
+
+    function InnerSubmit(AType: Integer): Boolean;
+    begin
+      if AType = 1 then
+        Result := ProjectData.SubmitProject(sAppFile)
+      else if AType = 2 then
+        Result := ProjectData.ReplyProject(sAppFile);
+    end;
+  begin
+    Result := False;
+
+    ProgressProRun('保存本地数据...', 0);
+    ProjectData.Save;
+    ProgressProRun('保存本地数据。OK', 10, pmtEdit);
+
+    ProgressProRun('导出并检验文件...', 0);
+    if not InnerSubmit(AType) then
+      if not InnerSubmit(AType) then
+      begin
+        bNeedFreeEarlier := True;
+        Application.MessageBox('Sorry!本地文件连续2次导出检验失败!如果重试后仍不能解决该问题,请联系纵横客服。', '提示', MB_OK + MB_ICONWARNING);
+        Exit;
+      end;
+    Result := True;
+    ProgressProRun('导出并检验文件。OK', 10, pmtEdit);
+  end;
 begin
+  ProgressProCreate(100, '本地数据文件上传到云端');
+  
   bSubmit := False;
   bNeedFreeEarlier := False;
   sAppFile := PHPWeb.UserPath + 'ProjectFile.rmf';
   // 只有编制人才真正需要该文件存在
-  sAppFile_UnLock := PHPWeb.UserPath + 'ProjectFile_UnLock';
+//  sAppFile_UnLock := PHPWeb.UserPath + 'ProjectFile_UnLock';
 
   sPassedHint1 :=
     '【审批通过】后,计量数据将自动交付给下一审批人进行审批,操作后将不可更改,是否通过审批?';
@@ -844,28 +874,7 @@ begin
       if Application.MessageBox(PChar(CheckersHint), '询问', MB_YESNO + MB_ICONQUESTION) = ID_No then
         Exit;
 
-      ProgressProCreate(100, '本地数据文件上传到云端');
-      ProjectData.Save;
-      ProgressProRun('保存本地数据。OK');
-
-      // 生成无锁文件
-      vRec := MainForm.ProjectManagerFrame.Rec(ProjectData.ProjectID);
-      vExportor := TTenderExport.Create(vRec, sAppFile_UnLock);
-      try
-        vExportor.Execute;
-      finally
-        vExportor.Free;
-      end;
-      ProgressProRun('生成无锁文件。OK');
-      ProgressProRun('生成并检验待审核文件...', 0);
-      if not ProjectData.SubmitProject(sAppFile) then
-        if not ProjectData.SubmitProject(sAppFile) then
-        begin
-          bNeedFreeEarlier := True;
-          Application.MessageBox('Sorry!待审核文件连续2次生成失败!如果重试后仍不能解决该问题,请联系纵横客服。', '提示', MB_OK + MB_ICONWARNING);
-          Exit;
-        end;
-      ProgressProRun('生成并检验待审核文件。OK', 10, pmtEdit);
+      if not SaveAndExport(1) then Exit;
     end
     else if ProjectData.CurUserIsChecker then
     begin
@@ -889,18 +898,7 @@ begin
           Exit;
       end;
 
-      ProgressProCreate(100, '本地数据文件上传到云端');
-      ProjectData.Save;
-      ProgressProRun('保存本地数据。OK');
-      ProgressProRun('生成并检验待审核文件...', 0);
-      if not ProjectData.SubmitProject(sAppFile) then
-        if not ProjectData.SubmitProject(sAppFile) then
-        begin
-          bNeedFreeEarlier := True;
-          Application.MessageBox('Sorry!待审核文件连续2次生成失败!如果重试后仍不能解决该问题,请联系纵横客服。', '提示', MB_OK + MB_ICONWARNING);
-          Exit;
-        end;
-      ProgressProRun('生成并检验待审核文件。OK', 10, pmtEdit);
+      if not SaveAndExport(1) then Exit;
     end
     else if ProjectData.CurUserIsOwner then
     begin
@@ -924,20 +922,7 @@ begin
           Exit;
       end;
 
-      ProgressProCreate(100, '本地数据文件上传到云端');
-      ProgressProRun('保存本地数据...', 0);
-      ProjectData.Save;
-      ProgressProRun('保存本地数据。OK', 10, pmtEdit);
-
-      ProgressProRun('生成并检验待批复文件...', 0);
-      if not ProjectData.ReplyProject(sAppFile) then
-        if not ProjectData.ReplyProject(sAppFile) then
-        begin
-          bNeedFreeEarlier := True;
-          Application.MessageBox('Sorry!批复文件连续2次生成失败!如果重试后仍不能解决该问题,请联系纵横客服。', '提示', MB_OK + MB_ICONWARNING);
-          Exit;
-        end;
-      ProgressProRun('生成并检验待批复文件。OK', 10, pmtEdit);
+      if not SaveAndExport(2) then Exit;
     end;
   finally
     vCF.Free;
@@ -957,14 +942,10 @@ begin
 
 
     ProgressProRun('生成并检验up数据包文件...', 0);
-    if FileExists(sAppFile_UnLock) then    // 要在压缩前判断,压缩完会删除
-      iFile := 4
-    else
-      iFile := 3;
 
-    sZipFile := PHPWeb.zip([sAppFile, sJsonFile_Bills, sJsonFile_Common, sAppFile_UnLock]);
+    sZipFile := PHPWeb.zip([sAppFile, sJsonFile_Bills, sJsonFile_Common]);
 
-    if not PHPWeb.CheckZip(sZipFile, iFile) then
+    if not PHPWeb.CheckZip(sZipFile, 3) then
     begin
       Application.MessageBox('up数据包文件无法通过检验请重试!如果重试后仍不能解决该问题,请联系纵横客服。', '提示', MB_OK + MB_ICONWARNING);
       Exit;