qinqi 1 سال پیش
والد
کامیت
1166752915

+ 56 - 13
wwwroot/main/FqcProductCheck/api/AddFQCInspect_WCF.ashx

@@ -37,25 +37,35 @@ public class AddFQCInspect_WCF : IHttpHandler, IReadOnlySessionState
                 string goodsCode = context.Request["goodsCode"];
                 int planID = 0;
                 int inspectionquality = 0;
+                int planInspectionQuality = 0;
 
                 DataTable timeTable = conn.ExecuteDatatable(@" select FUN_CMN_GetAccountDate(1) as time From DUAL"
                     );
 
                 DateTime result = Convert.ToDateTime(timeTable.Rows[0]["time"].ToString());
 
+                DataTable time1Table = conn.ExecuteDatatable(@" select FUN_CMN_GetAccountDate(1) - 1 as time1 From DUAL"
+                );
+
+                DateTime result1 = Convert.ToDateTime(time1Table.Rows[0]["time1"].ToString());
+
+                DataTable hourTable = conn.ExecuteDatatable(@"  SELECT TO_CHAR(SYSDATE, 'HH24') AS hour FROM DUAL"
+                );
+
+                int hour = Convert.ToInt32(hourTable.Rows[0]["hour"]);
 
                 if (saveTable != null && saveTable.Rows.Count > 0)
                 {
                     string barcode = saveTable.Rows[0]["BARCODE"].ToString();
                     if (barcode.Length >= 73)
                     {
-                         DataTable procedurename = conn.ExecuteDatatable(@"
+                        DataTable procedurename = conn.ExecuteDatatable(@"
                             SELECT BARCODE
                               FROM TP_PM_GROUTINGDAILYDETAIL
                              WHERE OUTLABELCODE = @OUTLABELCODE@",
-                            new CDAParameter("OUTLABELCODE", barcode.Substring(barcode.IndexOf('-')+1))
-                            );
-                            barcode = procedurename.Rows[0]["BARCODE"].ToString();
+                           new CDAParameter("OUTLABELCODE", barcode.Substring(barcode.IndexOf('-')+1))
+                           );
+                        barcode = procedurename.Rows[0]["BARCODE"].ToString();
                     }
                     else if (barcode.Length == 28)
                     {
@@ -66,28 +76,61 @@ public class AddFQCInspect_WCF : IHttpHandler, IReadOnlySessionState
                         new CDAParameter("OUTLABELCODE", barcode)
                         );
                         barcode = procedurename.Rows[0]["BARCODE"].ToString();
+                    } 
+                    string sqlString= "";
+                    //A班
+                    if (hour >= 7 && hour < 18)
+                    {
+                        sqlString = @"SELECT distinct
+                       FP.PLANID,
+                       FP.PLANINSPECTIONQUANTITY,
+                       FP.INSPECTIONQUANTITY
+                      FROM TP_PM_FQCITEMSPLAN FP 
+                      left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype  and fd.valueflag = 1
+                      WHERE FP.Plandate =  @PLANDATE@
+                      AND  fd.inspecttype = @INSPECTTYPE@
+                      and ((fp.classes = 2 and  CLASSESTYPE = 'A') or (fp.classes = 1 and  CLASSESTYPE is null))
+                      AND FP.GOODSCODE = @GOODSCODE@";
                     }
-
-                    //查询当前产品的当日计划ID-PLANID
-                    DataTable planTable = conn.ExecuteDatatable(@"  SELECT 
+                    else if(hour >= 18)
+                    {
+                       sqlString = @"SELECT distinct
                        FP.PLANID,
+                       FP.PLANINSPECTIONQUANTITY,
                        FP.INSPECTIONQUANTITY
                       FROM TP_PM_FQCITEMSPLAN FP 
-                      left join tp_pm_groutingdailydetail g on g.goodsid = FP.GOODSID AND g.materialcode = FP.Materialcode
+                      left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype and fd.valueflag = 1
                       WHERE FP.Plandate =  @PLANDATE@
-                      AND  FP.inspecttype = @INSPECTTYPE@
-                      AND FP.GOODSCODE = @GOODSCODE@
-                      and g.barcode =  @BARCODE@",
+                      AND  fd.inspecttype = @INSPECTTYPE@
+                      and ((fp.classes = 2 and  CLASSESTYPE = 'B') or (fp.classes = 1 and  CLASSESTYPE is null))
+                      AND FP.GOODSCODE = @GOODSCODE@";
+                    }
+                    else if(hour < 7)
+                    {
+                       sqlString = @"SELECT distinct
+                       FP.PLANID,
+                       FP.PLANINSPECTIONQUANTITY,
+                       FP.INSPECTIONQUANTITY
+                      FROM TP_PM_FQCITEMSPLAN FP 
+                      left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype and fd.valueflag = 1
+                      WHERE FP.Plandate =  @PLANDATE1@
+                      AND  fd.inspecttype = @INSPECTTYPE@
+                      and ((fp.classes = 2 and  CLASSESTYPE = 'B') or (fp.classes = 1 and  CLASSESTYPE is null))
+                      AND FP.GOODSCODE = @GOODSCODE@";
+                    }
+                    //查询当前产品的当日计划ID-PLANID
+                    DataTable planTable = conn.ExecuteDatatable(sqlString,
                     new CDAParameter("INSPECTTYPE", saveTable.Rows[0]["INSPECTTYPE"]),
                     new CDAParameter("GOODSCODE", goodsCode),
-                    new CDAParameter("PLANDATE", result),
-                    new CDAParameter("BARCODE", barcode)
+                    new CDAParameter("PLANDATE1", result1),
+                    new CDAParameter("PLANDATE", result)
                     );
 
                     if (planTable != null && planTable.Rows.Count > 0)
                     {
                         planID = Convert.ToInt32(planTable.Rows[0]["PLANID"]);
                         inspectionquality = Convert.ToInt32(planTable.Rows[0]["INSPECTIONQUANTITY"]);
+                        planInspectionQuality = Convert.ToInt32(planTable.Rows[0]["PLANINSPECTIONQUANTITY"]);
                     }
 
                     //查询该条码是否保存过数据,如果保存过删除之前的检验记录,插入最新的数据

+ 16 - 0
wwwroot/main/FqcProductCheck/api/GetCheckBarcode_WCF.ashx

@@ -42,10 +42,26 @@ public class GetCheckBarcode_WCF : IHttpHandler
                 barcode = procedurename.Rows[0]["BARCODE"].ToString();
             }
 
+            DataTable hourTable = conn.ExecuteDatatable(@"  SELECT TO_CHAR(SYSDATE, 'HH24') AS hour FROM DUAL"
+               );
+
+            int hour = Convert.ToInt32(hourTable.Rows[0]["hour"]);
+            string classes = "";
+            //A班
+            if (hour >= 7 && hour < 18)
+            {
+                classes = "A";
+            }
+            else
+            {
+                classes = "B";
+            }
+
             //调用检验条码存储过程
             List<CDAParameter> sqlPara = new List<CDAParameter>();
             sqlPara.Add(new CDAParameter("IN_BARCODE", barcode));
             sqlPara.Add(new CDAParameter("IN_TYPE", type));
+            sqlPara.Add(new CDAParameter("IN_CLASS", classes)); 
             sqlPara.Add(new CDAParameter("OUT_ERRMSG", DataType.VarChar,50, ParameterDirection.Output));
             sqlPara.Add(new CDAParameter("OUT_INFO", DataType.VarChar,50, ParameterDirection.Output));
             sqlPara.Add(new CDAParameter("OUT_RESULT", DataType.Cursor, ParameterDirection.Output));

+ 104 - 17
wwwroot/main/FqcProductCheck/api/GetPlanQuantity_WCF.ashx

@@ -17,31 +17,118 @@ public class GetPlanQuantity_WCF : IHttpHandler
     {
         context.Response.ContentType = "text/plain";
         using (IDataAccess conn = DataAccess.Create())
-        { 
+        {
             string type = context.Request["type"].ToString();
-            
-                DataTable timeTable = conn.ExecuteDatatable(@" select FUN_CMN_GetAccountDate(1) as time From DUAL"
-                    );
-                      
-                DateTime result = Convert.ToDateTime(timeTable.Rows[0]["time"].ToString());
-
-                DataTable procedurename = conn.ExecuteDatatable(@"
-                                    SELECT 
-                       FP.PLANID,
-                       FP.INSPECTTYPE,
+
+            DataTable timeTable = conn.ExecuteDatatable(@" select FUN_CMN_GetAccountDate(1) as time From DUAL"
+                );
+
+            DateTime result = Convert.ToDateTime(timeTable.Rows[0]["time"].ToString());
+
+            DataTable time1Table = conn.ExecuteDatatable(@" select FUN_CMN_GetAccountDate(1) - 1 as time1 From DUAL"
+                );
+
+            DateTime result1 = Convert.ToDateTime(time1Table.Rows[0]["time1"].ToString());
+
+            DataTable hourTable = conn.ExecuteDatatable(@"  SELECT TO_CHAR(SYSDATE, 'HH24') AS hour FROM DUAL"
+                );
+
+            int hour = Convert.ToInt32(hourTable.Rows[0]["hour"]);
+
+            string sql = "";
+            //A班
+            if (hour >= 7 && hour < 18)
+            {
+                sql = @"SELECT PLANID,  
+                       GOODSCODE,
+                       OUTQUANTITY,
+                       PLANINSPECTIONQUANTITY,
+                       INSPECTIONQUANTITY,
+                       dictionaryvalue,
+                       CLASSESTYPE,
+                       flag 
+                       FROM ( SELECT distinct
+                       FP.PLANID,  
+                       FP.GOODSCODE,
+                       FP.OUTQUANTITY,
+                       FP.PLANINSPECTIONQUANTITY,
+                       FP.INSPECTIONQUANTITY,
                        d.dictionaryvalue,
+                       FP.CLASSESTYPE,
+                       case when  FP.PLANINSPECTIONQUANTITY <= FP.INSPECTIONQUANTITY  then 1
+                         else 0 end as flag
+                      FROM TP_PM_FQCITEMSPLAN FP
+                      left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype and fd.valueflag = 1
+                      left join tp_mst_datadictionary d on d.dictionaryid = fd.inspecttype 
+                      WHERE FP.Plandate =  @PLANDATE@
+                      and d.dictionaryvalue = @DICTIONARYVALUE@
+                      and ((fp.classes = 2 and  CLASSESTYPE = 'A') or (fp.classes = 1 and  CLASSESTYPE  is null)))
+                      order by flag ";
+
+            }
+            else if (hour < 7)
+            {
+                //算在前一天的计划数量B班 
+                sql = @"SELECT PLANID,  
+                       GOODSCODE,
+                       OUTQUANTITY,
+                       PLANINSPECTIONQUANTITY,
+                       INSPECTIONQUANTITY,
+                       dictionaryvalue,
+                       CLASSESTYPE,
+                       flag 
+                       FROM ( SELECT distinct
+                       FP.PLANID,  
                        FP.GOODSCODE,
                        FP.OUTQUANTITY,
                        FP.PLANINSPECTIONQUANTITY,
                        FP.INSPECTIONQUANTITY,
-                       FP.MATERIALCODE
+                       d.dictionaryvalue,
+                       FP.CLASSESTYPE,
+                       case when  FP.PLANINSPECTIONQUANTITY <= FP.INSPECTIONQUANTITY  then 1
+                         else 0 end as flag
+                      FROM TP_PM_FQCITEMSPLAN FP
+                      left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype and fd.valueflag = 1
+                      left join tp_mst_datadictionary d on d.dictionaryid = fd.inspecttype 
+                      WHERE FP.Plandate =  @PLANDATE1@
+                      and d.dictionaryvalue = @DICTIONARYVALUE@
+                     and ((fp.classes = 2 and  CLASSESTYPE = 'B') or (fp.classes = 1 and  CLASSESTYPE  is null)))
+                      order by flag ";
+            }
+            else if (hour >= 18)
+            {
+                //当天B班
+                sql = @"SELECT PLANID,  
+                       GOODSCODE,
+                       OUTQUANTITY,
+                       PLANINSPECTIONQUANTITY,
+                       INSPECTIONQUANTITY,
+                       dictionaryvalue,
+                       CLASSESTYPE,
+                       flag 
+                       FROM ( SELECT distinct
+                       FP.PLANID,  
+                       FP.GOODSCODE,
+                       FP.OUTQUANTITY,
+                       FP.PLANINSPECTIONQUANTITY,
+                       FP.INSPECTIONQUANTITY,
+                       d.dictionaryvalue,
+                       FP.CLASSESTYPE,
+                       case when  FP.PLANINSPECTIONQUANTITY <= FP.INSPECTIONQUANTITY  then 1
+                         else 0 end as flag
                       FROM TP_PM_FQCITEMSPLAN FP
-                      left join tp_mst_datadictionary d on d.dictionaryid = FP.inspecttype
+                      left join tp_pm_fqcconfig_detail fd on FP.configtype = fd.configtype and fd.valueflag = 1
+                      left join tp_mst_datadictionary d on d.dictionaryid = fd.inspecttype 
                       WHERE FP.Plandate =  @PLANDATE@
-                      AND  d.dictionaryvalue = @DICTIONARYVALUE@", 
-                new CDAParameter("DICTIONARYVALUE", type),
-                new CDAParameter("PLANDATE", result)
-                ); 
+                      and d.dictionaryvalue = @DICTIONARYVALUE@
+                     and ((fp.classes = 2 and  CLASSESTYPE = 'B') or (fp.classes = 1 and  CLASSESTYPE  is null)))
+                      order by flag ";
+            }
+            DataTable procedurename = conn.ExecuteDatatable(sql,
+            new CDAParameter("DICTIONARYVALUE", type),
+            new CDAParameter("PLANDATE1", result1),
+            new CDAParameter("PLANDATE", result)
+            );
             context.Response.Write(new JsonResult(procedurename).ToJson());
 
         }

+ 262 - 18
wwwroot/main/FqcProductCheck/index.html

@@ -75,9 +75,7 @@
                                     <thead>
                                         <tr class="table-secondary">
                                             <th scope="col">序号</th>
-                                            <th scope="col">产品型号</th>
-                                            <th scope="col">物料编码</th>
-                                            <th scope="col">出窑数量</th>
+                                            <th scope="col">产品型号</th>  
                                             <th scope="col">检验数量</th>
                                             <th scope="col">已检数量</th>
                                         </tr>
@@ -235,9 +233,7 @@
             <tbody id="计划数量模板">
                 <tr id="{计划标识}">
                     <td>{序号} </td>
-                    <td>{产品型号}</td>
-                    <td>{物料编码}</td> 
-                    <td>{出窑数量}</td>
+                    <td>{产品型号}</td>  
                     <td>{检验数量}</td>
                     <td>{已检数量}</td>
                 </tr>
@@ -405,8 +401,6 @@
                         temp = temp.replaceAll('{计划标识}', json["rows"][i]["PLANID"]);
                         temp = temp.replaceAll('{序号}', i + 1);
                         temp = temp.replaceAll('{产品型号}', json["rows"][i]["GOODSCODE"]);
-                        temp = temp.replaceAll('{物料编码}', json["rows"][i]["MATERIALCODE"]+"");
-                        temp = temp.replaceAll('{出窑数量}', json["rows"][i]["OUTQUANTITY"]);
                         temp = temp.replaceAll('{检验数量}', json["rows"][i]["PLANINSPECTIONQUANTITY"]);
                         temp = temp.replaceAll('{已检数量}', json["rows"][i]["INSPECTIONQUANTITY"]);
                         $('#计划数量列表').append(temp);
@@ -459,7 +453,7 @@
                                     swal.close();
                                 });
                             }
-                            else if (json['rows'][0]['INFO'] != '' && json['rows'][0]['INFO'] != null) {
+                            else if (json['rows'][0]['INFO'] != '' && json['rows'][0]['INFO'] != null && json['rows'][0]['INFO'].search('已检验完成') >= 0) {
                                 swal({
                                     title: "产品查询",
                                     text: '当前条码已完成检验,是否继续检验?',
@@ -673,6 +667,220 @@
                                     swal.close();
                                 });
                             }
+                            else if (json['rows'][0]['INFO'] != '' && json['rows'][0]['INFO'] != null && json['rows'][0]['INFO'].search('已达到抽检数量') >= 0) {
+                                swal({
+                                    title: "产品查询",
+                                    text: '当前产品已达到计划抽检数量,是否继续检验?',
+                                    icon: "warning",
+                                    dangerMode: true,
+                                    buttons: ["是", "否"]
+                                }).then((ok) => {
+                                    if (!ok) {
+                                        //读取产品信息
+                                        $('#产品编码').val(json['rows'][0]["GOODSCODE"]);
+                                        $('#产品名称').val(json['rows'][0]["GOODSNAME"]);
+
+                                        $('#产品商标').val(json['rows'][0]["LOGONAME"]);
+                                        goodsid = json['rows'][0]["GOODSID"];
+                                        $.get('api/GetItemsDetail_WCF.ashx', { 'goodsID': json['rows'][0]["GOODSID"], 'type': $('#检验标准').val() }, function (data) {
+
+                                            itemsJson = JSON.parse(data);
+                                            console.log('itemsJson', itemsJson)
+
+                                            if (itemsJson["success"] == true) {
+
+                                                //查询已经检验的项目
+                                                $.get('api/GetItemsDataDetail_WCF.ashx', { 'barcode': barcode, 'type': $('#检验标准').val() }, function (data1) {
+
+                                                    itemsdataJson = JSON.parse(data1);
+                                                    console.log('itemsdataJson', itemsdataJson)
+
+                                                    itemsLength = itemsJson["rows"].length;
+                                                    for (var i = 0; i < itemsJson["rows"].length; i++) {
+                                                        $("#检验项目").append('<div class="form-row" id = "检验项目' + i + '"></div>');
+
+                                                        var inspectresult = itemsJson["rows"][i]["INSPECTITEM"];
+                                                        if (itemsJson["rows"][i]["INSPECTITEM"].search("%") >= 0) {
+                                                            inspectresult = itemsJson["rows"][i]["INSPECTITEM"].replace("%", "");
+                                                            inspectresult = inspectresult.replace("/", "");
+                                                        }
+                                                        var inspectre = itemsJson["rows"][i]["TECHNICALREQUIREMENT"];
+                                                        var lowerLimit = itemsJson["rows"][i]["LOWERLIMIT"];
+                                                        var upperLimit = itemsJson["rows"][i]["UPPERLIMIT"];
+
+                                                        if (inspectre == '' || inspectre == null) {
+                                                            inspectre = '>=' + lowerLimit + ';<=' + upperLimit;
+                                                        }
+
+                                                        if (itemsJson["rows"][i]["INSPECTMARKVALUE"] == "定性") {
+                                                            if (itemsJson["rows"][i]["ISINSPECT"] == "1") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-3 mb-1"><input type="text" class="form-control border-secondary" id="' + inspectresult + '" value="' + itemsJson["rows"][i]["INSPECTITEM"] + '*" readonly></div>' +
+                                                                    '<div class="form-group col-2 mb-1 rabbit"><input type="text" class="form-control border-secondary" id="' + i + '" value="' + inspectre + '" readonly></div>'
+                                                                );
+                                                            }
+                                                            else {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-3 mb-1"><input type="text" class="form-control border-secondary" id="' + inspectresult + '" value="' + itemsJson["rows"][i]["INSPECTITEM"] + '" readonly></div>' +
+                                                                    '<div class="form-group col-2 mb-1 rabbit"><input type="text" class="form-control border-secondary" id="' + i + '" value="' + inspectre + '" readonly></div>'
+                                                                );
+                                                            }
+
+                                                            if (itemsJson["rows"][i]["INSPECTCOUNT"] == "1" || itemsJson["rows"][i]["INSPECTCOUNT"] == null) {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-5 mb-1"><select id ="' + i + '结果1"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>'
+                                                                );
+                                                            }
+                                                            else if (itemsJson["rows"][i]["INSPECTCOUNT"] == "2") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-3 mb-1"><select id ="' + i + '结果1"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-2 mb-1"><select id ="' + i + '结果2"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>'
+                                                                );
+                                                            }
+                                                            else if (itemsJson["rows"][i]["INSPECTCOUNT"] == "3") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-2 mb-1"><select id ="' + i + '结果1"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-2 mb-1"><select id ="' + i + '结果2"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果3"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>'
+                                                                );
+                                                            }
+                                                            else if (itemsJson["rows"][i]["INSPECTCOUNT"] == "4") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-2 mb-1"><select id ="' + i + '结果1"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果2"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果3"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果4"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>'
+                                                                );
+                                                            }
+                                                            else if (itemsJson["rows"][i]["INSPECTCOUNT"] == "5") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果1"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果2"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果3"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果4"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><select id ="' + i + '结果5"  class="custom-select" required><option value="1">合格</option><option value="0">不合格</option></select></div>'
+                                                                );
+                                                            }
+
+                                                            $("#检验项目" + i).append(
+
+                                                                '<div class="form-group col-1 mb-1"><select id="' + i + '合格" class="custom-select" required><option value=""></option><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                '<div class="form-group col-1 mb-1"><input type="text" class="form-control border-secondary" id="' + i + '备注" value="" ></div>'
+                                                            );
+                                                        }
+                                                        else if (itemsJson["rows"][i]["INSPECTMARKVALUE"] == "定量") {
+
+                                                            if (itemsJson["rows"][i]["ISINSPECT"] == "1") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-3 mb-1"><input  type="text" class="form-control border-secondary" id="' + inspectresult + '" value="' + itemsJson["rows"][i]["INSPECTITEM"] + '*" readonly></div>' +
+                                                                    '<div class="form-group col-2 mb-1"><input  type="text" class="form-control border-secondary" id="' + i + '" value="' + inspectre + '" readonly></div>'
+                                                                );
+                                                            }
+                                                            else {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-3 mb-1"><input  type="text" class="form-control border-secondary" id="' + inspectresult + '" value="' + itemsJson["rows"][i]["INSPECTITEM"] + '" readonly></div>' +
+                                                                    '<div class="form-group col-2 mb-1"><input  type="text" class="form-control border-secondary" id="' + i + '" value="' + inspectre + '" readonly></div>'
+                                                                );
+                                                            }
+
+
+                                                            if (itemsJson["rows"][i]["INSPECTCOUNT"] == "1" || itemsJson["rows"][i]["INSPECTCOUNT"] == null) {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-5 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果1" required></div>'
+                                                                );
+                                                            }
+                                                            else if (itemsJson["rows"][i]["INSPECTCOUNT"] == "2") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-3 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果1" required></div>' +
+                                                                    '<div class="form-group col-2 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果2" required></div>'
+                                                                );
+                                                            }
+                                                            else if (itemsJson["rows"][i]["INSPECTCOUNT"] == "3") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-2 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果1" required></div>' +
+                                                                    '<div class="form-group col-2 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果2" required></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果3" required></div>'
+
+                                                                );
+                                                            }
+                                                            else if (itemsJson["rows"][i]["INSPECTCOUNT"] == "4") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-2 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果1" required></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果2" required></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果3" required></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果4" required></div>'
+                                                                );
+                                                            }
+                                                            else if (itemsJson["rows"][i]["INSPECTCOUNT"] == "5") {
+                                                                $("#检验项目" + i).append(
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果1" required></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果2" required></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果3" required></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果4" required></div>' +
+                                                                    '<div class="form-group col-1 mb-1"><input value="" type="text" class="form-control" id ="' + i + '结果5" required></div>'
+                                                                );
+                                                            }
+
+                                                            $("#检验项目" + i).append(
+                                                                '<div class="form-group col-1 mb-1"><select id="' + i + '合格" class="custom-select" required><option value=""></option><option value="1">合格</option><option value="0">不合格</option></select></div>' +
+                                                                '<div class="form-group col-1 mb-1"><input type="text" class="form-control border-secondary" id="' + i + '备注" value="" ></div>'
+                                                            );
+
+                                                        }
+
+                                                        //查找已经检验完成的项目,并进行赋值
+                                                        for (var z = 0; z < itemsdataJson["rows"].length; z++) {
+                                                            if (itemsJson["rows"][i]["ITEMSDETAILID"] == itemsdataJson["rows"][z]["ITEMSDETAILID"]) {
+                                                                if (itemsJson["rows"][i]["INSPECTMARKVALUE"] == "定性") {
+                                                                    if (itemsJson["rows"][i]["INSPECTCOUNT"] == "1" || itemsJson["rows"][i]["INSPECTCOUNT"] == null) {
+
+                                                                        $("#" + i + "结果1").val(itemsdataJson["rows"][z]["INSPECTVALUE"]);
+                                                                        $("#" + i + "合格").val(itemsdataJson["rows"][z]["ISQUALIFIED"]);
+
+                                                                    } else {
+                                                                        for (var m = 1; m <= parseInt(itemsJson["rows"][i]["INSPECTCOUNT"]); m++) {
+                                                                            $("#" + i + "结果" + m).val(itemsdataJson["rows"][z]["INSPECTVALUE"]);
+                                                                            z = z + 1;
+                                                                        }
+                                                                        $("#" + i + "合格").val(itemsdataJson["rows"][z - 1]["ISQUALIFIED"]);
+                                                                    }
+                                                                }
+                                                                else if (itemsJson["rows"][i]["INSPECTMARKVALUE"] == "定量") {
+                                                                    if (itemsJson["rows"][i]["INSPECTCOUNT"] == "1" || itemsJson["rows"][i]["INSPECTCOUNT"] == null) {
+
+                                                                        $("#" + i + "结果1").val(itemsdataJson["rows"][z]["INSPECTVALUE"]);
+                                                                        $("#" + i + "合格").val(itemsdataJson["rows"][z]["ISQUALIFIED"]);
+
+                                                                    } else {
+                                                                        for (var m = 1; m <= parseInt(itemsJson["rows"][i]["INSPECTCOUNT"]); m++) {
+                                                                            if ($("#" + i + "结果" + m).val() == '') {
+                                                                                $("#" + i + "结果" + m).val(itemsdataJson["rows"][z]["INSPECTVALUE"]);
+                                                                                z = z + 1;
+                                                                            }
+                                                                        }
+                                                                        $("#" + i + "合格").val(itemsdataJson["rows"][z - 1]["ISQUALIFIED"]);
+                                                                    }
+                                                                }
+
+                                                            }
+
+
+
+                                                        }
+
+
+
+                                                    }
+
+
+                                                });
+                                            }
+
+                                        });
+                                    }
+                                    swal.close();
+                                });
+                            }
                             else {
                                 //读取产品信息
                                 $('#产品编码').val(json['rows'][0]["GOODSCODE"]);
@@ -904,7 +1112,7 @@
                     inspectresult = itemsJson["rows"][i]["INSPECTITEM"].replace("%", "");
                     inspectresult = inspectresult.replace("/", "");
                 }
-
+                 
                 //不统计平均值,每次合格才为合格,一个不合格就为不合格
                 if (isAverage == "0") {
                     var hegeFlag = 1;
@@ -924,10 +1132,29 @@
                             var id = '#' + i + '结果' + j1;
                             var inpectResult = $(id).val();
 
-                            if (inpectResult > upperLimit || inpectResult < lowerLimit) {
-                                //不合格
-                                hegeFlag = 0;
+                            if (upperLimit == null) {
+                                if (inpectResult < lowerLimit) {
+                                    //不合格
+                                    hegeFlag = 0;
+                                }
+                            }
+                            else if (lowerLimit == null) {
+                                if (inpectResult > upperLimit) {
+                                    //不合格
+                                    hegeFlag = 0;
+                                }
+                            }
+                            else  {
+                                if (inpectResult > upperLimit || inpectResult < lowerLimit) {
+                                    //不合格
+                                    hegeFlag = 0;
+                                }
+                                
                             }
+                            //if (inpectResult > upperLimit || inpectResult < lowerLimit) {
+                            //    //不合格
+                            //    hegeFlag = 0;
+                            //}
                         }
                     }
 
@@ -965,13 +1192,30 @@
                         var inpectResultAllavg = parseInt(inpectResultAll) / parseInt(inspectCount);
                         if (inpectResultAll == 0) {
                             inpectResultAllavg = 0;
+                        } 
+                        if (upperLimit == null) {
+                            if (inpectResult < lowerLimit) {
+                                //不合格
+                                hegeFlag = 0;
+                            }
+                        }
+                        else if (lowerLimit == null) {
+                            if (inpectResult > upperLimit) {
+                                //不合格
+                                hegeFlag = 0;
+                            }
                         }
-                        
-                        
-                        if (inpectResultAllavg > upperLimit || inpectResultAllavg < lowerLimit) {
-                            //不合格
-                            hegeFlag = 0;
+                        else {
+                            if (inpectResult > upperLimit || inpectResult < lowerLimit) {
+                                //不合格
+                                hegeFlag = 0;
+                            }
+
                         }
+                        //if (inpectResultAllavg > upperLimit || inpectResultAllavg < lowerLimit) {
+                        //    //不合格
+                        //    hegeFlag = 0;
+                        //}
                         console.log('hegeFlag', hegeFlag)
                     }
 

+ 49 - 26
wwwroot/main/excel/excelRW.ashx

@@ -20,31 +20,37 @@ public class excelRW : IHttpHandler
             string inspectname = context.Request["inspectname"].ToString();
 
             DataTable saveTable = conn.ExecuteDatatable(@"
-                 SELECT fd.barcode
-                                          ,g.goodscode
-                                          ,gt.goodstypename
-                                           ,g.groutingdate
-                                          ,fd.inspectitem
-                                          ,case when fdd.unitname is null then '-'
-                                          else to_char(fdd.unitname) end unitname
-                                          ,fdd.technicalrequirement
-                                          ,fd.inspectvalue
-                                          ,case when  fd.isqualified = 1 then '合格'
-                                          else '不合格' end as isqualified
-                                      FROM tp_pm_fqcitemsdata fd
-                                      LEFT JOIN tp_pm_fqcitemsdetail fdd
-                                        ON fd.itemsdetailid = fdd.itemsdetailid
-                                      LEFT JOIN tp_pm_fqcitems f
-                                        ON f.itemsid = fd.itemsid
-                                        left join tp_pm_groutingdailydetail g on 
-                                        g.barcode = fd.barcode
-                                         left join tp_mst_goods gg on 
-                                        gg.goodsid = g.goodsid
-                                         left join tp_mst_goodstype gt on 
-                                        gg.goodstypeid = gt.goodstypeid
-                                     WHERE fd.barcode = @BARCODE@
-                                       AND f.inspectname = @INSPECTNAME@
-                                       AND fd.valueflag = 1  ",
+                SELECT barcode,goodscode,goodstypename,groutingdate,inspectitem ,unitname,technicalrequirement
+                          ,listagg(inspectvalue, ', ') within GROUP(ORDER BY inspectvalue) AS inspectvalue,isqualified
+                      FROM (SELECT fd.barcode,g.goodscode,gt.goodstypename,g.groutingdate ,fd.inspectitem
+                                  ,CASE
+                                       WHEN fdd.unitname IS NULL THEN
+                                        '-'
+                                       ELSE
+                                        to_char(fdd.unitname)
+                                   END unitname
+                                  ,fdd.technicalrequirement ,fd.inspectvalue
+                                  ,CASE
+                                       WHEN fd.isqualified = 1 THEN
+                                        '合格'
+                                       ELSE
+                                        '不合格'
+                                   END AS isqualified
+                              FROM tp_pm_fqcitemsdata fd
+                              LEFT JOIN tp_pm_fqcitemsdetail fdd
+                                ON fd.itemsdetailid = fdd.itemsdetailid
+                              LEFT JOIN tp_pm_fqcitems f
+                                ON f.itemsid = fd.itemsid
+                              LEFT JOIN tp_pm_groutingdailydetail g
+                                ON g.barcode = fd.barcode
+                              LEFT JOIN tp_mst_goods gg
+                                ON gg.goodsid = g.goodsid
+                              LEFT JOIN tp_mst_goodstype gt
+                                ON gg.goodstypeid = gt.goodstypeid
+                             WHERE fd.barcode = @BARCODE@
+                               AND f.inspectname = @INSPECTNAME@
+                               AND fd.valueflag = 1)
+                     GROUP BY barcode ,goodscode,goodstypename,groutingdate,inspectitem,unitname,technicalrequirement,isqualified  ",
                new CDAParameter("BARCODE", barcode),
                new CDAParameter("INSPECTNAME", inspectname)
                );
@@ -52,6 +58,7 @@ public class excelRW : IHttpHandler
 
             if (saveTable != null && saveTable.Rows.Count > 0)
             {
+                string remarks = "";
                 excel.GetWorkbook.GetSheet("封面").GetRow(12).GetCell(6).SetCellValue(saveTable.Rows[0]["goodstypename"].ToString());
                 excel.GetWorkbook.GetSheet("封面").GetRow(12).GetCell(8).SetCellValue(saveTable.Rows[0]["groutingdate"].ToString());
                 excel.GetWorkbook.GetSheet("封面").GetRow(13).GetCell(6).SetCellValue(saveTable.Rows[0]["goodscode"].ToString());
@@ -59,6 +66,20 @@ public class excelRW : IHttpHandler
 
                 for (int i = 0; i < saveTable.Rows.Count; i++)
                 {
+                     //增加备注(显示所有不合格的项目)
+                    if (saveTable.Rows[i]["isqualified"].ToString() == "不合格")
+                    {
+                        if (remarks == "")
+                        {
+                            remarks = saveTable.Rows[i]["inspectitem"].ToString();
+                        }
+                        else
+                        {
+                            remarks +=  ","+ saveTable.Rows[i]["inspectitem"].ToString();
+                        }
+                        
+                    }
+
                     if (i < 70)
                     {
                         excel.GetWorkbook.GetSheet("内容").GetRow(i+1).GetCell(0).SetCellValue(i+1);
@@ -78,9 +99,11 @@ public class excelRW : IHttpHandler
                         excel.GetWorkbook.GetSheet("内容").GetRow(i-70+1).GetCell(26).SetCellValue(saveTable.Rows[i]["isqualified"].ToString());
                     }
 
-                    
+
                 }
 
+                excel.GetWorkbook.GetSheet("封面").GetRow(28).GetCell(6).SetCellValue(remarks);
+
             }