doom4ster
2017-12-15 1eaff9bbfd37549483bbc57011900dda1c11e908
CB_IMGPSScanImp.pas
@@ -565,6 +565,7 @@
    FirstDocDir : String;
    FMaxUploadSize:String;// 上傳zip大小限制
    FJpgCompression:integer;// 20171211 jpg to tif 的壓縮率
    Draging : Boolean;
@@ -1224,53 +1225,24 @@
  ST1,ST2,ST3,ST4:TStringList;
  i,j,k:Integer;
begin
//ShowMessage('casepath='+casepath);
  ST1:=TStringList.Create;
  ST2:=TStringList.Create;
  ST3:=TStringList.Create;
//FImgDelete:='Y';
  {if FileExists(casepath+'CaseDocNo.dat') then
  begin
    ST1.LoadFromFile(casepath+'CaseDocNo.dat');
    for I := 0 to ST1.Count - 1 do
    begin
      ST2.LoadFromFile(casepath+ST1.Strings[i]+'\Context.dat');
      for j := 0 to ST2.Count - 1 do
      begin
        ExistImgList.Add(casepath+ST1.Strings[i]+'\'+ST2.Strings[j])
      end;
    end;
  end;
  if FileExists(casepath+'S_Attach\Context.dat') then
  begin
    ST3.LoadFromFile(casepath+'S_Attach\Context.dat');
    for I := 0 to ST3.Count - 1 do
    begin
      ExistImgList.Add(casepath+'S_Attach\'+ST3.Strings[i])
    end;
  end;
  if FileExists(casepath+'Attach\Context.dat') then
  begin
    ST3.LoadFromFile(casepath+'Attach\Context.dat');
    for I := 0 to ST3.Count - 1 do
    begin
      ExistImgList.Add(casepath+'Attach\'+ST3.Strings[i])
    end;
  end; }
  ExistImgList.Clear;
  ST1.LoadFromFile(casepath+'Download\Context.dat');
  for I := 0 to ST1.Count - 1 do
  begin
LogFile1.LogToFile(logTimeString+casepath+'Download\'+ST1.Strings[i]+',MD5='+LoadFileGetMD5(casepath+'Download\'+ST1.Strings[i]));
    ExistImgList.Add(LoadFileGetMD5(casepath+'Download\'+ST1.Strings[i])) ;
  end;
LogFile1.LogToFile(logTimeString+'ExistImgList.text'+ExistImgList.CommaText);
  ST1.Free;
  ST2.Free;
  ST3.Free;
//ShowMessage('ExistImgList='+ExistImgList.Text);
end;
procedure TCB_IMGPSScanX.Initialize;
@@ -2689,6 +2661,7 @@
  SaveStream     : TFileStream;
  SaveStreamA:TFileStream;
  SaveStreamB:TFileStream;
  cooom:integer;
Begin
  OpenDialog1.Filter := 'Image files|*.TIF;*.JPG';
  If OpenDialog1.Execute Then
@@ -2711,12 +2684,15 @@
//ShowMessage(IntToStr(FileRec.Size)+','+IntToStr(FFileSizeLimit * 1024));
    If FileRec.Size > FFileSizeLimit * 1024 Then // 檢查檔案大小
    Begin
      ShowMessage(Format('%.3f', [FileRec.Size / 1024]) +
        ' KB, file size over limit.');
      ShowMessage(Format('目前檔案大小為 %.3f MB', [FileRec.Size / (1024*1024)]) +
        ',已超過單一檔案匯入限制'+Format('%.1f',[FFileSizeLimit/1024])+'MB');
      FindClose(FileRec);
      DataLoading(false, false);
      Exit;
    End;
    //MessageDlg()
    //cooom:=StrToInt(InputBox('輸入百分比','輸入百分比',''));
    cooom:=FJpgCompression;//20171211彩色tif採jpg壓縮的比例
    FindClose(FileRec);
    CaseID := NowCaseno;
@@ -2847,7 +2823,7 @@
          if iGraphic.Palette.palNumEntries = 0 then  //20171130 彩色 會為0  黑白 為2
          begin
            iGraphic.Compression:=tcJPEG;
            iGraphic.JpegQuality:=70;
            iGraphic.JpegQuality:=cooom;
          end;
          If LowerCase(ExtractFileExt(SavePath + SaveFilename)) = '.tif' Then
@@ -2924,6 +2900,11 @@
            End;
          End;
          // Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]); //20170705 加入有條碼就轉正
          if iGraphic.Palette.palNumEntries = 0 then  //20171130 彩色 會為0  黑白 為2
          begin
            iGraphic.Compression:=tcJPEG;
            iGraphic.JpegQuality:=cooom;
          end;
          If LowerCase(ExtractFileExt(SavePath + SaveFilename)) = '.tif' Then
          Begin
@@ -4051,8 +4032,8 @@
  //lb1.Caption:='AAAAAAAAAAA';
  //Showmessage(CreateDocnoFrom_Info(NowCaseno));
  //Showmessage(self.CreateCustDocNoFrom_Info(NowCaseno));
  ShowMessage('FMaxUploadSize='+FMaxUploadSize);
        initkscan;
  //ShowMessage('FMaxUploadSize='+FMaxUploadSize);
        //initkscan;
   showmessage('FUrl='+FUrl+#10#13+
   'FCaseID='+FCaseID+#10#13+
   'FMode='+FMode+#10#13+
@@ -4083,7 +4064,8 @@
    'FImgDelete='+    FImgDelete+#10#13+
    'FIsExternal='+    FIsExternal+#10#13+
    'FWH_category='+FWH_category+
    'FCheck_main_form='+    FCheck_main_form);
    'FCheck_main_form='+    FCheck_main_form+#10#13+
    'FMaxUploadSize='+FMaxUploadSize);
    //FImgDelete:='Y';
  LoadImgFile;
 { ShowMessage('UpLPoint='+IntToStr(UpLPoint.X)+','+IntToStr(UpLPoint.Y)+#10#13+
@@ -5151,6 +5133,11 @@
    begin
      PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
      DivPageFormIDList.CommaText := PARA_CONTENT;
    end
    Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'FILE_COMPRESSION' Then     //20171211 jpg to tif 壓縮比
    begin
      PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
      FJpgCompression := StrToInt(PARA_CONTENT);
    end
    Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'MAX_UPLOAD_SIZE' Then     //取得 上傳大小的限制(MB)
    begin
@@ -6256,11 +6243,10 @@
    //FMaxUploadSize
//ShowMessage(IntToStr(FileRec.Size));
//Result:=False;
//exit;
//exit;           //目前上傳檔案大小為xxMB,已超過50MB,無法上傳    %.3f  ,[FileRec.Size / 1048576]
    If FileRec.Size > StrtoInt(FMaxUploadSize) * 1048576 Then // 檢查檔案大小
    Begin
      ShowMessage(Format('%.3f', [FileRec.Size / 1048576]) +
        ' MB,超過上傳限制大小 '+FMaxUploadSize+' MB');
      ShowMessage(Format('%s目前上傳檔案大小為%.3fMB,已超過'+FMaxUploadSize+'MB,無法上傳',[caseid,FileRec.Size / 1048576]) );
      FindClose(FileRec);
      Result := False;
      Exit;
@@ -6287,19 +6273,19 @@
//ShowMessage(FData+#10#13+Doc_Data);
  if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/caseupload',SendData,'file',Path+'Img.zip',FReWrite,Memo1,False) then
  begin
    Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!'+_Msg('錯誤代碼:')),[CaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
    Showmessage(Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+'.');
    Result := False;
    Exit;
  end;
  if memo1.Lines.Strings[0] = '1' then
  begin
    Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:'),[CaseID])+memo1.Lines.Strings[1]);
    Showmessage(Format(_Msg('')+_Msg(''),[CaseID])+memo1.Lines.Strings[1]+'。');
    Result := False;
    Exit;
  end
  Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
  Else if Pos('<script type="text/javascript" src="scripts/IMGPS00/login.js"></script>',Memo1.Lines.Text) > 0 then
  begin
    Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'),[CaseID]));
    Showmessage(Format(_Msg('')+_Msg('')+_Msg('閒置過久或被登出,請重新登入'),[CaseID]));
    Result := False;
    Exit;
  end;
@@ -6552,7 +6538,7 @@
  end;
  if Memo1.Lines.Strings[0] = '1' then
  begin
    HttpErrStr :=_Msg('錯誤原因:')+memo1.Lines.Strings[1];
    HttpErrStr :=_Msg('錯誤原因:')+memo1.Lines.Strings[1]+'。';
    Result := False;
    Exit;
  end
@@ -8451,6 +8437,7 @@
  CaseDocNo_CopiesList := TStringlist.Create;
  StrList := TStringlist.Create;
  ST1:=TStringList.Create;
LogFile1.LogToFile(logTimeString+'產文件樹開始');
  try
    CaseNode.ImageIndex := 1;
    CaseNode.SelectedIndex := 1;
@@ -8471,7 +8458,8 @@
        FileList.LoadFromFile(ImageSavePath+Caseno+'\'+CaseDocNoList.Strings[i]+'\Context.dat');
      iDocNo := DocNoDir2DocNo(CaseDocNoList.Strings[i]);
      ST1.Clear;
//ShowMessage(FileList.Text);
LogFile1.LogToFile(logTimeString+'FileList.Text='+FileList.CommaText);
      if (FWH_category='N') and (FIs_In_Wh='Y') then
      begin
        for n := 0 to FileList.Count - 1 do
@@ -8491,11 +8479,9 @@
        end;
      end;
LogFile1.LogToFile(logTimeString+'WH_category='+FWH_category+',Is_In_Wh='+FIs_In_Wh+',FileList.Text='+FileList.CommaText);
      if FileList.Count=0 then Continue;
//Showmessage('aaa '+FileList.Text);
      DocNoCopies := Strtoint(CaseDocNo_CopiesList.Strings[i]);
      DocNoPage := FileList.Count;
      iDocNo := DocNoDir2DocNo(CaseDocNoList.Strings[i]);
@@ -8672,7 +8658,7 @@
        end;
      end;
    end;
LogFile1.LogToFile(logTimeString+'產文件樹結束');
  Finally
  FileList.Free;
  CaseDocNoList.Free;
@@ -9207,7 +9193,7 @@
function TCB_IMGPSScanX.logTimeString: String;
begin
Result:=FormatDateTime('yyyymmdd hh:mm:ss',now) +'  '
Result:=FormatDateTime('yyyymmdd hh:mm:ss',now) +'  caseNo='+NowCaseno+'  ';
end;
Function TCB_IMGPSScanX.FindDivFormCode(FormCode:String):Boolean; //找有沒有分案的條碼
@@ -13775,7 +13761,7 @@
//ShowMessage(Memo1.Lines.Text);
  IF memo1.Lines.Strings[0] <> '0' Then
  begin
    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
    HttpErrStr := _Msg('')+memo1.Lines.Strings[1]+'。';
    Result := -1;
    Exit;
  end
@@ -13783,7 +13769,7 @@
  begin
    if (memo1.Lines.Count < 2) then
    begin
      HttpErrStr := _Msg('錯誤原因:')+'OCX:Index Count error';
      HttpErrStr := _Msg('')+'OCX:Index Count error';
      Result := -1;
      Exit;
    end
@@ -13797,7 +13783,7 @@
        Result := 1
      Else
      begin
        HttpErrStr := _Msg('錯誤原因:')+'OCX:Value error';
        HttpErrStr := _Msg('')+'OCX:Value error';
        Result := -1;
        Exit;
      end;
@@ -14049,6 +14035,7 @@
  InitialOk := False;
  FMaxUploadSize:='10';
  FJpgCompression:=50;
  //FMode := 'DSCAN' ;
  //FIs_In_Wh := 'Y';
  if FIs_In_Wh = 'Y' then
@@ -14278,6 +14265,8 @@
  ReduceLogFile;
  LogFile1.LogToFile(logTimeString+'OCX取表data結束');
  ShowText := _Msg('資料載入中,請稍候');
  DataLoading(True,True);
@@ -14316,7 +14305,7 @@
    MkDir(ImageSavePath+FCaseID);
    CreateEmptyCase(ImageSavePath,FCaseID);
    MkDir(ImageSavePath+FCaseID+'\Download');
    IF (FMode = 'ESCAN') then  //異動件先下載影像
    IF (FMode = 'ESCAN') or (FMode = 'DSCAN') then  //異動件先下載影像
    begin
      ShowText := _Msg('案件下載中,請稍候');
      DataLoading(True,True);
@@ -14348,7 +14337,8 @@
//        //LoadImgFile;
//      end;
      Create_Cust_DocDir(FCaseID); //產生外面傳入的文件
      LastInitFormidListCreate(ImageSavePath+FCaseID+'\Download\');
      if FMode='ESCAN' then
        LastInitFormidListCreate(ImageSavePath+FCaseID+'\Download\');
    end;
  end;
@@ -14401,6 +14391,40 @@
//ShowMessage('ImageSavePath='+ImageSavePath);
  DataLoading(False,False);
  LogFile1.LogToFile(logTimeString+'OCX初始化結束');
  LogFile1.LogToFile(logTimeString+'FUrl='+FUrl+
   ',FCaseID='+FCaseID+
   ',FMode='+FMode+
   ',FModeName='+FModeName+
   ',FWork_no='+FWork_no+
   ',FUserID='+FUserID+
   ',FUserName='+FUserName+
   ',FUserUnit='+FUserUnit+
   ',FData='+FData+
   ',FVerify='+FVerify+
   ',FReWrite='+FReWrite+
   ',FLanguage='+FLanguage+
   ',FLoanDoc_Value='+FLoanDoc_Value+
   ',FLoanDoc_Enable='+FLoanDoc_Enable+
   ',FUseProxy='+FUseProxy+
   ',FC_DocNoList='+FC_DocNoList+
   ',FC_DocNameList='+FC_DocNameList+
   ',FFixFileList='+FFixFileList+
   ',FIs_In_Wh='+FIs_In_Wh+
   ',FOldCaseInfo='+FOldCaseInfo+
   ',FPrintyn='+FPrintyn+
   ',FIs_OldCase='+FIs_OldCase+
   ',FCustDocYN='+FCustDocYN);
  LogFile1.LogToFile(logTimeString+'FImgDPI='+IntToStr(FImgDPI)+
    ',FScanColor='+    IntToStr(FScanColor)+
    ',FFileSizeLimit='+  IntToStr(FFileSizeLimit)+
    ',FCaseNoLength='+ IntToStr(FCaseNoLength)+
    ',FImgDelete='+FImgDelete+
    ',FIsExternal='+FIsExternal+
    ',FWH_category='+FWH_category+
    ',FCheck_main_form='+FCheck_main_form+
    ',FMaxUploadSize='+FMaxUploadSize);
end;
procedure TCB_IMGPSScanX.Timer2Timer(Sender: TObject);
@@ -14438,7 +14462,7 @@
  uploadMsg:='';
  if not CheckCaseID_OK then  //檢查是否有未配號的案件
  begin
    Showmessage(_Msg('尚有未配號案件,無法上傳'));
    Showmessage(_Msg('尚有「無案件編號」之案件,無法上傳'));
    Exit;
  end;
@@ -14504,7 +14528,7 @@
    end;
    if CaseTrans = -1 then  //失敗
    begin
      Showmessage(_Msg('詢問案件可否傳送時,網路發生錯誤!!')+HttpErrStr);
      Showmessage(_Msg('')+HttpErrStr+'.');
      DataLoading(False,False);
      LoadImgFile;
      Exit;
@@ -14557,20 +14581,20 @@
    end;
  end;
  DataLoading(False,False);
  TransMsg := Format(_Msg('成功件%d件'),[SuccessCount]);
  TransMsg := Format(_Msg('成功件【%d】件'),[SuccessCount]);
  if ReCasecount > 0 then
    TransMsg := TransMsg + #13#10 + Format(_Msg('無法上傳件%d件'),[ReCasecount]);
    TransMsg := TransMsg + #13#10 + Format(_Msg('無法上傳件【%d】件'),[ReCasecount]);
  if CheckErrCount > 0 then
    TransMsg := TransMsg + #13#10 + Format(_Msg('檢核失敗件%d件'),[CheckErrCount]);
    TransMsg := TransMsg + #13#10 + Format(_Msg('檢核失敗件【%d】件,請先點選「案件編號」,再點選「問號」查看錯誤原因'),[CheckErrCount]);
  if (FMode = 'DSCAN') and (SuccessCount = 1)  then
  begin
    uploadMsg:=NowCaseNo+_Msg('影像上傳完成。此案已進入下一流程。');
    uploadMsg:=NowCaseNo+_Msg('影像上傳完成。此案已進入下一流程');
  end;
  if (FMode='ESCAN') and (FModeName='補件掃描') and (SuccessCount = 1) then
  begin
    uploadMsg:=NowCaseNo+_Msg('影像已補件完成。');
    uploadMsg:=NowCaseNo+_Msg('影像已補件完成');
  end;
//ShowMessage('uploadMsg='+uploadMsg);
  if uploadMsg<>'' then