feiyue 3 år sedan
förälder
incheckning
535b81d1a3

+ 17 - 0
DK.Service/PDAModuleLogic/PDAModuleLogicEntrucking.cs

@@ -188,6 +188,23 @@ namespace Dongke.IBOSS.PRD.Service.PDAModuleLogic
                         }
                         else
                         {
+                            sqlStr = $@"
+                                SELECT
+	                                GDD.BARCODE,
+	                                G.GOODSCODE,
+	                                P.PROCEDURENAME,
+	                                U.USERCODE 
+                                FROM
+	                                TP_PM_GROUTINGDAILYDETAIL GDD
+	                                INNER JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = GDD.BARCODE
+	                                INNER JOIN TP_PC_PROCEDURE P ON P.PROCEDUREID = IP.PROCEDUREID
+	                                INNER JOIN TP_MST_USER U ON U.USERID = IP.USERID
+	                                INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID 
+                                WHERE
+	                                GDD.BARCODE = '{barCode}'";
+                            dt = conn.GetSqlResultToDt(sqlStr);
+                            dt.TableName = "goodsinfo";
+                            sre.Data.Tables.Add(dt);
                             sre.Status = Constant.ServiceResultStatus.Success;
                             sre.Message = "操作成功!";
                         }

+ 84 - 0
DK.Service/PMModuleLogic/PMModuleLogicDAL.cs

@@ -94,6 +94,32 @@ namespace Dongke.IBOSS.PRD.Service.PMModuleLogic
                     }
                 }
 
+                #region 验证是否扫描的是装具条码,是则不考虑工序的采集方式,均为集中采集。并查询出车上的所有条码
+                if (barcodeTable.Rows.Count == 1) {
+                    //判断装具状态
+                    DataTable dt = GetTruckStatus(oracleTrConn, barcodeTable.Rows[0]["Barcode"] + "");
+                    if (dt != null && dt.Rows.Count > 0) {
+                        if (dt.Rows[0]["STATUS"].Equals("1")) {
+                            dt = GetTruckBarcode(oracleTrConn, barcodeTable.Rows[0]["Barcode"] + "");
+                            if (dt != null && dt.Rows.Count > 0)
+                            {
+                                barcodeTable = dt;
+                                procedure.CollectType = 1;
+                            }
+                            else
+                            {
+                                dtBarCode.Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = "装具上无产品!";
+                                return dtBarCode;
+                            }
+                        }
+                        else {
+                            dtBarCode.Rows[0][Constant.BarCodeResultTableColumns.out_errMsg.ToString()] = "装具未使用!";
+                            return dtBarCode;
+                        }
+                    }
+                }
+                #endregion
+
                 #region 防止多次重复提交,导致数据重复
                 // 通过锁定表tp_pm_usedbarcode中的条码,防止多次重复提交,导致数据重复
                 // TODO PDA还没有修改,暂时注释。PDA(集中采集画面)点击保存时如果不成功提示消息后,清除了当前画面中的数据。应该不清空数据,可以继续保存。
@@ -6631,6 +6657,64 @@ namespace Dongke.IBOSS.PRD.Service.PMModuleLogic
         }
 
         /// <summary>
+        /// 查询装具上的条码
+        /// </summary>
+        /// <param name="oracleTrConn">连接对象</param>
+        /// <param name="entruckingCode">装具条码</param>
+        /// <returns>工序实体</returns>
+        private static DataTable GetTruckBarcode(IDBTransaction oracleTrConn, string entruckingCode)
+        {
+            try
+            {
+                string sqlStr = $@"
+                        SELECT
+	                        TD.BARCODE,G.GOODSCODE,P.PROCEDURENAME,U.USERCODE
+                        FROM
+	                        TP_PM_ENTRUCKINGDETAIL TD
+	                        INNER JOIN TP_PM_ENTRUCKING T ON T.ENTRUCKINGCODE = TD.ENTRUCKINGCODE AND T.BATCH = TD.BATCH
+	                        INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD ON GDD.BARCODE = TD.BARCODE
+	                        INNER JOIN TP_PM_INPRODUCTION IP ON IP.BARCODE = TD.BARCODE
+	                        INNER JOIN TP_PC_PROCEDURE P ON P.PROCEDUREID = IP.PROCEDUREID
+	                        INNER JOIN TP_MST_USER U ON U.USERID = IP.USERID
+	                        INNER JOIN TP_MST_GOODS G ON G.GOODSID = GDD.GOODSID
+                        WHERE
+	                        TD.ENTRUCKINGCODE = '{entruckingCode}' 
+	                        AND T.STATUS = '1'
+                    ";
+                return oracleTrConn.GetSqlResultToDt(sqlStr);
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
+        /// <summary>
+        /// 查询装具状态
+        /// </summary>
+        /// <param name="oracleTrConn">连接对象</param>
+        /// <param name="entruckingCode">装具条码</param>
+        /// <returns>工序实体</returns>
+        private static DataTable GetTruckStatus(IDBTransaction oracleTrConn, string entruckingCode)
+        {
+            try
+            {
+                string sqlStr = $@"
+                        SELECT
+	                    TPE.STATUS
+                    FROM TP_PM_ENTRUCKING TPE
+                    WHERE TPE.VALUEFLAG = '1'
+                        AND TPE.ENTRUCKINGCODE = '{entruckingCode}'
+                    ";
+                return oracleTrConn.GetSqlResultToDt(sqlStr);
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+        }
+
+        /// <summary>
         /// 查询工序信息
         /// </summary>
         /// <param name="oracleTrConn">连接对象</param>