Browse Source

箱内序列号下地不允许过站,泽天标签打印优化

callm 6 years ago
parent
commit
2b1fa44d60

+ 22 - 3
UAS-MES/FunctionCode/Make/Make_PackageCollection.cs

@@ -232,7 +232,7 @@ namespace UAS_MES.Make
                             }
                             return;
                         }
-                        
+
                         PR_CHECKCARTONW = dh.getFieldDataByCondition("craftdetail left join craft on cr_id=cd_crid left join makeserial on ms_craftcode =cr_code and cr_prodcode = ms_prodcode", "nvl(cd_ifweigh,'0') cd_ifweigh", "ms_sncode='" + sn_code.Text + "' and ms_makecode='" + oMakeCode + "' and cd_stepcode = '" + User.CurrentStepCode + "'").ToString();
                         //获取序列号信息
                         sql.Clear();
@@ -437,8 +437,17 @@ namespace UAS_MES.Make
                                     }
                                     if (int.Parse(pa_currentqty.Text == "" ? "0" : pa_currentqty.Text) == int.Parse(pr_outboxinnerqty.Text))
                                     {
+                                        //箱内有下地的不允许过站
+                                        DataTable dt1 = (DataTable)dh.ExecuteSql("select wm_concat(ms_sncode) from makeserial where  ms_downstatus=-1 and ms_outboxcode='" + pa_outboxcode.Text + "'", "select");
+                                        if (dt1.Rows.Count > 0)
+                                        {
+                                            if (dt1.Rows[0][0].ToString() != "")
+                                            {
+                                                OperateResult.AppendText(">序列号:" + dt1.Rows[0][0].ToString() + "处于下地状态,箱不允许过站\n", Color.Red, sn_code);
+                                                return;
+                                            }
+                                        }
                                         dh.UpdateByCondition("package", "pa_status=1,pa_packageqty=pa_currentqty,pa_totalqty=pa_currentqty", "pa_outboxcode='" + pa_outboxcode.Text + "'");
-                                     
                                         pa_status.Text = "1";
                                         pa_standardqty.Text = "";
                                         if (AutoPrint.Checked)
@@ -585,6 +594,15 @@ namespace UAS_MES.Make
                 {
                     LoadData();
                     LoadGridData();
+                    DataTable dt1 = (DataTable)dh.ExecuteSql("select wm_concat(ms_sncode) from makeserial where  ms_downstatus=-1 and ms_outboxcode='" + pa_outboxcode.Text + "'", "select");
+                    if (dt1.Rows.Count > 0)
+                    {
+                        if (dt1.Rows[0][0].ToString() != "")
+                        {
+                            OperateResult.AppendText(">序列号:" + dt1.Rows[0][0].ToString() + "处于下地状态,箱不允许过站\n", Color.Red, sn_code);
+                            return;
+                        }
+                    }
                     if (PR_CHECKCARTONW != "0")
                     {
                         OperateResult.AppendText(">>卡通箱" + pa_outboxcode.Text + "处于称重工序,请在卡通箱称重界面进行操作\n", Color.Black, sn_code);
@@ -1003,7 +1021,8 @@ namespace UAS_MES.Make
                         }
                     }
                     else OperateResult.AppendText(">>请先采集箱内数据\n", Color.Red);
-                }else OperateResult.AppendText(">>备注信息不可为空\n", Color.Red);
+                }
+                else OperateResult.AppendText(">>备注信息不可为空\n", Color.Red);
             }
         }
 

+ 67 - 9
UAS-出货标签管理(泽天)/UAS_出货标签管理.cs

@@ -88,6 +88,7 @@ namespace UAS_LabelMachine
         //当前的物料品牌
         string CurrentBrand = "";
 
+        string NrCode = "";
         string Prefix = "";
         string Suffix = "";
         int MaxNum = 0;
@@ -404,7 +405,7 @@ namespace UAS_LabelMachine
             }
             catch (Exception)
             {
-                dh.UpdateByCondition("RULEMAXNUM", "rmn_maxnumber='" + (MaxNum + 1) + "'", "rmn_nrcode='" + (pi_cardcode.Text == "" ? "Default" : pi_cardcode.Text) + "' and rmn_prefix='" + Prefix + "'");
+                dh.UpdateByCondition("RULEMAXNUM", "rmn_maxnumber='" + (MaxNum + 1) + "'", "rmn_nrcode='" + (NrCode == "" ? "Default" : NrCode) + "' and rmn_prefix='" + Prefix + "'");
                 CollectInputData();
                 return;
             }
@@ -601,7 +602,7 @@ namespace UAS_LabelMachine
                 LoadCheck = true;
                 Input.Clear();
                 sql.Clear();
-                sql.Append("select pi_id,pi_cardcode,pi_combine_user,pi_title,to_char(pi_date,'yyyymmdd')pi_date,nvl(pi_combine_user,0)pi_combine_user from prodinout where pi_inoutno='" + pi_inoutno.Text + "' /*and pi_invostatuscode='AUDITED'*/");
+                sql.Append("select pi_id,pi_cardcode,pi_combine_user,pi_title,to_char(pi_date,'yyyymmdd')pi_date,nvl(pi_combine_user,0)pi_combine_user from prodinout where pi_inoutno='" + pi_inoutno.Text + "' and pi_invostatuscode='AUDITED'");
                 dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
                 if (dt.Rows.Count > 0)
                 {
@@ -1596,22 +1597,70 @@ namespace UAS_LabelMachine
             //获取编码规则
             Prefix = "";
             Suffix = "";
+            NrCode = "";
             MaxNum = 0;
             SerialNumLength = 0;
             Radix = 0;
-            DataTable Nr = (DataTable)dh.ExecuteSql("select nrd_detno,nrd_name,nrd_type,nrd_radix,nrd_sql,nrd_length from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_custcode='" + pi_cardcode.Text + "'  order by nrd_detno", "select");
+            DataTable Nr = (DataTable)dh.ExecuteSql("select nr_resettype,nr_sharerule,nr_code,nrd_detno,nrd_name,nrd_type,nrd_radix,nrd_sql,nrd_length from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_custcode='" + pi_cardcode.Text + "'  order by nrd_detno", "select");
             //如果没有则取公共规则
             if (Nr.Rows.Count == 0)
-                Nr = (DataTable)dh.ExecuteSql("select nrd_detno,nrd_name,nrd_radix,nrd_type,nrd_sql,nrd_length from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_custcode is null  and nr_isdefault <> 0 order by nrd_detno", "select");
+                Nr = (DataTable)dh.ExecuteSql("select nr_resettype,nr_sharerule,nr_code,nrd_detno,nrd_name,nrd_radix,nrd_type,nrd_sql,nrd_length from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_custcode is null  and nr_isdefault <> 0 order by nrd_detno", "select");
             //用于过滤参数的正则表达式
+            string ReSetType = "";
+            if (Nr.Rows.Count > 0)
+            {
+                string ShareRule = Nr.Rows[0]["nr_sharerule"].ToString();
+                DataTable dt1 = (DataTable)dh.ExecuteSql("select nr_resettype,nr_sharerule,nr_code,nrd_detno,nrd_name,nrd_radix,nrd_type,nrd_sql,nrd_length from NoRuleDetail left join norule on nrd_nrid=nr_id where nr_code='" + ShareRule + "' order by nrd_detno", "select");
+                if (dt1.Rows.Count > 0)
+                {
+                    Nr = dt1;
+                }
+                else
+                {
+                    if (ShareRule != "")
+                    {
+                        MessageBox.Show("共享规则" + ShareRule + "不存在");
+                        return;
+                    }
+                }
+            }
+            if (Nr.Rows.Count > 0)
+            {
+                switch (Nr.Rows[0]["nr_resettype"].ToString())
+                {
+                    case "Year":
+                        sql.Clear();
+                        sql.Append("to_char(sysdate,'yyyy')");
+                        break;
+                    case "Month":
+                        sql.Clear();
+                        sql.Append("to_char(sysdate,'yyyyMM')");
+                        break;
+                    case "Week":
+                        sql.Clear();
+                        sql.Append("to_char(sysdate,'yyyyiw')");
+                        break;
+                    case "Day":
+                        sql.Clear();
+                        sql.Append("to_char(sysdate,'yyyyMMdd')");
+                        break;
+                    case "":
+                        sql.Clear();
+                        sql.Append("' '");
+                        break;
+                    default:
+                        break;
+                }
+                ReSetType = dh.getFieldDataByCondition("dual", sql.ToString(), "1=1").ToString();
+            }
             Regex match = new Regex("{\\w+}");
             //用于存放每一项的明细的数据
             string[] NrData = new string[Nr.Rows.Count];
             //流水长度
             Dictionary<int, string> NrDic = new Dictionary<int, string>();
-            Prefix = "";
             for (int m = 0; m < Nr.Rows.Count; m++)
             {
+                NrCode = Nr.Rows[m]["nr_code"].ToString();
                 switch (Nr.Rows[m]["nrd_type"].ToString())
                 {
                     //常量直接进行拼接
@@ -1645,17 +1694,26 @@ namespace UAS_LabelMachine
                         break;
                     //流水需要通过MaxNumber去取
                     case "流水":
-                        string maxnum = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + (pi_cardcode.Text == "" ? "Default" : pi_cardcode.Text) + "' and rmn_prefix='" + Prefix + "'").ToString();
+                        string maxnum = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + (NrCode == "" ? "Default" : NrCode) + "' and rmn_prefix='" + Prefix + "' and nvl(rmn_type,' ')='" + ReSetType + "'").ToString();
                         //设置当前流水
                         if (maxnum == "")
                         {
-                            dh.ExecuteSql("insert into RuleMaxNum(rmn_id,rmn_nrcode,rmn_prefix,rmn_maxnumber) values(RuleMaxNum_seq.nextval,'" + (pi_cardcode.Text == "" ? "Default" : pi_cardcode.Text) + "','" + Prefix + "','" + Count + "')", "insert");
-                            MaxNum = 1;
+                            maxnum = dh.getFieldDataByCondition("RuleMaxNum", "rmn_maxnumber", "rmn_nrcode='" + (NrCode == "" ? "Default" : NrCode) + "' and nvl(rmn_type,' ')='" + ReSetType + "'").ToString();
+                            if (maxnum != "")
+                            {
+                                Count = int.Parse(maxnum) + Count;
+                            }
+                            else
+                            {
+                                maxnum = "1";
+                            }
+                            dh.ExecuteSql("insert into RuleMaxNum(rmn_id,rmn_nrcode,rmn_prefix,rmn_maxnumber,rmn_type) values(RuleMaxNum_seq.nextval,'" + (NrCode == "" ? "Default" : NrCode) + "','" + Prefix + "','" + Count + "','" + ReSetType + "')", "insert");
+                            MaxNum = int.Parse(maxnum);
                         }
                         else
                         {
                             MaxNum = int.Parse(maxnum);
-                            dh.UpdateByCondition("RULEMAXNUM", "rmn_maxnumber='" + (MaxNum + Count) + "'", "rmn_nrcode='" + (pi_cardcode.Text == "" ? "Default" : pi_cardcode.Text) + "' and rmn_prefix='" + Prefix + "'");
+                            dh.UpdateByCondition("RULEMAXNUM", "rmn_maxnumber='" + (MaxNum + Count) + "'", "rmn_nrcode='" + (NrCode == "" ? "Default" : NrCode) + "' and rmn_prefix='" + Prefix + "' and rmn_type='" + ReSetType + "'");
                         }
                         SerialNumLength = int.Parse(Nr.Rows[m]["nrd_length"].ToString());
                         Radix = int.Parse(Nr.Rows[m]["nrd_radix"].ToString());

+ 4 - 3
UAS-出货标签管理(贸易版)/UAS_出货标签管理.cs

@@ -2606,6 +2606,7 @@ namespace UAS_LabelMachine
                     string 尺寸 = dt.Rows[i]["尺寸"].ToString().Trim();
                     string 重量 = dt.Rows[i]["重量"].ToString().Trim();
                     string 名称 = dt.Rows[i]["产品名称"].ToString().Trim();
+                    string 订单编号 = dt.Rows[i]["订单编号"].ToString().Trim();
                     if (pr_spec.Trim() == "")
                     {
                         break;
@@ -2692,7 +2693,7 @@ namespace UAS_LabelMachine
                                 pib_inqty.Add(zxbzs);
                                 datecode.Add(DateCode);
                                 lotno.Add(LotNo);
-                                pdordercode.Add(pd_ordercode);
+                                pdordercode.Add(订单编号==""? pd_ordercode: 订单编号);
                                 pdorderdetno.Add(pd_orderdetno);
                                 pdpdno.Add(pd_pdno);
                                 pdid.Add(pd_id);
@@ -2710,7 +2711,7 @@ namespace UAS_LabelMachine
                             piboutboxcode2.Add(pib_outboxcode2);
                             datecode.Add(DateCode);
                             lotno.Add(LotNo);
-                            pdordercode.Add(pd_ordercode);
+                            pdordercode.Add(订单编号 == "" ? pd_ordercode : 订单编号);
                             pdorderdetno.Add(pd_orderdetno);
                             pdpdno.Add(pd_pdno);
                             pdid.Add(pd_id);
@@ -2733,7 +2734,7 @@ namespace UAS_LabelMachine
                                 piboutboxcode2.Add(pib_outboxcode2);
                                 datecode.Add(DateCode);
                                 lotno.Add(LotNo);
-                                pdordercode.Add(pd_ordercode);
+                                pdordercode.Add(订单编号 == "" ? pd_ordercode : 订单编号);
                                 pdorderdetno.Add(pd_orderdetno);
                                 pdpdno.Add(pd_pdno);
                                 pdid.Add(pd_id);

+ 22 - 22
UAS-出货标签管理/PublicMethod/DataHelper.cs

@@ -11,17 +11,17 @@ namespace UAS_LabelMachine
     public class DataHelper
     {
 
-        ////富为外网地址
-        //private readonly string ConnectionStrings = "Data Source=richwellgroup.com.cn/orcl;User ID=DATACENTER;PassWord=select!#%*(";
-        //private readonly string InnerConnectionStrings = "Data Source=richwellgroup.com.cn/orcl;User ID=DATACENTER;PassWord=select!#%*(";
-        ////富为ERP地址
-        //public static readonly string ERPAddesss = "http://richwellgroup.com.cn:8099/ERP/";
-        ////富为FTP
-        //public static readonly string FTPAdress = "ftp://richwellgroup.com.cn|printuser|printuser";
-        ////Oracle端口
-        //public static readonly string OraclePort = "1521";
-        ////需要显示的账套
-        //public static readonly string Masters = "JDTSY,FW_JDT,N_DATACENTER,FY_TEST,JD_TEST,XY_TEST,FW_TEST,DATACENTER,FW,XY,FY";
+        //富为外网地址
+        private readonly string ConnectionStrings = "Data Source=richwellgroup.com.cn/orcl;User ID=DATACENTER;PassWord=select!#%*(";
+        private readonly string InnerConnectionStrings = "Data Source=richwellgroup.com.cn/orcl;User ID=DATACENTER;PassWord=select!#%*(";
+        //富为ERP地址
+        public static readonly string ERPAddesss = "http://richwellgroup.com.cn:8099/ERP/";
+        //富为FTP
+        public static readonly string FTPAdress = "ftp://richwellgroup.com.cn|printuser|printuser";
+        //Oracle端口
+        public static readonly string OraclePort = "1521";
+        //需要显示的账套
+        public static readonly string Masters = "JDTSY,FW_JDT,N_DATACENTER,FY_TEST,JD_TEST,XY_TEST,FW_TEST,DATACENTER,FW,XY,FY";
 
         ////高登地址
         //private readonly string ConnectionStrings = "Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=DATACENTER;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=183.238.39.179)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));";
@@ -35,19 +35,19 @@ namespace UAS_LabelMachine
         ////需要显示的账套
         //public static readonly string Masters = "GOLDEN";
 
-        ////怡海能达外网地址
-        private readonly string ConnectionStrings = "Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=DATACENTER;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=sz.hi-mantech.com)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));";
+        //////怡海能达外网地址
+        //private readonly string ConnectionStrings = "Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=DATACENTER;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=sz.hi-mantech.com)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));";
 
-        private readonly string InnerConnectionStrings = "Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=DATACENTER;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.200)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));";
+        //private readonly string InnerConnectionStrings = "Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=DATACENTER;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.200)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));";
 
-        //怡海能达ERP地址
-        public static readonly string ERPAddesss = "http://sz.hi-mantech.com:8099/ERP/";
-        //怡海能达FTP
-        public static readonly string FTPAdress = "ftp://sz.hi-mantech.com:46688|yhndftp|Stga28ytG8";
-        //Oracle端口
-        public static readonly string OraclePort = "1521";
-        //需要显示的账套
-        public static readonly string Masters = "YHND_SZ,YHND_HK,DATACENTER,YITOA_ZX,T_YHND_HK";
+        ////怡海能达ERP地址
+        //public static readonly string ERPAddesss = "http://sz.hi-mantech.com:8099/ERP/";
+        ////怡海能达FTP
+        //public static readonly string FTPAdress = "ftp://sz.hi-mantech.com:46688|yhndftp|Stga28ytG8";
+        ////Oracle端口
+        //public static readonly string OraclePort = "1521";
+        ////需要显示的账套
+        //public static readonly string Masters = "YHND_SZ,YHND_HK,DATACENTER,YITOA_ZX,T_YHND_HK";
 
         ////华商龙外网地址
         //private readonly string ConnectionStrings = "Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=YITOA_DATACENTER;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=218.18.115.198)(PORT=1523)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));";

+ 0 - 0
UAS-出货标签管理(吉利通)/T}DP5R4R40~SARB9DUHVTSC.png → UAS-出货标签管理/T}DP5R4R40~SARB9DUHVTSC.png


+ 2 - 2
UAS-出货标签管理/UAS_出货标签管理.cs

@@ -2049,7 +2049,7 @@ namespace UAS_LabelMachine
                 sql.Append("and pd_prodcode=pib_prodcode left join product on pr_code=pib_prodcode left join (select pd_prodcode ");
                 sql.Append("prcode,pd_pocode pocode,max(pd_detno) pd_detno from  prodinout left join packing on packing.pi_code=prodinout.pi_packingcode ");
                 sql.Append("left join packingdetail on packing.pi_id=pd_piid where prodinout.pi_id='" + PI_ID + "' group by pd_prodcode,pd_pocode");
-                sql.Append(")A on pd_pocode=A.pocode and pd_prodcode=A.PRCODE where pd_piid='" + PI_ID + "' order by pr_code,pd_pdno,a.pd_detno,pib_id");
+                sql.Append(")A on pd_pocode=A.pocode and pd_prodcode=A.PRCODE where pd_piid='" + PI_ID + "' order by a.pd_detno,pib_id");
                 GetOutBoxCode.Visible = true;
             }
             else
@@ -2301,7 +2301,7 @@ namespace UAS_LabelMachine
                 int Current = 0;
                 sql.Clear();
                 sql.Append("select pr_qtyperplace,pd_qty,packingdetail.pd_cartonno,pr_zxbzs,packingdetail.pd_cartons from packingdetail left join packing on pd_piid=pi_id left join prodinout on ");
-                sql.Append("pi_packingcode=packing.pi_code left join product on pd_prodcode=pr_code where pi_inoutno='" + pi_inoutno.Text + "' order by pr_code,pd_detno");
+                sql.Append("pi_packingcode=packing.pi_code left join product on pd_prodcode=pr_code where pi_inoutno='" + pi_inoutno.Text + "' order by pd_detno");
                 dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
                 if (dt.Rows.Count > 0)
                 {