Parcourir la source

上料采集截取字符长度设置

callm il y a 4 jours
Parent
commit
14a1499eb5

+ 9 - 7
UAS_MES_YDCY/FunctionCode/Make/Make_FeedingCollection.cs

@@ -58,6 +58,8 @@ namespace UAS_MES_NEW.Make
 
         List<string> CollectData = new List<string>();
 
+        List<string> ResultStr = new List<string>();
+
         List<string> CollectDataSonCode = new List<string>();
 
         List<string> SPID = new List<string>();
@@ -165,7 +167,7 @@ namespace UAS_MES_NEW.Make
                             string sp_subnum = dt1.Rows[RemainIndex]["sp_subnum"].ToString();
                             string sp_subnumlength = dt1.Rows[RemainIndex]["sp_subnumlength"].ToString();
                             string resultstr = "";
-                            if (LogicHandler.CheckSNBeforeLoad(ma_code.Text, code.Text, sp_fsoncode, sp_soncode, sp_barcoderule, sp_prefix, length, sp_ifrepeat, sp_checksalecode, sp_subnum, sp_subnumlength,out resultstr, out ErrorMessage))
+                            if (LogicHandler.CheckSNBeforeLoad(ma_code.Text, code.Text, sp_fsoncode, sp_soncode, sp_barcoderule, sp_prefix, length, sp_ifrepeat, sp_checksalecode, sp_subnum, sp_subnumlength, out resultstr, out ErrorMessage))
                             {
                                 //判断采集的条码和本次采集的也不能重复
                                 if (CollectData.Contains(code.Text) && sp_ifrepeat != "-1")
@@ -195,7 +197,7 @@ namespace UAS_MES_NEW.Make
                                     sp_soncode = ErrorMessage;
                                 }
                                 LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, oMakeCode, User.UserLineCode, User.UserSourceCode, "上物料", sn_code.Text + "上物料" + code.Text + "料号" + sp_fsoncode, sn_code.Text, "");
-                                Save_OtherCode(sp_fsoncode, sp_soncode, make_code, sn_code.Text, sp_id);
+                                Save_OtherCode(sp_fsoncode, sp_soncode, make_code, sn_code.Text, sp_id, resultstr);
                             }
                             else
                             {
@@ -530,11 +532,11 @@ namespace UAS_MES_NEW.Make
         }
 
         //此类中通用的保存逻辑
-        private void Save_OtherCode(string sp_fsoncode, string sp_soncode, string ma_code, string ms_sncode, string sp_id)
+        private void Save_OtherCode(string sp_fsoncode, string sp_soncode, string ma_code, string ms_sncode, string sp_id, string resultstr)
         {
             CollectDataSonCode.Add(sp_soncode);
             //采集成功提示
-
+            ResultStr.Add(resultstr);
             CollectData.Add(code.Text);
             if (!CheckBarcode.ContainsKey(sp_fsoncode))
             {
@@ -556,13 +558,13 @@ namespace UAS_MES_NEW.Make
             {
                 sql.Clear();
                 sql.Append("insert into Craftmaterial (cm_id ,cm_prodtype,cm_makecode,cm_maid,cm_maprodcode, cm_soncode, cm_mscode, cm_sncode, cm_stepcode, cm_stepname,cm_fsoncode,");
-                sql.Append("cm_craftcode,cm_craftname,cm_barcode,cm_inqty,cm_indate,cm_inman,cm_linecode,cm_wccode,cm_sourcecode,cm_spid,cm_status,cm_materialtype,cm_firstsn)");
+                sql.Append("cm_craftcode,cm_craftname,cm_barcode,cm_inqty,cm_indate,cm_inman,cm_linecode,cm_wccode,cm_sourcecode,cm_spid,cm_status,cm_materialtype,cm_firstsn,cm_substr)");
                 sql.Append("select Craftmaterial_seq.nextval,sp_prodtype, ma_code, ma_id, ma_prodcode,:soncode,ms_code,ms_sncode,mcd_stepcode,");
                 sql.Append("mcd_stepname,sp_fsoncode,ms_craftcode,ms_craftname,:barcode,1,sysdate,'" + User.UserCode + "','" + User.UserLineCode + "',ma_wccode,");
-                sql.Append("'" + User.UserSourceCode + "',:sp_id,0,1,ms_firstsn from make left join makecraftdetail on mcd_maid=ma_id  left join stepproduct on sp_stepcode=mcd_stepcode ");
+                sql.Append("'" + User.UserSourceCode + "',:sp_id,0,1,ms_firstsn,:substr from make left join makecraftdetail on mcd_maid=ma_id  left join stepproduct on sp_stepcode=mcd_stepcode ");
                 sql.Append(" and sp_mothercode = ma_prodcode left join makeserial on ms_makecode=ma_code and sp_craftcode=ms_craftcode ");
                 sql.Append("where ma_code='" + make_code + "'and sp_id=:sp_id1 and mcd_stepcode = '" + User.CurrentStepCode + "' and ms_sncode='" + ms_sncode + "'");
-                dh.BatchInsert(sql.GetString(), new string[] { "soncode", "barcode", "sp_id", "sp_id1" }, CollectDataSonCode.ToArray(), CollectData.ToArray(), SPID.ToArray(), SPID.ToArray());
+                dh.BatchInsert(sql.GetString(), new string[] { "soncode", "barcode", "sp_id", "substr", "sp_id1", }, CollectDataSonCode.ToArray(), CollectData.ToArray(), SPID.ToArray(), ResultStr.ToArray(), SPID.ToArray());
                 try
                 {
                     string Log = "";

+ 16 - 5
UAS_MES_YDCY/PublicMethod/LogicHandler.cs

@@ -1244,17 +1244,28 @@ namespace UAS_MES_NEW.PublicMethod
                             int SubNumLength = int.Parse(iSubNumLength);
                             if (iSN.Length > SubNum)
                             {
-                                string tempstr = iSN.Substring(0, SubNum);
-                                dt = (DataTable)dh.ExecuteSql("select cm_barcode from craftmaterial where cm_barcode='" + iSN + "' and cm_status=0", "select");
-                                if (dt.Rows.Count > 0)
+                                string tempstr = iSN.Substring(SubNum);
+                                if ((tempstr.Length >= SubNumLength))
                                 {
-                                    ErrMessage = "条码" + iSN + "已经上料";
+                                    tempstr = iSN.Substring(SubNum, SubNumLength);
+                                    dt = (DataTable)dh.ExecuteSql("select cm_barcode from craftmaterial where (CM_SUBSTR='" + tempstr + "' or cm_barcode='"+iSN+"') and cm_status=0", "select");
+                                    if (dt.Rows.Count > 0)
+                                    {
+                                        ErrMessage = "条码" + tempstr + "已经上料";
+                                        return false;
+                                    }
+                                    Resultstr = tempstr;
+                                }
+                                else
+                                {
+                                    ErrMessage = "截取长度超出字符串长度";
                                     return false;
                                 }
                             }
                             else
                             {
-
+                                ErrMessage = "索引位置超出字符串长度";
+                                return false;
                             }
                         }
                         else