Merge branch 'develop' into SDK

This commit is contained in:
Samuele E. Locatelli
2020-08-13 18:59:31 +02:00
9 changed files with 98 additions and 21 deletions
+10
View File
@@ -195,6 +195,16 @@ namespace AppData
public static string redMachUnloadCount = "NKC:SERV:MACH_UNLOAD:COUNT";
public static string redMachUnloadForce = "NKC:SERV:MACH_UNLOAD:FORCERELOAD";
/// <summary>
/// chaive redis x cache conteggio coda PJQ
/// </summary>
public static string redQueueCount = "NKC:SERV:PJQ";
/// <summary>
/// chaive redis x cache conteggio coda PJQ composta da tante code
/// </summary>
public static string redQueueCountSet = "NKC:SERV:PJQCOUNT";
#endregion
#region definizione classi impiegate con PROD
+3
View File
@@ -264,6 +264,9 @@ namespace AppData
if (checkDoc(tipoDoc, keyParam))
{
answ = reportPrinter.obj.stampaCartellino(tipoDoc, keyParam, printer, true);
// svuoto code redis salvate..
memLayer.ML.redFlushKey(ComLib.redQueueCount);
memLayer.ML.redFlushKey(ComLib.redQueueCountSet);
if (answ)
{
logger.lg.scriviLog(string.Format(" | {0} | stampato UDC {1} | stampante {2} | tipo {3}", clientIp, keyParam, printer, tipoDoc), tipoLog.INFO);
Vendored
+1 -1
View File
@@ -11,7 +11,7 @@ pipeline {
steps {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=327']) {
withEnv(['NEXT_BUILD_NUMBER=328']) {
// env.versionNumber = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.versionNumberBeta = VersionNumber(versionNumberString : '1.1.${BUILD_DATE_FORMATTED, "yyMM"}-beta.${BUILDS_ALL_TIME}', projectStartDate : '2019-07-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
+58 -10
View File
@@ -6,6 +6,7 @@ using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web.Http;
using System.Web.Http.ModelBinding;
@@ -16,11 +17,7 @@ namespace NKC_WF.Controllers
#region classi gestione PJQ
/// <summary>
/// chaive redis x cache conteggio coda PJQ
/// </summary>
internal static string redQueueCount = "NKC:SERV:PJQ";
/// <summary>
/// Conteggio elementi in attesa stsampa da DB
/// Conteggio elementi in attesa stampa da DB
/// </summary>
protected int countWaitingDb
{
@@ -37,6 +34,24 @@ namespace NKC_WF.Controllers
}
}
/// <summary>
/// Conteggio elementi in attesa stampa da DB che fanno parte di un SET di queue
/// </summary>
protected int countWaitingDbQueueMult(string queueSet)
{
int answ = 0;
// resetto conteggio in redis...
DS_Report.PrintJobQueueDataTable tabPJQ = DataLayer.man.taPJQ.getWaiting();
if (tabPJQ != null)
{
var selQueue = tabPJQ.Where(x => queueSet.Contains($"|{x.prtName}|")).ToList();
if (selQueue != null)
{
answ = selQueue.Count;
}
}
return answ;
}
/// <summary>
/// Carica i dati richiesti dal report dalla StoredProcedure (filtrando quindi...) e restituisce Dictionary [nome RDS / tab RDS]
/// </summary>
/// <param name="tipoReport"></param>
@@ -145,7 +160,7 @@ namespace NKC_WF.Controllers
{
// restituisco...
int answ = 0;
string redVal = memLayer.ML.getRSV(redQueueCount);
string redVal = memLayer.ML.getRSV(ComLib.redQueueCount);
// cerco in redis se ci sia chiave..
if (!string.IsNullOrEmpty(redVal))
{
@@ -154,11 +169,11 @@ namespace NKC_WF.Controllers
}
else
{
// chiudo gli zombie (stampe non chiuse)...
DataLayer.man.taPJQ.chiudiZoombie(DateTime.Now.AddMilliseconds(-memLayer.ML.CRI("zombieMsTime")));
// recupero da db e salvo
answ = countWaitingDb;
memLayer.ML.setRSV(redQueueCount, answ.ToString(), memLayer.ML.CRI("cacheQueueSec"));
memLayer.ML.setRSV(ComLib.redQueueCount, answ.ToString(), memLayer.ML.CRI("cacheQueueSec"));
// chiudo gli zombie (stampe non chiuse)...
DataLayer.man.taPJQ.chiudiZoombie(DateTime.Now.AddMilliseconds(-memLayer.ML.CRI("zombieMsTime")));
}
return answ;
}
@@ -195,6 +210,37 @@ namespace NKC_WF.Controllers
return answ;
}
/// <summary>
/// Restituisce numero jobs aperti (stato = 0...), se 0 = NESSUNO
/// GET: api/PrintQueue/GetCount/|queue01|queue02|queue03|
/// </summary>
/// <param name="queueList">Elenco code delimitate da |..|</param>
/// <returns></returns>
//[HttpGet]
//[Route("count")]
public int GetCount(string queueList)
{
// restituisco...
int answ = 0;
string redVal = memLayer.ML.getRSV($"{ComLib.redQueueCountSet}:{queueList}");
// cerco in redis se ci sia chiave..
if (!string.IsNullOrEmpty(redVal))
{
// recupero
int.TryParse(redVal, out answ);
}
else
{
// recupero da db e salvo
answ = countWaitingDbQueueMult(queueList);
memLayer.ML.setRSV($"{ComLib.redQueueCountSet}:{queueList}", answ.ToString(), memLayer.ML.CRI("cacheQueueSec"));
// chiudo gli zombie (stampe non chiuse)...
DataLayer.man.taPJQ.chiudiZoombie(DateTime.Now.AddMilliseconds(-memLayer.ML.CRI("zombieMsTime")));
}
return answ;
}
/// <summary>
/// Processa una chiamata POST per l'invio in blocco del risultato dell'elaborazione
/// POST: api/PrintQueue
@@ -225,7 +271,9 @@ namespace NKC_WF.Controllers
int.TryParse(printAnsw.ticketNum, out idxPJQ);
DataLayer.man.taPJQ.updateStato(idxPJQ, printAnsw.newStatus);
// resetto conteggio in redis...
memLayer.ML.setRSV(redQueueCount, countWaitingDb.ToString(), memLayer.ML.CRI("cacheQueueSec"));
memLayer.ML.setRSV(ComLib.redQueueCount, countWaitingDb.ToString(), memLayer.ML.CRI("cacheQueueSec"));
// svuoto code redis salvate..
memLayer.ML.redFlushKey(ComLib.redQueueCountSet);
answ = "OK";
}
}
+7
View File
@@ -403,6 +403,13 @@
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
<staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00"/>
<remove fileExtension=".woff"/>
<remove fileExtension=".woff2"/>
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2"/>
</staticContent>
</system.webServer>
<elmah>
<!--
+2 -7
View File
@@ -2,8 +2,6 @@
<%@ Register Src="~/WebUserControls/cmp_batchDetail.ascx" TagPrefix="uc1" TagName="cmp_batchDetail" %>
<%@ Register Src="~/WebUserControls/cmp_numRow.ascx" TagPrefix="uc1" TagName="cmp_numRow" %>
<div class="row">
<div class="col-12 border border-info table-info rounded py-2" runat="server" id="divDetail">
<uc1:cmp_batchDetail runat="server" ID="cmp_batchDetail" />
@@ -23,7 +21,7 @@
<asp:ListItem Text="Estimating Completed" Value="2"></asp:ListItem>
<asp:ListItem Text="Nesting Requested" Value="3"></asp:ListItem>
<asp:ListItem Text="Nesting Completed" Value="4"></asp:ListItem>
<asp:ListItem Text="Nesting Approved" Value="5"></asp:ListItem>
<%--<asp:ListItem Text="Nesting Approved" Value="5"></asp:ListItem>--%>
<asp:ListItem Text="Nesting Discarded" Value="6"></asp:ListItem>
<asp:ListItem Text="Errors Present" Value="7"></asp:ListItem>
<asp:ListItem Text="Validation UNKNOWN" Value="8"></asp:ListItem>
@@ -92,7 +90,7 @@
</Columns>
</asp:GridView>
<asp:HiddenField ID="hfDeleteEnabled" runat="server" />
<asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByStatus" TypeName="AppData.DS_AppTableAdapters.BatchListTableAdapter" DeleteMethod="deleteTree">
<asp:ObjectDataSource ID="ods" runat="server" OldValuesParameterFormatString="Original_{0}" SelectMethod="getByStatus" TypeName="AppData.DS_AppTableAdapters.BatchListTableAdapter" DeleteMethod="deleteTree" FilterExpression="Status <> 5">
<SelectParameters>
<asp:ControlParameter ControlID="ddlStatus" DefaultValue="-1" Name="Status" PropertyName="SelectedValue" Type="Int32" />
<asp:SessionParameter Name="SearchVal" SessionField="valoreSearch" Type="String" DefaultValue="" />
@@ -102,9 +100,6 @@
<asp:Parameter Name="Original_BatchID" Type="Int32" />
<asp:Parameter Name="ForceDelete" Type="Int32" DefaultValue="1" />
</DeleteParameters>
<FilterParameters>
<asp:SessionParameter SessionField="valoreSearch" DefaultValue="" Type="String" />
</FilterParameters>
</asp:ObjectDataSource>
<asp:HiddenField runat="server" ID="hfPartValid" />
</div>
+15 -2
View File
@@ -194,12 +194,15 @@ namespace NKC_WF.WebUserControls
// processo evento..
lastCmd = cmp_barcode.inputAcquired.ToUpper();
doRaiseEv = processLastCmd(doRaiseEv);
// reset comando
cmp_barcode.inputAcquired = "";
ComLib.man.resetSheetUnload(SheetID);
// aggiorno...
doUpdate();
if (doRaiseEv)
{
resetMessages();
}
}
private bool processLastCmd(bool doRaiseEv)
@@ -274,7 +277,16 @@ namespace NKC_WF.WebUserControls
updateCurrData();
ComLib.saveItemPickup(SheetID, DeviceId, itemDtmx);
}
/// <summary>
/// Resetta mesaggi ed errori
/// </summary>
protected void resetMessages()
{
divInfoMessage.Visible = false;
lblInfoMessage.Text = "";
divItemError.Visible = false;
lblErrorMsg.Text = "";
}
/// <summary>
/// Processo il DataMatrix letto
/// </summary>
@@ -283,6 +295,7 @@ namespace NKC_WF.WebUserControls
/// <param name="codeInt"></param>
private void processItemSuggestion(codeType tipoCod, string rawData, int codeInt)
{
displMessage("", false);
DS_App.ItemListDataTable tabItem = null;
// processo suggerimenti x ITEM / cart / bin dato suo RawData (Dtmx) e Cod univoco (intero)
switch (tipoCod)
+1 -1
View File
@@ -18,7 +18,7 @@
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<uc1:cmp_batchList runat="server" ID="cmp_batchList" />
<asp:Timer ID="Timer1" runat="server" Interval="2000" OnTick="Timer1_Tick"></asp:Timer>
<asp:Timer ID="Timer1" runat="server" Interval="4000" OnTick="Timer1_Tick"></asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
+1
View File
@@ -29,6 +29,7 @@ namespace NKC_WF
{
if (!Page.IsPostBack)
{
((SiteMaster)this.Master).showSearch = false;
doUpdate();
}
cmp_batchList.eh_doRefresh += Cmp_batchList_eh_doRefresh;