From 39eb46c41aca84e268a059a318ee095a06c5eae3 Mon Sep 17 00:00:00 2001 From: "songnan.zhang" Date: Sun, 9 Oct 2022 09:54:48 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APP/QMAPP.Web/App_Data/MainPower.xml | 5 +++++ APP/QMAPP.Web/App_Data/Menu.xml | 3 ++- APP/QMAPP.Web/Web.config | 6 +++--- APPMD/QMAPP.MD.Web/Web.config | 9 +++++---- .../LineQTY/LineDWQTYCountDAL.cs | 9 ++++++--- .../LINEQTY/LineDayQTYCount.cs | 2 ++ .../Models/LineQTY/LineDWQTYModel.cs | 11 ++++++++++- .../QMAPP.MESReport.Web.csproj | 10 ++++++++++ .../ec10e4ca-e6a1-4ce0-a5a2-dceeb4fd79a7.xls | Bin 0 -> 16896 bytes .../QMAPP.FJC.BLL/Operation/MainOperationBLL.cs | 1 + APPQ5/QMAPP.FJC.Entity/Operation/SignInfo.cs | 4 ++-- APPQ5/QMAPP.FJC.Web/App_Data/Power.xml | 5 +++++ APPQ5/QMAPP.FJC.Web/Web.config | 6 +++--- 13 files changed, 54 insertions(+), 17 deletions(-) create mode 100644 APPMESReport/QMAPP.MESReport.Web/Temp/ec10e4ca-e6a1-4ce0-a5a2-dceeb4fd79a7.xls diff --git a/APP/QMAPP.Web/App_Data/MainPower.xml b/APP/QMAPP.Web/App_Data/MainPower.xml index 5ff8ee0..6fae65e 100644 --- a/APP/QMAPP.Web/App_Data/MainPower.xml +++ b/APP/QMAPP.Web/App_Data/MainPower.xml @@ -278,6 +278,11 @@ + + + + + diff --git a/APP/QMAPP.Web/App_Data/Menu.xml b/APP/QMAPP.Web/App_Data/Menu.xml index dca7b2c..d2795e0 100644 --- a/APP/QMAPP.Web/App_Data/Menu.xml +++ b/APP/QMAPP.Web/App_Data/Menu.xml @@ -453,7 +453,8 @@ 查询 - 导出 + + + - + --> - + diff --git a/APPMD/QMAPP.MD.Web/Web.config b/APPMD/QMAPP.MD.Web/Web.config index 24b8e5c..dfba128 100644 --- a/APPMD/QMAPP.MD.Web/Web.config +++ b/APPMD/QMAPP.MD.Web/Web.config @@ -31,16 +31,17 @@ - + + - - + + + --> diff --git a/APPMESReport/QMAPP.MESReport.DAL/LineQTY/LineDWQTYCountDAL.cs b/APPMESReport/QMAPP.MESReport.DAL/LineQTY/LineDWQTYCountDAL.cs index d8e4c2c..fca2410 100644 --- a/APPMESReport/QMAPP.MESReport.DAL/LineQTY/LineDWQTYCountDAL.cs +++ b/APPMESReport/QMAPP.MESReport.DAL/LineQTY/LineDWQTYCountDAL.cs @@ -109,6 +109,7 @@ namespace QMAPP.MESReport.DAL.LineQTY ,tsa.[EQUIPMENT_CODE] ,tsa.[WORKCELL_CODE] ,tsa.[MATRIAL_CODE] AS [MATERIAL_CODE] + ,ma.MATERIAL_NAME ,tsa.[SHIFT_CODE] ,CONVERT(VARCHAR(10),tsa.[STATIS_DATE],120) as STATIS_DATE ,tsa.[QTY] @@ -126,7 +127,9 @@ namespace QMAPP.MESReport.DAL.LineQTY sqlBuilder.AppendLine("on tmw.WORKCELL_CODE =tsa.WORKCELL_CODE "); sqlBuilder.AppendLine("inner join T_MD_PROCESS_ROUTE_WORKCELL_SEQ tmprw "); sqlBuilder.AppendLine("on tmprw.WORKCELL_CODE =tsa.WORKCELL_CODE "); - + sqlBuilder.AppendLine("inner join T_MD_MATERIAL ma "); + sqlBuilder.AppendLine("on ma.MATERIAL_CODE =tsa.MATRIAL_CODE "); + if (string.IsNullOrEmpty(condition.START_DATE) == false) { whereBuilder.Append(" AND STATIS_DATE >= @START_DATE "); @@ -189,14 +192,14 @@ namespace QMAPP.MESReport.DAL.LineQTY try { //构成查询语句 - sqlBuilder.Append("select * from T_SA_WORKCELLQTYCOUNT"); + sqlBuilder.Append("select tsa.*,ma.MATERIAL_NAME from T_SA_WORKCELLQTYCOUNT as tsa inner join T_MD_MATERIAL ma on ma.MATERIAL_CODE = tsa.MATRIAL_CODE "); if (whereBuilder.Length > 0) { sqlBuilder.Append(whereBuilder.ToString()); } - sqlBuilder.Append(" ORDER BY STATIS_DATE DESC "); + sqlBuilder.Append(" ORDER BY tsa.STATIS_DATE DESC "); using (IDataSession session = AppDataFactory.CreateMainSession()) { diff --git a/APPMESReport/QMAPP.MESReport.Entity/LINEQTY/LineDayQTYCount.cs b/APPMESReport/QMAPP.MESReport.Entity/LINEQTY/LineDayQTYCount.cs index 83f90b5..fd4b9cd 100644 --- a/APPMESReport/QMAPP.MESReport.Entity/LINEQTY/LineDayQTYCount.cs +++ b/APPMESReport/QMAPP.MESReport.Entity/LINEQTY/LineDayQTYCount.cs @@ -58,5 +58,7 @@ namespace QMAPP.MESReport.Entity.LineQTY public string WORKCENTER_NAME { get; set; } + public string MATERIAL_NAME { get; set; } + } } diff --git a/APPMESReport/QMAPP.MESReport.Web/Models/LineQTY/LineDWQTYModel.cs b/APPMESReport/QMAPP.MESReport.Web/Models/LineQTY/LineDWQTYModel.cs index b783cbf..85a7d68 100644 --- a/APPMESReport/QMAPP.MESReport.Web/Models/LineQTY/LineDWQTYModel.cs +++ b/APPMESReport/QMAPP.MESReport.Web/Models/LineQTY/LineDWQTYModel.cs @@ -121,9 +121,18 @@ namespace QMAPP.MESReport.Web.Models.LineQTY [Description("物料号")] [HTMLInput(UpdateRead = false, required = false, MaxLength = 50, Width = 120)] [InputType(inputType.text)] - [DGColumn(frozenColumns = false, Sortable = true, Width = 150, DataAlign = DataAlign.center)] + [DGColumn(frozenColumns = false, Sortable = true, Width = 200, DataAlign = DataAlign.center)] public string MATERIAL_CODE { get; set; } + /// + ///物料名称 + /// + [Description("物料名称")] + [HTMLInput(UpdateRead = false, required = false, MaxLength = 50, Width = 120)] + [InputType(inputType.text)] + [DGColumn(frozenColumns = false, Sortable = true, Width = 250, DataAlign = DataAlign.center)] + public string MATERIAL_NAME { get; set; } + /// ///工序合格数 /// diff --git a/APPMESReport/QMAPP.MESReport.Web/QMAPP.MESReport.Web.csproj b/APPMESReport/QMAPP.MESReport.Web/QMAPP.MESReport.Web.csproj index a7febb8..dc7f0fb 100644 --- a/APPMESReport/QMAPP.MESReport.Web/QMAPP.MESReport.Web.csproj +++ b/APPMESReport/QMAPP.MESReport.Web/QMAPP.MESReport.Web.csproj @@ -25,6 +25,12 @@ SAK SAK SAK + + + + + + true @@ -46,6 +52,9 @@ AllRules.ruleset + + ..\..\DLL\EmitMapper.dll + False ..\..\DLL\log4net.dll @@ -540,6 +549,7 @@ PreserveNewest + diff --git a/APPMESReport/QMAPP.MESReport.Web/Temp/ec10e4ca-e6a1-4ce0-a5a2-dceeb4fd79a7.xls b/APPMESReport/QMAPP.MESReport.Web/Temp/ec10e4ca-e6a1-4ce0-a5a2-dceeb4fd79a7.xls new file mode 100644 index 0000000000000000000000000000000000000000..411274c75f79101fb302a4d9864196553677bf0a GIT binary patch literal 16896 zcmeI(Yiwj?83*up+G#u8US@i~x6}J=+D@nUd#CM!t890(yNDoIc4cKZTz0c8MiO-^ zN+baz1PyA4h6G}a38E(OK?7n!;s=ZdLx_Hm#RTFP6A*7iq(1-W%scP-pPnU)q7h+s z=W?EN`<>^#ocElW{_+=9=O6rj^NS|%STKd=&7D$H?2AX_bE})mrTkFdFPZ}LX!I$0HRgBnyxN>L6~<(*yXoZ3CvQ1> z=IGf|XOjQn$C?_BMqpUd*9Rn0X_{13t*B7Yo)wK%;UPwZ!|J)>den%`JHq3pi0Z5$Yjr)JbL3hIHNtpT#q3{2C*4{)Nh?m8lo|8w$YZ;G zfn#^Kvf_5QWQL6tqko5XRo^~yYunwr4V*W%T9SX>k#yuAKS?5vLe}`7?2NaLqaKDW zf1xN9;SS!bwu|+> zdOND`HQOcnZnllS*KQZ>T&w-S9YS9#g)$oHxb@qcFCBmQ*xe>7H6>ymiRgQ@L7G;s zdoXX9pBDZ=iXZ)q%zfdr58n0C@s8`IWBJ1^oi|A2iMvX!tT^(@ZMl#2=OUkyk1t*G z<&Pm+Xd)-ieEs-e4@(Rm5G(R#$BrzXIDNc0x9p}j>6`b(TWXBSq%)b3^xQ~hE}2fx z>wl4D1+&MPje}QxVDILK4s2dpY9g;4-hb%#Uw!DcH(u^v?+agh`p$7<*NXd1cGe-2G?$ruX4CBT4)5UJ%@6L&9?0xEg1?{J zj}Cll*KuQp?$#c!-L{97bu!-J9m*dbm@av|yi}BpgO_AC*Y;&Mk(-P^Z8Q0_`J>bM zsBYJ$jkha~HF-{J8iI@X)1axh#}c0U;PIfi-0_63Bl~^r@V~HMKMnav>xQh)9;1IL z#n?TCVPCRz~h-{gW~rT9kd2ml*S`ynjXBuad*NGA5(lLTzfs8$l(^k1C!ic}mv7 z2&$|gKTeh!>pi|H!{wJV#%xX-8BJmQQ7*67nYezg(osl4EN^`0)o1q~JGio?@ga>5 z>+9_r*_LJOqgQ%38MBzr$((2eXFC~Pn9u9dU(nYFrB9B?UeJq0B$A4x4%o#0D~5~(*OlVl6+<}&my_b( z6+>wRm&0i!7{l=dV`U*R)WhI%GWy;XL#~3$#Y1AqU~svrkXUs{Od8X!by3TL+e57j z#_B_24I#0{kXTblOh(4L_8~*zT`{!0prtJ&hO5`$a=3!^$NnKxcp$IFcvBIXLjCim z3bg&&sY01To%7~JWeT;;n<|ni)H83YSf)_Jyr~kILf!JFVlstVCIu;6&TDOga0yeU}hdT4LXg8s}|&`bE2 z^joB-qIrHxf#f7^P&=`|0?CQ9poemn0?CQn19BdhYd>#28CuDd%}XI!&|kT{6q2P- z%E!M=zok$uXb+GTlBJL=C~;?z(Vfo{B}-H-XiwNCdQP|ZC|RPK7ql{ON#q6X%bW7& zB}x|5H)oL{q|Z`BmLj#FePWwMWI-S9WJPL0tM!)jTZ$+zMPxy3cNQ7l`Ygp{DJDxX zS&GSmvq@a;33!%bEhC$kVzLyI1#Qh)O2|?|mJ+p~@4?ZQkfnqyC2B#BK z{AGl5p35g%y0hT=!qwdvSz=^~ktIf!m|D>5Vec``i?zfkFEO&9pK%r$L;EbHWGSUG zDkV!PS#S?AuJ;OIDOC&lS#Qdpmr}Bz=XDnJeJ(HP8(ap_9^)pN+a_9)f1bbY?omr; zeo24bMV?&$0;$^y`Vwc6!K6&t{-um8Woqfl?V*e;Wt5jPDx)&Zi|u#I$WlfY^uNv` zml8e;MwCunPL^`Al#``gEw=8Klck(2;SV#f@%WT_=fty=7up_bZFEm>;Gf=oI~9a-wg zQb&2IBTF4w>eOP-0d-`lBTF4wP>#-0ua^E?cI(MfuNK?a)sv;3EcI%!eO*1(mwK|) zlLa|L#sMzS=LrIG4OBUu{B(x?_( zp<$HJNM+PWmPWE*BXnJmp} zvHeRkS@4aKQ#Y$+C}(L_iybpGlckv~IBPgd3t3vo(xR5(+#XuU(n6LNwWRV(`ump_ zvb2x|<4|X5B}*$=TGe9Djjd#9B}=PX?0C18>TWApTFHVnoTZH{ZDeUvOEPz~ZDeU9 zOPgA3zuQLjrHw3YWI=6rmUgw+{-vEP?P{_8OFLQG$;V z#9W(7QkzOrn@Un&lcYA4q&Ah*Hic64_TcY>lhme?`8I_mQSY6llPsNN>7@4ENtRBs zbgIRU@j9t}cao)(ENE}ef^RF_c(aQvU23uC$u6>Vk)=y5sM$E$F6#HX$kIg?v~y?a zCQCP2y47O);BK;XlcifNwh!)B3)&ZC-DK$|3;Gvl=^;xGS$e3x^pK^8EIn#LOUB-N zsEm5Z(nA*XYtGV3mR_>-s>O~UddbpDmR_}>2Z5!R$_PJUapTQivY=j;Kp43K3&E%yHE0M(ZPvJ8*~=PhR$B+DRK2GwH6c!OjaB+DS> zWsveRNR~me;C$&ULuA3Xt8R2Xq?V*Ck6aItWr!?8YC$jRE$Q!fhsZKS7PO1F!PyY& z4U+}m@jA;emC-O+hRHIl7JIEUta-6xykW8olLg}gXGxJIMV1uhB}JALSyF1TW8V~6 zQe;Vy1!pj486nFESw<)?BV-vN%ZOU+b=wG8M#wTk7MwMlWt1$VWEmyPC|O3yGO8AP zZX6}cC|O3yg7bv4jFDxGEMrtgV`Ld4%a~g1m|=`8V`Ld43(gwOk|s-$&dv-i?d9SWr8ddYO($91X(7?GC`IJvP_U= zf-K0LvrLj@k}Q*CnIy|3StiwD&yAC0nIy|3Sx`F8GDVgtvP`MPj_an#GDVgtwb*gp z6j`RoGDQ|#&p698S*FP{P4#7(EYoC}ro2p(WtuG0WWjZmv&@iXhAcCbml?9mkYz?K z_MYYpS!T#GLl#`W#SOB9b~LLNd;epWEVEQ!X2~*3mRYsfb~LLNdv2U1%Pd)N-RLZH zWSJw&oLZ7O^&DB|$TFuEJ7$<8%N$we$b#!tXPKumnkUOV)t7m)%#&rF@-j~r{2tDY zz30h->tttHAj<+-@b@Ee{2o|KbAc=iWLZ#)ZPN>CvHk7>Sr*8G>vLyWq%vA0%c5Fr zn_eW#B3TyIV(acA((6|$_5WkoHvO|Ot;g)A$1 z%R6}=aaE2fcwa3W5?c$2t%tttCc%eq?ZwcNT|?05X@WLYN*>X5T+ zkY$4`8)~tA;RabY$g-gpJHFYVyljwVBX4LGJV{+%^R`PKE!@_xqLCJDdzhkTzM zvBz9+k*lHa-p-Z#6|(m;<_2?29XDL$7TjX;OO5>g;c#=_`qRT0Xv(8V{z&CkbCdi# zs>i-hvhWEtA#&E7l+QPNi-x|+owW!K1-1F@?Egq^Yen)6*D3RHH5}IxczYfh8Nco0 zM>)Nc+y9%AvFM)NC5K}=f5*4}`1*kpiSOPUGsFEq{59?X;I1_0;ny<>d7^j1uS_?k z%^#4z(80sjhl_c?(EcGRc<$%VJuupmxbJ@1f9mx|(90DCVwXwG_8Je#=cqjKz}-+d z&&m_q`m{VzM)%~V5kuE - ///停工、复工时间 + ///停工时间 /// - [DBColumn(ColumnName = "SIGNDATE", DataType = DbType.DateTime2)] + [DBColumn(ColumnName = "SIGNDATEBEGIN", DataType = DbType.DateTime2)] public string SIGNDATE { get; set; } } } diff --git a/APPQ5/QMAPP.FJC.Web/App_Data/Power.xml b/APPQ5/QMAPP.FJC.Web/App_Data/Power.xml index 2a6e5d7..e7b85a9 100644 --- a/APPQ5/QMAPP.FJC.Web/App_Data/Power.xml +++ b/APPQ5/QMAPP.FJC.Web/App_Data/Power.xml @@ -279,6 +279,11 @@ + + + + + diff --git a/APPQ5/QMAPP.FJC.Web/Web.config b/APPQ5/QMAPP.FJC.Web/Web.config index 6d0a56a..691353a 100644 --- a/APPQ5/QMAPP.FJC.Web/Web.config +++ b/APPQ5/QMAPP.FJC.Web/Web.config @@ -36,12 +36,12 @@ - + +--> - + From c1abf52ecf34e1509641c42cf601cf0f0c6ad981 Mon Sep 17 00:00:00 2001 From: "songnan.zhang" Date: Mon, 24 Oct 2022 10:05:19 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataValidators/TimeValidator.cs | 2 +- .../Models/CheckTime/ProductTimeModel.cs | 16 ++++++++++++++ .../Views/ProductTime/ProductTimeEdit.aspx | 17 ++++++++++++++- .../Forms/TianJin/TJPrintPlanLabel.cs | 21 +++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/APPQ5/QMAPP.FJC.TRACING/DataValidators/TimeValidator.cs b/APPQ5/QMAPP.FJC.TRACING/DataValidators/TimeValidator.cs index c3a14cd..7f52cb4 100644 --- a/APPQ5/QMAPP.FJC.TRACING/DataValidators/TimeValidator.cs +++ b/APPQ5/QMAPP.FJC.TRACING/DataValidators/TimeValidator.cs @@ -34,7 +34,7 @@ namespace QMAPP.FJC.TRACING.DataValidators DateTime serviceTime = dal.GetServiceDateTime(); TimeSpan ts = serviceTime.Subtract(preStatTime); - return new ValidateResult(false, $"未达到{timeCheck.Operator}{(Convert.ToDecimal(timeCheck.Check_Value) / 3600).ToString("#0.0")}小时验证标准"); + return new ValidateResult(false, $"未达到{timeCheck.Operator}{(Convert.ToDecimal(timeCheck.Check_Value) / 3600).ToString("#0.0")}小时验证标准,条码时间{(Convert.ToDecimal(ts.TotalSeconds) / 3600).ToString("#0.0")}小时"); } diff --git a/APPQ5/QMAPP.FJC.Web/Models/CheckTime/ProductTimeModel.cs b/APPQ5/QMAPP.FJC.Web/Models/CheckTime/ProductTimeModel.cs index 00b4575..9355076 100644 --- a/APPQ5/QMAPP.FJC.Web/Models/CheckTime/ProductTimeModel.cs +++ b/APPQ5/QMAPP.FJC.Web/Models/CheckTime/ProductTimeModel.cs @@ -162,7 +162,23 @@ namespace QMAPP.FJC.Web.Models.CheckTime [DGColumn(Sortable = true, Width = 150, DataAlign = DataAlign.center, FormatDate = "yyyy-MM-dd hh:mm:ss")] public DateTime UPDATEDATE { get; set; } + /// + /// 采集点 + /// + [Description("采集点")] + [HTMLInput(UpdateRead = true, required = false, MaxLength = 200)] + [InputType(inputType.text)] + [DGColumn(frozenColumns = true, Sortable = true, Width = 100, DataAlign = DataAlign.center)] + public string DAI_Code { get; set; } + /// + /// 验证值2 + /// + [Description("验证值2")] + [HTMLInput(UpdateRead = false, required = false, MaxLength = 200)] + [InputType(inputType.text)] + [DGColumn(frozenColumns = true, Sortable = true, Width = 100, DataAlign = DataAlign.center)] + public string Check_ValueTo { get; set; } diff --git a/APPQ5/QMAPP.FJC.Web/Views/ProductTime/ProductTimeEdit.aspx b/APPQ5/QMAPP.FJC.Web/Views/ProductTime/ProductTimeEdit.aspx index 9397360..0d27d2c 100644 --- a/APPQ5/QMAPP.FJC.Web/Views/ProductTime/ProductTimeEdit.aspx +++ b/APPQ5/QMAPP.FJC.Web/Views/ProductTime/ProductTimeEdit.aspx @@ -75,6 +75,14 @@ <%=Html.QC(p => p.Check_Value)%> + + + + <%=Html.QV(p=>p.Check_ValueTo) %> + + + <%=Html.QC(p => p.Check_ValueTo)%> + @@ -108,7 +116,14 @@ <%=Html.QC(p => p.Remark)%> - + + + <%=Html.QV(p=>p.DAI_Code) %> + + + <%=Html.QC(p => p.DAI_Code)%> + + diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs index 5bfdcc9..8849d78 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs @@ -477,6 +477,16 @@ namespace QMAPP.WinForm.Forms.TianJin var orders = new List(); orders.Add(order1); + if (dgvPlan.Rows.Count > 1) + { + var orders2 = new List(); + var order2 = (FJC.Entity.ProductionPlan.WorkOrder)dgvPlan.Rows[1].DataBoundItem; + orders2.Add(order2); + if (orders[0].MATERIAL_NAME.Substring(0, 7) != orders2[0].MATERIAL_NAME.Substring(0, 7)) + { + MessageBox.Show("计划工单即将变换配置,请注意!"); + } + } List labels = new List(); @@ -647,6 +657,17 @@ namespace QMAPP.WinForm.Forms.TianJin var order1 = (FJC.Entity.ProductionPlan.WorkOrder)dgvPlan.Rows[i].DataBoundItem; orders.Add(order1); + if ((i+1)<= count) + { + var orders2 = new List(); + var order2 = (FJC.Entity.ProductionPlan.WorkOrder)dgvPlan.Rows[i + 1].DataBoundItem; + orders2.Add(order2); + if (orders[0].MATERIAL_NAME.Substring(0, 7) != orders2[0].MATERIAL_NAME.Substring(0, 7)) + { + MessageBox.Show("计划工单即将变换配置,请注意!"); + } + } + toolStripButton1.Enabled = false; List labels = new List(); From 230e19deb5f0112f754641a6569feed70045a4cd Mon Sep 17 00:00:00 2001 From: "songnan.zhang" Date: Tue, 25 Oct 2022 08:39:14 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs index 8849d78..3a55b0a 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs @@ -657,7 +657,7 @@ namespace QMAPP.WinForm.Forms.TianJin var order1 = (FJC.Entity.ProductionPlan.WorkOrder)dgvPlan.Rows[i].DataBoundItem; orders.Add(order1); - if ((i+1)<= count) + if ((i+1)< count) { var orders2 = new List(); var order2 = (FJC.Entity.ProductionPlan.WorkOrder)dgvPlan.Rows[i + 1].DataBoundItem; @@ -699,18 +699,18 @@ namespace QMAPP.WinForm.Forms.TianJin } labels.Add(labeldata); - WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始打印" + labeldata.OrderNo); + //WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始打印" + labeldata.OrderNo); PrintLabel(labels); - WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始变成打印状态" + labeldata.OrderNo); + //WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始变成打印状态" + labeldata.OrderNo); //变更打印状态 0=>1 _agent.InvokeServiceFunction("WorkOrderBLL_SetOrderPrinted", orders[0].PID); - WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始插入记录" + labeldata.OrderNo); + //WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始插入记录" + labeldata.OrderNo); InsertProduct(labeldata.OrderNo, orders[0].MATERIAL_CODE, comboBox1.SelectedValue.ToString()); - WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 插入结束" + labeldata.OrderNo); + //WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 插入结束" + labeldata.OrderNo); } BindPlanView(); From bc96c32d756d95da9329b2d9f8b7276f3e1e4961 Mon Sep 17 00:00:00 2001 From: "songnan.zhang" Date: Wed, 26 Oct 2022 08:09:17 +0800 Subject: [PATCH 04/15] =?UTF-8?q?=E4=BF=AE=E8=A1=A5=E5=A4=A9=E6=B4=A5?= =?UTF-8?q?=E9=80=80=E8=BF=94=E5=85=A5=E5=BA=93=E5=90=8E=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E5=8F=91=E8=BF=90bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APP/QMAPP.Web/Web.config | 6 +++--- APPQ5/QMAPP.FJC.BLL/TianJin/TJFrmPlaceBLL.cs | 8 +++++++- APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs | 19 ++++++++++++++++++- APPQ5/QMAPP.WinForm/App.config | 6 +++--- .../QMAPP.WinForm/Properties/AssemblyInfo.cs | 4 ++-- .../WCF/QMFrameWork.WebServiceHost/Web.config | 8 ++++---- 6 files changed, 37 insertions(+), 14 deletions(-) diff --git a/APP/QMAPP.Web/Web.config b/APP/QMAPP.Web/Web.config index c7e3a38..f111f23 100644 --- a/APP/QMAPP.Web/Web.config +++ b/APP/QMAPP.Web/Web.config @@ -40,7 +40,7 @@ - + - + + --> diff --git a/APPQ5/QMAPP.FJC.BLL/TianJin/TJFrmPlaceBLL.cs b/APPQ5/QMAPP.FJC.BLL/TianJin/TJFrmPlaceBLL.cs index 4449a29..050912d 100644 --- a/APPQ5/QMAPP.FJC.BLL/TianJin/TJFrmPlaceBLL.cs +++ b/APPQ5/QMAPP.FJC.BLL/TianJin/TJFrmPlaceBLL.cs @@ -296,7 +296,13 @@ namespace QMAPP.FJC.BLL.TianJin { try { - return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().ExistBarcode(barcodetime, pbarcode); + var DATA = QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL.TExistBarcode(barcodetime, pbarcode); + if (DATA.Rows.Count>0) + { + return new DataTable(); + } + else + return new QMAPP.FJC.DAL.TianJin.TJFrmPlaceDAL().ExistBarcode(barcodetime, pbarcode); } catch (Exception ex) diff --git a/APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs b/APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs index 9a4d6f5..8be1bc7 100644 --- a/APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs +++ b/APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs @@ -1034,7 +1034,24 @@ namespace QMAPP.FJC.DAL.TianJin } - + /// + /// 查找退返入库 + /// + /// + /// + public static DataTable TExistBarcode(int barcodetime, string pbarcode) + { + StringBuilder strSql = new StringBuilder(); + strSql.Append($"SELECT * FROM T_AW_Storage WHERE ProductCode = '{pbarcode}' AND InStorageType = '退返入库'"); + List parameters = new List(); + //DateTime dtime = DateTime.Now; + //string bdatetime = dtime.AddDays(-barcodetime).ToShortDateString(); + //strSql.Append(string.Format(" WHERE SANBARCODE='{2}' AND SCANDATE>='{0} 00:00:00' and SCANDATE<='{1} 23:59:59' AND FLAGDEL='0' ", bdatetime, DateTime.Now.ToShortDateString(), pbarcode)); + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + return session.GetTable(strSql.ToString(), parameters.ToArray()); + } + } /// /// 判断条码是否重复 diff --git a/APPQ5/QMAPP.WinForm/App.config b/APPQ5/QMAPP.WinForm/App.config index 7b6a016..90bf53c 100644 --- a/APPQ5/QMAPP.WinForm/App.config +++ b/APPQ5/QMAPP.WinForm/App.config @@ -3,11 +3,11 @@ - + - + diff --git a/APPQ5/QMAPP.WinForm/Properties/AssemblyInfo.cs b/APPQ5/QMAPP.WinForm/Properties/AssemblyInfo.cs index edc92b8..088903a 100644 --- a/APPQ5/QMAPP.WinForm/Properties/AssemblyInfo.cs +++ b/APPQ5/QMAPP.WinForm/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, // 方法是按如下所示使用“*”: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2022.10.14.01")] -[assembly: AssemblyFileVersion("2022.10.14.01")] +[assembly: AssemblyVersion("2022.10.26.01")] +[assembly: AssemblyFileVersion("2022.10.26.01")] diff --git a/ServicesCenter/WCF/QMFrameWork.WebServiceHost/Web.config b/ServicesCenter/WCF/QMFrameWork.WebServiceHost/Web.config index 8ef77a0..d9003b3 100644 --- a/ServicesCenter/WCF/QMFrameWork.WebServiceHost/Web.config +++ b/ServicesCenter/WCF/QMFrameWork.WebServiceHost/Web.config @@ -63,18 +63,18 @@ - + + --> - From efc4e99fb00c470bb67556ca7112cf59a9e590a3 Mon Sep 17 00:00:00 2001 From: "songnan.zhang" Date: Tue, 1 Nov 2022 15:15:41 +0800 Subject: [PATCH 05/15] 11 --- APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs index 3a55b0a..16149e3 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs @@ -519,7 +519,7 @@ namespace QMAPP.WinForm.Forms.TianJin WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始打印" + labeldata.OrderNo); - PrintLabel(labels); + // PrintLabel(labels); WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始变成打印状态" + labeldata.OrderNo); From 9cdcc8abf1c44a92e2f0f0fe33da9433f7dcfe14 Mon Sep 17 00:00:00 2001 From: "songnan.zhang" Date: Mon, 7 Nov 2022 15:47:15 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9D=A1=E7=A0=81?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APP/QMAPP.Web/App_Data/Menu.xml | 10 +- APP/QMAPP.Web/Web.config | 7 +- APPQ5/QMAPP.FJC.BLL/BZD/BarCodeReplaceBLL.cs | 204 ++++++++++++++ APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj | 1 + APPQ5/QMAPP.FJC.DAL/BZD/BarCodeReplaceDAL.cs | 255 ++++++++++++++++++ APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj | 1 + APPQ5/QMAPP.FJC.Entity/BZD/BarCodeReplace.cs | 52 ++++ .../QMAPP.FJC.Entity/QMAPP.FJC.Entity.csproj | 1 + APPQ5/QMAPP.FJC.Web/App_Data/Menu.xml | 8 + .../Controllers/BarCodeReplaceController.cs | 204 ++++++++++++++ .../Models/BZD/BarCodeReplaceModel.cs | 63 +++++ APPQ5/QMAPP.FJC.Web/QMAPP.FJC.Web.csproj | 4 + .../BarCodeReplace/BarCodeReplaceEdit.aspx | 60 +++++ .../BarCodeReplace/BarCodeReplaceList.aspx | 94 +++++++ AppCommon/QMAPP.ServicesAgent/ServiceEnums.cs | 22 ++ .../App_Data/FJCServiceList.xml | 7 + .../WCF/QMFrameWork.WebServiceHost/Web.config | 8 +- 17 files changed, 992 insertions(+), 9 deletions(-) create mode 100644 APPQ5/QMAPP.FJC.BLL/BZD/BarCodeReplaceBLL.cs create mode 100644 APPQ5/QMAPP.FJC.DAL/BZD/BarCodeReplaceDAL.cs create mode 100644 APPQ5/QMAPP.FJC.Entity/BZD/BarCodeReplace.cs create mode 100644 APPQ5/QMAPP.FJC.Web/Controllers/BarCodeReplaceController.cs create mode 100644 APPQ5/QMAPP.FJC.Web/Models/BZD/BarCodeReplaceModel.cs create mode 100644 APPQ5/QMAPP.FJC.Web/Views/BarCodeReplace/BarCodeReplaceEdit.aspx create mode 100644 APPQ5/QMAPP.FJC.Web/Views/BarCodeReplace/BarCodeReplaceList.aspx diff --git a/APP/QMAPP.Web/App_Data/Menu.xml b/APP/QMAPP.Web/App_Data/Menu.xml index d2795e0..064d720 100644 --- a/APP/QMAPP.Web/App_Data/Menu.xml +++ b/APP/QMAPP.Web/App_Data/Menu.xml @@ -453,8 +453,14 @@ 查询 - - + + + + + 查询 + 新建 + 修改 + 删除 - + - diff --git a/APPQ5/QMAPP.FJC.BLL/BZD/BarCodeReplaceBLL.cs b/APPQ5/QMAPP.FJC.BLL/BZD/BarCodeReplaceBLL.cs new file mode 100644 index 0000000..6737879 --- /dev/null +++ b/APPQ5/QMAPP.FJC.BLL/BZD/BarCodeReplaceBLL.cs @@ -0,0 +1,204 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using QMAPP.BLL; + +using QMFrameWork.Data; + +using QMAPP.Entity; +using QMFrameWork.Log; +using System.Data; +using QMAPP.MD.Entity; +using QMAPP.MD.DAL; +using QMAPP.FJC.Entity.BZD; +using QMAPP.FJC.DAL.BZD; + +namespace QMAPP.FJC.BLL.BZD +{ + /// + /// 模块名称:条码替换记录 + /// 作 者:张松男 + /// 编写日期:2022年11月07日 + /// + public class BarCodeReplaceBLL : BaseBLL + { + + #region 获取信息 + /// + /// 获取信息 + /// + /// 条件 + /// 信息 + public DataResult Get(BarCodeReplace model) + { + DataResult result = new DataResult(); + try + { + result.Result = new BarCodeReplaceDAL().Get(model); + } + catch (Exception ex) + { + result.IsSuccess = false; + result.Msg = Resource.SystemException; + throw ex; + } + result.IsSuccess = true; + return result; + } + + #endregion + + #region 获取列表(分页) + /// + /// 获取列表 + /// + /// 条件 + /// 数据页 + /// 数据页 + public DataResult GetList(BarCodeReplace condition, DataPage page) + { + DataResult result = new DataResult(); + try + { + //获取物料信息列表 + DataPage dataPage = new BarCodeReplaceDAL().GetList(condition, page); + + result.Result = dataPage; + } + catch (Exception ex) + { + result.IsSuccess = false; + result.Msg = Resource.SystemException; + throw ex; + } + result.IsSuccess = true; + return result; + + } + /// + /// 获取全部条码格式规则 + /// + /// + public List GetAllList(string str) + { + return new BarCodeReplaceDAL().GetAllList(); + } + #endregion + + #region 插入信息 + /// + /// 插入信息(单表) + /// + /// 信息 + /// 插入行数 + public DataResult Insert(BarCodeReplace info) + { + DataResult result = new DataResult(); + try + { + //基本信息 + info.PID = Guid.NewGuid().ToString(); + info.CREATEDATE = DateTime.Now; + info.FLGDEL = "0"; + BarCodeReplaceDAL cmdDAL = new BarCodeReplaceDAL(); + result.Result = new BarCodeReplaceDAL().Insert(info); + result.IsSuccess = true; + return result; + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 更新信息 + /// + /// 更新信息 + /// + /// 信息 + /// 更新行数 + public DataResult Update(BarCodeReplace info) + { + DataResult result = new DataResult(); + try + { + info.FLGDEL = "0"; + result.Result = new BarCodeReplaceDAL().Update(info); + result.IsSuccess = true; + return result; + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 删除 + /// + /// 删除信息 + /// + /// 主键串 + /// 删除个数 + public DataResult Delete(string strs) + { + int count = 0; + DataResult result = new DataResult(); + string[] list = strs.Split(":".ToCharArray()); + try + { + foreach (string str in list) + { + count += this.DeleteBarcodeRules(new BarCodeReplace { PID = str }); + } + result.Result = count; + result.IsSuccess = true; + return result; + } + catch (Exception ex) + { + throw ex; + } + } + + /// + /// 删除信息 + /// + /// 信息 + /// 删除个数 + public int DeleteBarcodeRules(BarCodeReplace info) + { + try + { + return new BarCodeReplaceDAL().Delete(info); + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 导出数据 + /// + /// 获取导出的数据 + /// + /// 查询条件 + /// 数据 + public DataTable GetExportData(BarCodeReplace info) + { + try + { + return new BarCodeReplaceDAL().GetExportData(info); + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + } +} diff --git a/APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj b/APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj index f90278e..2da4584 100644 --- a/APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj +++ b/APPQ5/QMAPP.FJC.BLL/QMAPP.FJC.BLL.csproj @@ -110,6 +110,7 @@ + diff --git a/APPQ5/QMAPP.FJC.DAL/BZD/BarCodeReplaceDAL.cs b/APPQ5/QMAPP.FJC.DAL/BZD/BarCodeReplaceDAL.cs new file mode 100644 index 0000000..7bd42a0 --- /dev/null +++ b/APPQ5/QMAPP.FJC.DAL/BZD/BarCodeReplaceDAL.cs @@ -0,0 +1,255 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using QMAPP.MD.Entity; +using QMFrameWork.Data; +using System.Data; +using QMAPP.Entity; +using QMAPP.FJC.Entity.BZD; + +namespace QMAPP.FJC.DAL.BZD +{ + /// + /// 模块名称:条码替换记录 + /// 作 者:张松男 + /// 编写日期:2022年11月07日 + /// + public class BarCodeReplaceDAL + { + + #region 获取信息 + /// + /// 获取信息 + /// + /// 条件 + /// *信息 + public BarCodeReplace Get(BarCodeReplace info) + { + try + { + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + //获取信息 + info = session.Get(info); + } + return info; + } + catch (Exception ex) + { + throw ex; + } + } + + #endregion + + #region 获取列表 + /// + /// 获取列表 + /// + /// 条件 + /// 数据页 + /// 数据页 + public DataPage GetList(BarCodeReplace condition, DataPage page) + { + string sql = null; + List parameters = new List(); + try + { + sql = this.GetQuerySql(condition, ref parameters); + //分页关键字段及排序 + page.KeyName = "PID"; + if (string.IsNullOrEmpty(page.SortExpression)) + page.SortExpression = "CREATEDATE DESC"; + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + // 对应多种数据库 + //string sqlChange = this.ChangeSqlByDB(sql, session); + page = session.GetDataPage(sql, parameters.ToArray(), page); + } + return page; + } + catch (Exception ex) + { + throw ex; + } + } + /// + /// 获取全部规则 + /// + /// + public List GetAllList() + { + try + { + string sql = "SELECT * FROM [T_AW_BarCodeReplace]"; + List parameters = new List(); + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + return session.GetList(sql, parameters.ToArray()).ToList(); + } + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 获取查询语句 + /// + /// 获取查询语句 + /// + /// 查询条件 + /// 参数 + /// 查询语句 + private string GetQuerySql(BarCodeReplace condition, ref List parameters) + { + StringBuilder sqlBuilder = new StringBuilder(); + StringBuilder whereBuilder = new StringBuilder(); + try + { + //构成查询语句//[PID],[MPID],[barcodeFist],[Company_code],[Vehicle_type],[MATERIALCODDE],[configColor],[CREATEUSER],[CREATEDATE],[FLGDEL] + sqlBuilder.Append("SELECT * "); + sqlBuilder.Append("FROM [T_AW_BarCodeReplace] "); + whereBuilder.Append(" AND FLGDEL<> '1' "); + //查询条件 + + ////查询条件 + if (string.IsNullOrEmpty(condition.NewProductCode) == false) + { + whereBuilder.Append(" AND NewProductCode LIKE @NewProductCode "); + parameters.Add(new DataParameter { ParameterName = "NewProductCode", DataType = DbType.String, Value = "%" + condition.NewProductCode + "%" }); + } + if (string.IsNullOrEmpty(condition.OldProductCode) == false) + { + whereBuilder.Append(" AND OldProductCode LIKE @OldProductCode "); + parameters.Add(new DataParameter { ParameterName = "OldProductCode", DataType = DbType.String, Value = "%" + condition.OldProductCode + "%" }); + } + + + if (whereBuilder.Length > 0) + { + sqlBuilder.Append(" WHERE " + whereBuilder.ToString().Substring(4)); + } + return sqlBuilder.ToString(); + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 获取导出的数据 + /// + /// 获取导出的数据 + /// + /// 查询条件 + /// 数据 + public DataTable GetExportData(BarCodeReplace info) + { + DataTable dt = null; + string sql = null; + List parameters = new List(); + try + { + //构成查询语句 + sql = this.GetQuerySql(info, ref parameters); + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + dt = session.GetTable(sql, parameters.ToArray()); + dt.TableName = "BarCodeReplace"; + } + return dt; + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 插入信息 + /// + /// 插入信息(单表) + /// + /// 信息 + /// 插入行数 + public int Insert(BarCodeReplace info) + { + int count = 0; + try + { + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + //插入基本信息 + count = session.Insert(info); + } + return count; + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 更新信息 + /// + /// 更新信息 + /// + /// + /// 更新行数 + public int Update(BarCodeReplace info) + { + int count = 0; + try + { + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + //更新基本信息 + count = session.Update(info); + } + return count; + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 逻辑删除 + /// + /// 逻辑删除信息 + /// + /// + /// 删除个数 + public int Delete(BarCodeReplace info) + { + StringBuilder sqlBuilder = new StringBuilder(); + List parameters = new List(); + int count = 0; + try + { + using (IDataSession session = AppDataFactory.CreateMainSession()) + { + //删除基本信息 + sqlBuilder.Append("UPDATE T_AW_BarCodeReplace "); + sqlBuilder.Append("SET FLGDEL = '1' "); + sqlBuilder.Append("WHERE PID = @PID "); + parameters.Add(new DataParameter { ParameterName = "PID", DataType = DbType.String, Value = info.PID }); + count = session.ExecuteSql(sqlBuilder.ToString(), parameters.ToArray()); + } + return count; + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + } +} diff --git a/APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj b/APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj index 673e01e..3678c15 100644 --- a/APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj +++ b/APPQ5/QMAPP.FJC.DAL/QMAPP.FJC.DAL.csproj @@ -103,6 +103,7 @@ + diff --git a/APPQ5/QMAPP.FJC.Entity/BZD/BarCodeReplace.cs b/APPQ5/QMAPP.FJC.Entity/BZD/BarCodeReplace.cs new file mode 100644 index 0000000..a06a5d1 --- /dev/null +++ b/APPQ5/QMAPP.FJC.Entity/BZD/BarCodeReplace.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using QMFrameWork.Data.Attributes; +using QMAPP.Entity; +using System.ComponentModel; +using System.Data; + +namespace QMAPP.FJC.Entity.BZD +{ + /// + /// 模块名称:条码替换记录 + /// 作 者:张松男 + /// 编写日期:2022年11月07日 + /// + [DBTable(TableName = "T_AW_BarCodeReplace")] + public class BarCodeReplace : BaseEntity + { + /// + /// 主键 + /// + [DBColumn(ColumnName = "PID", DataType = DbType.String, IsKey = true)] + public string PID { get; set; } + + /// + /// 新条码 + /// + [DBColumn(ColumnName = "NewProductCode", DataType = DbType.String)] + public string NewProductCode { get; set; } + + /// + /// 旧条码 + /// + [DBColumn(ColumnName = "OldProductCode", DataType = DbType.String)] + public string OldProductCode { get; set; } + + + /// + /// 创建日期 + /// + [DBColumn(ColumnName = "CREATEDATE", DataType = DbType.DateTime)] + public DateTime CREATEDATE { get; set; } + + + /// + /// 有效标志 + /// + [DBColumn(ColumnName = "FLGDEL", DataType = DbType.String)] + public string FLGDEL { get; set; } + } +} diff --git a/APPQ5/QMAPP.FJC.Entity/QMAPP.FJC.Entity.csproj b/APPQ5/QMAPP.FJC.Entity/QMAPP.FJC.Entity.csproj index 475c9fc..f550968 100644 --- a/APPQ5/QMAPP.FJC.Entity/QMAPP.FJC.Entity.csproj +++ b/APPQ5/QMAPP.FJC.Entity/QMAPP.FJC.Entity.csproj @@ -97,6 +97,7 @@ + diff --git a/APPQ5/QMAPP.FJC.Web/App_Data/Menu.xml b/APPQ5/QMAPP.FJC.Web/App_Data/Menu.xml index f49ce8f..07dbf1e 100644 --- a/APPQ5/QMAPP.FJC.Web/App_Data/Menu.xml +++ b/APPQ5/QMAPP.FJC.Web/App_Data/Menu.xml @@ -456,6 +456,14 @@ 导出 + + + 查询 + 新建 + 修改 + 删除 + + - - - From 5b0f1dbafe8bcf795ce1575f43a3641b77ef0c24 Mon Sep 17 00:00:00 2001 From: "songnan.zhang" Date: Tue, 8 Nov 2022 18:58:40 +0800 Subject: [PATCH 07/15] 11 --- APPQ5/QMAPP.WinForm/App.config | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/APPQ5/QMAPP.WinForm/App.config b/APPQ5/QMAPP.WinForm/App.config index 90bf53c..4d2bced 100644 --- a/APPQ5/QMAPP.WinForm/App.config +++ b/APPQ5/QMAPP.WinForm/App.config @@ -3,10 +3,10 @@ - @@ -19,10 +19,10 @@ --> - + + --> From baf93a2f2470f6a07d2cf54e9eece26d9a241cf1 Mon Sep 17 00:00:00 2001 From: "songnan.zhang" Date: Wed, 23 Nov 2022 11:18:00 +0800 Subject: [PATCH 08/15] =?UTF-8?q?=E5=A2=9E=E5=8A=A0018D=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E5=8F=8A=E5=8F=91=E8=BF=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APP/QMAPP.Web/App_Data/Menu.xml | 17 +- APP/QMAPP.Web/Web.config | 10 +- APPMD/QMAPP.MD.Web/Web.config | 4 +- APPQ5/QMAPP.FJC.BLL/Andon/AndonCallBLL.cs | 2 - APPQ5/QMAPP.FJC.BLL/TianJin/TJWorkOrderBLL.cs | 24 ++ APPQ5/QMAPP.FJC.DAL/TianJin/TJFrmPlaceDAL.cs | 10 +- APPQ5/QMAPP.FJC.DAL/TianJin/TWorkOrderDAL.cs | 190 ++++++++++ APPQ5/QMAPP.FJC.Web/Web.config | 4 +- APPQ5/QMAPP.WinForm/App.config | 12 +- .../QMAPP.WinForm/Forms/TianJin/TJFrmPlace.cs | 189 +++++++--- .../Forms/TianJin/TJFrmPlace.designer.cs | 330 ++++++++++-------- .../TianJin/TJPrintPlanLabel.Designer.cs | 22 +- .../Forms/TianJin/TJPrintPlanLabel.cs | 68 +++- .../Forms/TianJin/TJPrintPlanLabel.resx | 70 ++++ Exchange/QM.ServiceHost/QM.ServiceHost.csproj | 23 +- ProcessFileSyncService/App.config | 2 +- ServicesCenter/WCF/MsgSendService/App.config | 2 +- .../WCF/QMFrameWork.WebServiceHost/Web.config | 9 +- .../WindowsServices/OpcService/app.config | 2 +- 19 files changed, 760 insertions(+), 230 deletions(-) diff --git a/APP/QMAPP.Web/App_Data/Menu.xml b/APP/QMAPP.Web/App_Data/Menu.xml index 064d720..1226a1d 100644 --- a/APP/QMAPP.Web/App_Data/Menu.xml +++ b/APP/QMAPP.Web/App_Data/Menu.xml @@ -298,7 +298,7 @@ --> - + 查询 添加 @@ -313,6 +313,21 @@ 下载模板 + diff --git a/APP/QMAPP.Web/Web.config b/APP/QMAPP.Web/Web.config index e7055d8..8a0bfb0 100644 --- a/APP/QMAPP.Web/Web.config +++ b/APP/QMAPP.Web/Web.config @@ -51,10 +51,12 @@ --> - - - + + + diff --git a/APPMD/QMAPP.MD.Web/Web.config b/APPMD/QMAPP.MD.Web/Web.config index dfba128..0d6a996 100644 --- a/APPMD/QMAPP.MD.Web/Web.config +++ b/APPMD/QMAPP.MD.Web/Web.config @@ -31,8 +31,10 @@ - + + + - + - + diff --git a/APPQ5/QMAPP.WinForm/App.config b/APPQ5/QMAPP.WinForm/App.config index 4d2bced..21cf3f1 100644 --- a/APPQ5/QMAPP.WinForm/App.config +++ b/APPQ5/QMAPP.WinForm/App.config @@ -2,11 +2,11 @@ - + @@ -19,11 +19,13 @@ --> - + + diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJFrmPlace.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJFrmPlace.cs index c86f8c3..2936cab 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJFrmPlace.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJFrmPlace.cs @@ -348,7 +348,7 @@ namespace QMAPP.WinForm.Forms.TianJin try { timeRefew.Enabled = true; - //UserBuffer.Interval = CtlApp.GetInterval(QM.Config.CustomConfig.GetItem("RefreshTime")); + //UserBuffer.Interval = CtlApp.GetInterval(QM.Convvvvvvvvvvvn'n'n'n'n'n'n'n'n'n'n'n'n'n'n'n'n'n'nfig.CustomConfig.GetItem("RefreshTime")); UserBuffer.Interval = CtlApp.GetInterval(QMAPP.WinForm.Common.LocalSetting.Settings["RefreshTime","20"]); timeRefew.Interval = UserBuffer.Interval; //BarcodeTime = int.Parse(QM.Config.CustomConfig.GetItem("BarcodeTime")); @@ -366,12 +366,20 @@ namespace QMAPP.WinForm.Forms.TianJin if (!string.IsNullOrEmpty(pFisType)) { if (pFisType.Equals("01")) + { + rb_hx.Checked = true; + } + else if(pFisType.Equals("02")) { rb_dx.Checked = true; } + else if (pFisType.Equals("03")) + { + ra_hx.Checked = true; + } else { - rb_dx.Checked = true; + ra_dx.Checked = true; } } @@ -776,6 +784,14 @@ namespace QMAPP.WinForm.Forms.TianJin { strprodtype = "( 右 )"; } + else if (pFisType == "03") + { + strprodtype = "( 前 )"; + } + else if (pFisType == "04") + { + strprodtype = "( 后 )"; + } //提交数据处理 foreach (DataRow dr in tbl.Rows) { @@ -987,12 +1003,20 @@ namespace QMAPP.WinForm.Forms.TianJin //#region "隐藏了rb_hx 和rb_dx,全部根据pFisType判断,生产线的设置使用按钮进行设置" if (pFisType == "01") { - strprodtype = "( 混 )"; + strprodtype = "( 左 )"; } else if (pFisType == "02") { - strprodtype = "( 单 )"; + strprodtype = "( 右 )"; } + else if (pFisType == "03") + { + strprodtype = "( 前 )"; + } + else if (pFisType == "04") + { + strprodtype = "( 后 )"; + } prin.Print(rowindex, nfpastecard, strprodtype); ClearContainer(); GetInitData(); @@ -1195,31 +1219,59 @@ namespace QMAPP.WinForm.Forms.TianJin plan.LINENO = "770B"; else plan.LINENO = "018D"; - foreach (var s in "R,F".Split(',')) + if (plan.LINENO == "770B") { - plan.PID = Guid.NewGuid().ToString(); + foreach (var s in "R,F".Split(',')) + { + plan.PID = Guid.NewGuid().ToString(); - plan.MATERIAL_CODE = mach.Substring(0, mach.Length - 1) + s + mach.Substring(mach.Length - 1,1); + plan.MATERIAL_CODE = mach.Substring(0, mach.Length - 1) + s + mach.Substring(mach.Length - 1, 1); - foreach (var rule in _barcodeRules) - { - if (System.Text.RegularExpressions.Regex.IsMatch(plan.MATERIAL_CODE + "1", rule.REGEX)) + foreach (var rule in _barcodeRules) { - plan.MATERIAL_CODE = rule.MATERIAL_CODE; + if (System.Text.RegularExpressions.Regex.IsMatch(plan.MATERIAL_CODE + "1", rule.REGEX)) + { + plan.MATERIAL_CODE = rule.MATERIAL_CODE; + } + } + var RESULT = agent.InvokeServiceFunction>("TJDoorPlankPlanBLL_Insert", plan); + if (RESULT.IsSuccess == true) + { + agent.InvokeServiceFunction>("TJDoorPlankPlanBLL_PutOut", plan.PID); } } - - var RESULT = agent.InvokeServiceFunction>("TJDoorPlankPlanBLL_Insert", plan); - if (RESULT.IsSuccess == true) + } + else + { + foreach (var s in "L,R".Split(',')) { - agent.InvokeServiceFunction>("TJDoorPlankPlanBLL_PutOut", plan.PID); + plan.PID = Guid.NewGuid().ToString(); + plan.MATERIAL_CODE = mach.Substring(0, mach.Length - 1) + mach.Substring(mach.Length - 1, 1) + s; + + foreach (var rule in _barcodeRules) + { + if (System.Text.RegularExpressions.Regex.IsMatch(plan.MATERIAL_CODE + "1", rule.REGEX)) + { + plan.MATERIAL_CODE = rule.MATERIAL_CODE; + } + } + + var RESULT = agent.InvokeServiceFunction>("TJDoorPlankPlanBLL_Insert", plan); + if (RESULT.IsSuccess == true) + { + agent.InvokeServiceFunction>("TJDoorPlankPlanBLL_PutOut", plan.PID); + } } } + txtCode.Text = ""; + txtCode.Focus(); return; } else { + txtCode.Text = ""; + txtCode.Focus(); return; } } @@ -1329,8 +1381,6 @@ namespace QMAPP.WinForm.Forms.TianJin return; #endregion - - } @@ -1445,8 +1495,6 @@ namespace QMAPP.WinForm.Forms.TianJin } if (signal != false) { - #region 去数据库查询相关产品信息,外来零件忽略此步骤 - #region 校验是否有重复的扫过的条码 //------------------校验是否有重复的扫过的条码------ @@ -1473,7 +1521,7 @@ namespace QMAPP.WinForm.Forms.TianJin FISDataCompare(Code, ProMaterial, MOULD_CODE); #endregion - #endregion + } else { @@ -2045,6 +2093,14 @@ namespace QMAPP.WinForm.Forms.TianJin { strprodtype = "( 右 )"; } + else if (pFisType == "03") + { + strprodtype = "( 前 )"; + } + else if (pFisType == "04") + { + strprodtype = "( 后 )"; + } DataTable dt = new DataTable(); dt.Columns.Add("ROWINDEX"); @@ -2297,38 +2353,87 @@ namespace QMAPP.WinForm.Forms.TianJin /// /// /// - int signal = 0; + //int signal = 0; private void rb_hx_CheckedChanged(object sender, EventArgs e) { if (dgvNF.Rows.Count > 0) { - if (rb_hx.Checked == true && signal == 0) - { - signal++; - rb_dx.Checked = true; - } - else if (rb_dx.Checked == true && signal == 0) - { - signal++; - rb_hx.Checked = true; - } lberror.Text = "已扫描数据区不为空,重置或者扫描整车后才能切换生产线!"; - signal = 0; return; } lberror.Text = ""; - QMAPP.WinForm.Common.LocalSetting.Settings["FlashProCode"] = rb_hx.Checked ? "01" : "02"; - if (this.rb_hx.Checked == true) + QMAPP.WinForm.Common.LocalSetting.Settings["FlashProCode"]= "01"; + + //混 + pFisType = "01"; + WORKCENTER_CODE = "IPFY01"; + + GetInitData(); + GetLastPastCard(); + } + /// + /// 右侧门板 + /// + /// + /// + private void rb_dx_CheckedChanged(object sender, EventArgs e) + { + if (dgvNF.Rows.Count > 0) { - //混 - pFisType = "01"; - WORKCENTER_CODE = "IPFY01"; + lberror.Text = "已扫描数据区不为空,重置或者扫描整车后才能切换生产线!"; + return; } - else - { //单 - pFisType = "02"; - WORKCENTER_CODE = "IPFY02"; + lberror.Text = ""; + QMAPP.WinForm.Common.LocalSetting.Settings["FlashProCode"] = "01"; + + //混 + pFisType = "02"; + WORKCENTER_CODE = "IPFY02"; + + GetInitData(); + GetLastPastCard(); + } + /// + /// 018前门 + /// + /// + /// + private void ra_hx_CheckedChanged(object sender, EventArgs e) + { + if (dgvNF.Rows.Count > 0) + { + lberror.Text = "已扫描数据区不为空,重置或者扫描整车后才能切换生产线!"; + return; + } + lberror.Text = ""; + QMAPP.WinForm.Common.LocalSetting.Settings["FlashProCode"] = "03"; + + //混 + pFisType = "03"; + WORKCENTER_CODE = "IPFY03"; + + GetInitData(); + GetLastPastCard(); + } + /// + /// 018后门 + /// + /// + /// + private void ra_dx_CheckedChanged(object sender, EventArgs e) + { + if (dgvNF.Rows.Count > 0) + { + lberror.Text = "已扫描数据区不为空,重置或者扫描整车后才能切换生产线!"; + return; } + lberror.Text = ""; + QMAPP.WinForm.Common.LocalSetting.Settings["FlashProCode"] = "04"; + + //混 + pFisType = "04"; + WORKCENTER_CODE = "IPFY04"; + GetInitData(); GetLastPastCard(); } @@ -2460,5 +2565,7 @@ namespace QMAPP.WinForm.Forms.TianJin else return null; } + + } } diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJFrmPlace.designer.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJFrmPlace.designer.cs index 6725ecb..957df4e 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJFrmPlace.designer.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJFrmPlace.designer.cs @@ -29,8 +29,8 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.panel1 = new System.Windows.Forms.FlowLayoutPanel(); @@ -42,6 +42,8 @@ this.rb_hx = new System.Windows.Forms.RadioButton(); this.rb_dx = new System.Windows.Forms.RadioButton(); this.lblCount = new System.Windows.Forms.Label(); + this.ra_hx = new System.Windows.Forms.RadioButton(); + this.ra_dx = new System.Windows.Forms.RadioButton(); this.dgvMATChange = new System.Windows.Forms.DataGridView(); this.PLAN_DATE = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.REQUESTID = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -56,6 +58,19 @@ this.groupBox1 = new System.Windows.Forms.GroupBox(); this.panel4 = new System.Windows.Forms.Panel(); this.dgvNF = new System.Windows.Forms.DataGridView(); + this.CODE_NF = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PRODNO_NF = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CARSETDESC_CN_NF = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MOULDCODE = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CREATEDATE_NF = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SEQ = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column13 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgcPRODUCT_PID = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.tpContainer = new System.Windows.Forms.TableLayoutPanel(); this.panel3 = new System.Windows.Forms.FlowLayoutPanel(); this.btnPrint_NF = new System.Windows.Forms.Button(); @@ -75,19 +90,6 @@ this.timeRefew = new System.Windows.Forms.Timer(this.components); this.panel7 = new System.Windows.Forms.Panel(); this.panel8 = new System.Windows.Forms.Panel(); - this.CODE_NF = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.PRODNO_NF = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.CARSETDESC_CN_NF = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.MOULDCODE = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.CREATEDATE_NF = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.SEQ = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Column11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Column13 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dgcPRODUCT_PID = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.groupBox2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); @@ -146,6 +148,8 @@ this.panel1.Controls.Add(this.rb_hx); this.panel1.Controls.Add(this.rb_dx); this.panel1.Controls.Add(this.lblCount); + this.panel1.Controls.Add(this.ra_hx); + this.panel1.Controls.Add(this.ra_dx); this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Name = "panel1"; @@ -230,6 +234,7 @@ this.rb_dx.TabIndex = 6; this.rb_dx.Text = "右侧门板"; this.rb_dx.UseVisualStyleBackColor = true; + this.rb_dx.CheckedChanged += new System.EventHandler(this.rb_dx_CheckedChanged); // // lblCount // @@ -243,6 +248,28 @@ this.lblCount.TabIndex = 21; this.lblCount.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // + // ra_hx + // + this.ra_hx.AutoSize = true; + this.ra_hx.Location = new System.Drawing.Point(666, 3); + this.ra_hx.Name = "ra_hx"; + this.ra_hx.Size = new System.Drawing.Size(77, 16); + this.ra_hx.TabIndex = 22; + this.ra_hx.Text = "018前门板"; + this.ra_hx.UseVisualStyleBackColor = true; + this.ra_hx.CheckedChanged += new System.EventHandler(this.ra_hx_CheckedChanged); + // + // ra_dx + // + this.ra_dx.AutoSize = true; + this.ra_dx.Location = new System.Drawing.Point(3, 32); + this.ra_dx.Name = "ra_dx"; + this.ra_dx.Size = new System.Drawing.Size(77, 16); + this.ra_dx.TabIndex = 23; + this.ra_dx.Text = "018后门板"; + this.ra_dx.UseVisualStyleBackColor = true; + this.ra_dx.CheckedChanged += new System.EventHandler(this.ra_dx_CheckedChanged); + // // dgvMATChange // this.dgvMATChange.AllowUserToAddRows = false; @@ -261,18 +288,17 @@ this.PID, this.clscanstate, this.STATE}); - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 9F); - dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle1.Padding = new System.Windows.Forms.Padding(0, 0, 15, 0); - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvMATChange.DefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle5.Font = new System.Drawing.Font("宋体", 9F); + dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle5.Padding = new System.Windows.Forms.Padding(0, 0, 15, 0); + dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvMATChange.DefaultCellStyle = dataGridViewCellStyle5; this.dgvMATChange.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvMATChange.Location = new System.Drawing.Point(0, 0); - this.dgvMATChange.MultiSelect = true; this.dgvMATChange.Name = "dgvMATChange"; this.dgvMATChange.ReadOnly = true; this.dgvMATChange.RowHeadersWidth = 40; @@ -423,15 +449,15 @@ this.Column11, this.Column13, this.dgcPRODUCT_PID}); - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle2.Padding = new System.Windows.Forms.Padding(0, 0, 10, 0); - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvNF.DefaultCellStyle = dataGridViewCellStyle2; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle6.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle6.Padding = new System.Windows.Forms.Padding(0, 0, 10, 0); + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvNF.DefaultCellStyle = dataGridViewCellStyle6; this.dgvNF.Dock = System.Windows.Forms.DockStyle.Fill; this.dgvNF.Location = new System.Drawing.Point(0, 0); this.dgvNF.Name = "dgvNF"; @@ -443,6 +469,123 @@ this.dgvNF.Size = new System.Drawing.Size(460, 364); this.dgvNF.TabIndex = 0; // + // CODE_NF + // + this.CODE_NF.DataPropertyName = "SANBARCODE"; + this.CODE_NF.HeaderText = "条码号"; + this.CODE_NF.Name = "CODE_NF"; + this.CODE_NF.ReadOnly = true; + this.CODE_NF.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.CODE_NF.Width = 57; + // + // PRODNO_NF + // + this.PRODNO_NF.DataPropertyName = "PRODNO"; + this.PRODNO_NF.HeaderText = "零件号"; + this.PRODNO_NF.Name = "PRODNO_NF"; + this.PRODNO_NF.ReadOnly = true; + this.PRODNO_NF.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.PRODNO_NF.Width = 57; + // + // CARSETDESC_CN_NF + // + this.CARSETDESC_CN_NF.DataPropertyName = "CARSETDESC_CN"; + this.CARSETDESC_CN_NF.HeaderText = "总成描述"; + this.CARSETDESC_CN_NF.Name = "CARSETDESC_CN_NF"; + this.CARSETDESC_CN_NF.ReadOnly = true; + this.CARSETDESC_CN_NF.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.CARSETDESC_CN_NF.Width = 69; + // + // MOULDCODE + // + this.MOULDCODE.DataPropertyName = "MOULDCODE"; + this.MOULDCODE.HeaderText = "位置"; + this.MOULDCODE.Name = "MOULDCODE"; + this.MOULDCODE.ReadOnly = true; + this.MOULDCODE.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.MOULDCODE.Width = 45; + // + // CREATEDATE_NF + // + this.CREATEDATE_NF.DataPropertyName = "SCANDATE"; + this.CREATEDATE_NF.HeaderText = "扫描时间"; + this.CREATEDATE_NF.Name = "CREATEDATE_NF"; + this.CREATEDATE_NF.ReadOnly = true; + this.CREATEDATE_NF.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.CREATEDATE_NF.Width = 69; + // + // Column1 + // + this.Column1.DataPropertyName = "PASTEDETAILED_CARD_KEY"; + this.Column1.HeaderText = "Column1"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + this.Column1.Visible = false; + this.Column1.Width = 82; + // + // SEQ + // + this.SEQ.DataPropertyName = "SEQ"; + this.SEQ.HeaderText = "SEQ"; + this.SEQ.Name = "SEQ"; + this.SEQ.ReadOnly = true; + this.SEQ.Visible = false; + this.SEQ.Width = 58; + // + // Column2 + // + this.Column2.DataPropertyName = "FIS_KEY"; + this.Column2.HeaderText = "Column2"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + this.Column2.Visible = false; + this.Column2.Width = 82; + // + // Column3 + // + this.Column3.DataPropertyName = "PASTE_CARD_KEY"; + this.Column3.HeaderText = "Column3"; + this.Column3.Name = "Column3"; + this.Column3.ReadOnly = true; + this.Column3.Visible = false; + this.Column3.Width = 82; + // + // Column7 + // + this.Column7.DataPropertyName = "VIN"; + this.Column7.HeaderText = "Column7"; + this.Column7.Name = "Column7"; + this.Column7.ReadOnly = true; + this.Column7.Visible = false; + this.Column7.Width = 82; + // + // Column11 + // + this.Column11.DataPropertyName = "DGVROWINDEX"; + this.Column11.HeaderText = "Column11"; + this.Column11.Name = "Column11"; + this.Column11.ReadOnly = true; + this.Column11.Visible = false; + this.Column11.Width = 88; + // + // Column13 + // + this.Column13.DataPropertyName = "LINENO"; + this.Column13.HeaderText = "Column13"; + this.Column13.Name = "Column13"; + this.Column13.ReadOnly = true; + this.Column13.Visible = false; + this.Column13.Width = 88; + // + // dgcPRODUCT_PID + // + this.dgcPRODUCT_PID.DataPropertyName = "PRODUCT_PID"; + this.dgcPRODUCT_PID.HeaderText = "产品主键"; + this.dgcPRODUCT_PID.Name = "dgcPRODUCT_PID"; + this.dgcPRODUCT_PID.ReadOnly = true; + this.dgcPRODUCT_PID.Visible = false; + this.dgcPRODUCT_PID.Width = 88; + // // tpContainer // this.tpContainer.BackColor = System.Drawing.SystemColors.ControlDark; @@ -650,123 +793,6 @@ this.panel8.Size = new System.Drawing.Size(1239, 50); this.panel8.TabIndex = 19; // - // CODE_NF - // - this.CODE_NF.DataPropertyName = "SANBARCODE"; - this.CODE_NF.HeaderText = "条码号"; - this.CODE_NF.Name = "CODE_NF"; - this.CODE_NF.ReadOnly = true; - this.CODE_NF.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - this.CODE_NF.Width = 57; - // - // PRODNO_NF - // - this.PRODNO_NF.DataPropertyName = "PRODNO"; - this.PRODNO_NF.HeaderText = "零件号"; - this.PRODNO_NF.Name = "PRODNO_NF"; - this.PRODNO_NF.ReadOnly = true; - this.PRODNO_NF.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - this.PRODNO_NF.Width = 57; - // - // CARSETDESC_CN_NF - // - this.CARSETDESC_CN_NF.DataPropertyName = "CARSETDESC_CN"; - this.CARSETDESC_CN_NF.HeaderText = "总成描述"; - this.CARSETDESC_CN_NF.Name = "CARSETDESC_CN_NF"; - this.CARSETDESC_CN_NF.ReadOnly = true; - this.CARSETDESC_CN_NF.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - this.CARSETDESC_CN_NF.Width = 69; - // - // MOULDCODE - // - this.MOULDCODE.DataPropertyName = "MOULDCODE"; - this.MOULDCODE.HeaderText = "位置"; - this.MOULDCODE.Name = "MOULDCODE"; - this.MOULDCODE.ReadOnly = true; - this.MOULDCODE.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - this.MOULDCODE.Width = 45; - // - // CREATEDATE_NF - // - this.CREATEDATE_NF.DataPropertyName = "SCANDATE"; - this.CREATEDATE_NF.HeaderText = "扫描时间"; - this.CREATEDATE_NF.Name = "CREATEDATE_NF"; - this.CREATEDATE_NF.ReadOnly = true; - this.CREATEDATE_NF.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - this.CREATEDATE_NF.Width = 69; - // - // Column1 - // - this.Column1.DataPropertyName = "PASTEDETAILED_CARD_KEY"; - this.Column1.HeaderText = "Column1"; - this.Column1.Name = "Column1"; - this.Column1.ReadOnly = true; - this.Column1.Visible = false; - this.Column1.Width = 82; - // - // SEQ - // - this.SEQ.DataPropertyName = "SEQ"; - this.SEQ.HeaderText = "SEQ"; - this.SEQ.Name = "SEQ"; - this.SEQ.ReadOnly = true; - this.SEQ.Visible = false; - this.SEQ.Width = 58; - // - // Column2 - // - this.Column2.DataPropertyName = "FIS_KEY"; - this.Column2.HeaderText = "Column2"; - this.Column2.Name = "Column2"; - this.Column2.ReadOnly = true; - this.Column2.Visible = false; - this.Column2.Width = 82; - // - // Column3 - // - this.Column3.DataPropertyName = "PASTE_CARD_KEY"; - this.Column3.HeaderText = "Column3"; - this.Column3.Name = "Column3"; - this.Column3.ReadOnly = true; - this.Column3.Visible = false; - this.Column3.Width = 82; - // - // Column7 - // - this.Column7.DataPropertyName = "VIN"; - this.Column7.HeaderText = "Column7"; - this.Column7.Name = "Column7"; - this.Column7.ReadOnly = true; - this.Column7.Visible = false; - this.Column7.Width = 82; - // - // Column11 - // - this.Column11.DataPropertyName = "DGVROWINDEX"; - this.Column11.HeaderText = "Column11"; - this.Column11.Name = "Column11"; - this.Column11.ReadOnly = true; - this.Column11.Visible = false; - this.Column11.Width = 88; - // - // Column13 - // - this.Column13.DataPropertyName = "LINENO"; - this.Column13.HeaderText = "Column13"; - this.Column13.Name = "Column13"; - this.Column13.ReadOnly = true; - this.Column13.Visible = false; - this.Column13.Width = 88; - // - // dgcPRODUCT_PID - // - this.dgcPRODUCT_PID.DataPropertyName = "PRODUCT_PID"; - this.dgcPRODUCT_PID.HeaderText = "产品主键"; - this.dgcPRODUCT_PID.Name = "dgcPRODUCT_PID"; - this.dgcPRODUCT_PID.ReadOnly = true; - this.dgcPRODUCT_PID.Visible = false; - this.dgcPRODUCT_PID.Width = 88; - // // TJFrmPlace // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); @@ -860,5 +886,7 @@ private System.Windows.Forms.DataGridViewTextBoxColumn Column11; private System.Windows.Forms.DataGridViewTextBoxColumn Column13; private System.Windows.Forms.DataGridViewTextBoxColumn dgcPRODUCT_PID; + private System.Windows.Forms.RadioButton ra_hx; + private System.Windows.Forms.RadioButton ra_dx; } } \ No newline at end of file diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.Designer.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.Designer.cs index d0370f6..7bad796 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.Designer.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.Designer.cs @@ -78,6 +78,7 @@ this.dtpCREATEDATESTART = new DateTimePickerA(); this.label4 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); + this.SelectStripButton = new System.Windows.Forms.ToolStripButton(); ((System.ComponentModel.ISupportInitialize)(this.dgvPlan)).BeginInit(); this.tpContent.SuspendLayout(); this.tpPlanList.SuspendLayout(); @@ -273,6 +274,7 @@ this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom; this.toolStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.SelectStripButton, this.toolStripButton2, this.toolStripButton1, this.tsbPrint, @@ -341,7 +343,7 @@ this.tsmiSuspendOrder.Image = global::QMAPP.WinForm.Resource1.stop; this.tsmiSuspendOrder.Margin = new System.Windows.Forms.Padding(0, 7, 0, 7); this.tsmiSuspendOrder.Name = "tsmiSuspendOrder"; - this.tsmiSuspendOrder.Size = new System.Drawing.Size(144, 26); + this.tsmiSuspendOrder.Size = new System.Drawing.Size(184, 26); this.tsmiSuspendOrder.Text = "挂起工单"; this.tsmiSuspendOrder.TextAlign = System.Drawing.ContentAlignment.BottomCenter; this.tsmiSuspendOrder.Click += new System.EventHandler(this.tsmiSuspendOrder_Click); @@ -351,7 +353,7 @@ this.tsmiCancelSuspend.Image = global::QMAPP.WinForm.Resource1.back; this.tsmiCancelSuspend.Margin = new System.Windows.Forms.Padding(0, 7, 0, 7); this.tsmiCancelSuspend.Name = "tsmiCancelSuspend"; - this.tsmiCancelSuspend.Size = new System.Drawing.Size(144, 26); + this.tsmiCancelSuspend.Size = new System.Drawing.Size(184, 26); this.tsmiCancelSuspend.Text = "取消挂起"; this.tsmiCancelSuspend.Click += new System.EventHandler(this.tsmiCancelSuspend_Click); // @@ -360,7 +362,7 @@ this.tsmiDeleteOrder.Image = global::QMAPP.WinForm.Resource1.delete; this.tsmiDeleteOrder.Margin = new System.Windows.Forms.Padding(0, 7, 0, 7); this.tsmiDeleteOrder.Name = "tsmiDeleteOrder"; - this.tsmiDeleteOrder.Size = new System.Drawing.Size(144, 26); + this.tsmiDeleteOrder.Size = new System.Drawing.Size(184, 26); this.tsmiDeleteOrder.Text = "删除工单"; this.tsmiDeleteOrder.Click += new System.EventHandler(this.tsmiDeleteOrder_Click); // @@ -446,7 +448,6 @@ // // timer1 // - this.timer1.Enabled = true; this.timer1.Interval = 1000; this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // @@ -543,6 +544,18 @@ this.label5.TabIndex = 22; this.label5.Text = "至"; // + // SelectStripButton + // + this.SelectStripButton.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.SelectStripButton.Font = new System.Drawing.Font("微软雅黑", 12F); + this.SelectStripButton.Image = ((System.Drawing.Image)(resources.GetObject("SelectStripButton.Image"))); + this.SelectStripButton.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; + this.SelectStripButton.ImageTransparentColor = System.Drawing.Color.White; + this.SelectStripButton.Name = "SelectStripButton"; + this.SelectStripButton.Size = new System.Drawing.Size(94, 67); + this.SelectStripButton.Text = "刷新"; + this.SelectStripButton.Click += new System.EventHandler(this.SelectStripButton_Click); + // // TJPrintPlanLabel // this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 25F); @@ -619,5 +632,6 @@ private DateTimePickerA dtpCREATEDATESTART; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5; + private System.Windows.Forms.ToolStripButton SelectStripButton; } } \ No newline at end of file diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs index 16149e3..0cda044 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.cs @@ -23,6 +23,7 @@ namespace QMAPP.WinForm.Forms.TianJin List cbsource = null; private string planMATERIAL_CODE = string.Empty; + private string FR = string.Empty; /// /// @@ -126,10 +127,40 @@ namespace QMAPP.WinForm.Forms.TianJin //{ // searchModel.EndTime = Convert.ToDateTime((this.dtpCREATEDATEEND.Value).ToString("yyyy-MM-dd") + " 23:59:59"); //} - #region 服务查询 - var orderlist = _agent.InvokeServiceFunction>("TJWorkOrderBLL_GetOrderUnPrinted", cbRoutes.SelectedValue.ToString(), cbPlanFilter.SelectedIndex, dataPage, comboBox1.SelectedValue.ToString(), comboBox2.SelectedValue.ToString(), this.dtpCREATEDATESTART.Value.ToString(), this.dtpCREATEDATEEND.Value.ToString()); - #endregion - this.dgvPlan.DataSource = orderlist; + if (cbRoutes.Text.Contains("018D")) + { + var count = Convert.ToInt32(cbListRowcount.Text) / 2; + var orderlist =new List(); + var orderlistF = _agent.InvokeServiceFunction>("TJWorkOrderBLL_GetOrderUnPrinted018DF", cbRoutes.SelectedValue.ToString(), cbPlanFilter.SelectedIndex, dataPage, comboBox1.SelectedValue.ToString(), comboBox2.SelectedValue.ToString(), this.dtpCREATEDATESTART.Value.ToString(), this.dtpCREATEDATEEND.Value.ToString()); + var orderlistR = _agent.InvokeServiceFunction>("TJWorkOrderBLL_GetOrderUnPrinted018DR", cbRoutes.SelectedValue.ToString(), cbPlanFilter.SelectedIndex, dataPage, comboBox1.SelectedValue.ToString(), comboBox2.SelectedValue.ToString(), this.dtpCREATEDATESTART.Value.ToString(), this.dtpCREATEDATEEND.Value.ToString()); + for (var i = 0; i < count; i++) + { + if (string.IsNullOrEmpty(FR) || FR == "前") + { + if (i < orderlistF.Count) + orderlist.Add(orderlistF[i]); + if (i < orderlistR.Count) + orderlist.Add(orderlistR[i]); + } + else if (FR == "后") + { + if (i < orderlistR.Count) + orderlist.Add(orderlistR[i]); + if (i < orderlistF.Count) + orderlist.Add(orderlistF[i]); + } + } + this.dgvPlan.DataSource = orderlist; + + } + else + { + #region 服务查询 + var orderlist = _agent.InvokeServiceFunction>("TJWorkOrderBLL_GetOrderUnPrinted", cbRoutes.SelectedValue.ToString(), cbPlanFilter.SelectedIndex, dataPage, comboBox1.SelectedValue.ToString(), comboBox2.SelectedValue.ToString(), this.dtpCREATEDATESTART.Value.ToString(), this.dtpCREATEDATEEND.Value.ToString()); + #endregion + this.dgvPlan.DataSource = orderlist; + } + } catch (Exception ex) { @@ -169,7 +200,7 @@ namespace QMAPP.WinForm.Forms.TianJin { if (!tsbOrderOperation.DropDown.Visible) { - timecounter += 1; + timecounter = 1; if (timecounter > int.Parse("20"))//计时达到刷新时间 { BindPlanView(); @@ -482,7 +513,7 @@ namespace QMAPP.WinForm.Forms.TianJin var orders2 = new List(); var order2 = (FJC.Entity.ProductionPlan.WorkOrder)dgvPlan.Rows[1].DataBoundItem; orders2.Add(order2); - if (orders[0].MATERIAL_NAME.Substring(0, 7) != orders2[0].MATERIAL_NAME.Substring(0, 7)) + if ((orders[0].MATERIAL_NAME.Substring(0, 7) != orders2[0].MATERIAL_NAME.Substring(0, 7))&& !orders[0].MATERIAL_CODE.Contains("018D")) { MessageBox.Show("计划工单即将变换配置,请注意!"); } @@ -531,7 +562,10 @@ namespace QMAPP.WinForm.Forms.TianJin InsertProduct(labeldata.OrderNo, orders[0].MATERIAL_CODE, comboBox1.SelectedValue.ToString()); WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 插入结束" + labeldata.OrderNo); - + if (orders[0].MATERIAL_CODE.Contains("018D") && orders[0].MATERIAL_NAME.Contains("前")) + FR = "后"; + else if(orders[0].MATERIAL_CODE.Contains("018D") && orders[0].MATERIAL_NAME.Contains("后")) + FR = "前"; BindPlanView(); tsbPrint.Enabled = true; @@ -650,7 +684,7 @@ namespace QMAPP.WinForm.Forms.TianJin for (var i = 0; i < count; i++) { - System.Threading.Thread.Sleep(3000); + System.Threading.Thread.Sleep(1000); var orders = new List(); @@ -662,7 +696,7 @@ namespace QMAPP.WinForm.Forms.TianJin var orders2 = new List(); var order2 = (FJC.Entity.ProductionPlan.WorkOrder)dgvPlan.Rows[i + 1].DataBoundItem; orders2.Add(order2); - if (orders[0].MATERIAL_NAME.Substring(0, 7) != orders2[0].MATERIAL_NAME.Substring(0, 7)) + if ((orders[0].MATERIAL_NAME.Substring(0, 7) != orders2[0].MATERIAL_NAME.Substring(0, 7)) && !orders[0].MATERIAL_CODE.Contains("018D")) { MessageBox.Show("计划工单即将变换配置,请注意!"); } @@ -701,7 +735,7 @@ namespace QMAPP.WinForm.Forms.TianJin //WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始打印" + labeldata.OrderNo); - PrintLabel(labels); + //PrintLabel(labels); //WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始变成打印状态" + labeldata.OrderNo); //变更打印状态 0=>1 @@ -709,7 +743,10 @@ namespace QMAPP.WinForm.Forms.TianJin //WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 开始插入记录" + labeldata.OrderNo); InsertProduct(labeldata.OrderNo, orders[0].MATERIAL_CODE, comboBox1.SelectedValue.ToString()); - + if (orders[0].MATERIAL_CODE.Contains("018D") && orders[0].MATERIAL_NAME.Contains("前")) + FR = "后"; + else if (orders[0].MATERIAL_CODE.Contains("018D") && orders[0].MATERIAL_NAME.Contains("后")) + FR = "前"; //WriteLog.Write(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 插入结束" + labeldata.OrderNo); } @@ -732,6 +769,15 @@ namespace QMAPP.WinForm.Forms.TianJin { BindPlanView(); } + /// + /// 刷新 + /// + /// + /// + private void SelectStripButton_Click(object sender, EventArgs e) + { + BindPlanView(); + } } class Direction { public string Code { get; set; } diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.resx b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.resx index 07453f3..f1b8096 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.resx +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/TJPrintPlanLabel.resx @@ -154,6 +154,76 @@ 17, 17 + + + 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 + Ae6xxmll7eSUAAAAAElFTkSuQmCC + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 diff --git a/Exchange/QM.ServiceHost/QM.ServiceHost.csproj b/Exchange/QM.ServiceHost/QM.ServiceHost.csproj index 703702a..0950d10 100644 --- a/Exchange/QM.ServiceHost/QM.ServiceHost.csproj +++ b/Exchange/QM.ServiceHost/QM.ServiceHost.csproj @@ -18,6 +18,21 @@ SAK SAK SAK + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true x86 @@ -138,7 +153,13 @@ QM.Exchange.Core - + + + False + .NET Framework 3.5 SP1 + false + + - + diff --git a/ServicesCenter/WCF/MsgSendService/App.config b/ServicesCenter/WCF/MsgSendService/App.config index 8139e15..56ed977 100644 --- a/ServicesCenter/WCF/MsgSendService/App.config +++ b/ServicesCenter/WCF/MsgSendService/App.config @@ -10,7 +10,7 @@ - + diff --git a/ServicesCenter/WCF/QMFrameWork.WebServiceHost/Web.config b/ServicesCenter/WCF/QMFrameWork.WebServiceHost/Web.config index 241a38a..9c369ed 100644 --- a/ServicesCenter/WCF/QMFrameWork.WebServiceHost/Web.config +++ b/ServicesCenter/WCF/QMFrameWork.WebServiceHost/Web.config @@ -63,10 +63,11 @@ - + @@ -85,6 +86,8 @@ + + diff --git a/ServicesCenter/WindowsServices/OpcService/app.config b/ServicesCenter/WindowsServices/OpcService/app.config index a92e36e..eba0984 100644 --- a/ServicesCenter/WindowsServices/OpcService/app.config +++ b/ServicesCenter/WindowsServices/OpcService/app.config @@ -10,7 +10,7 @@ - + From 365ec0356dac02b8a529cc263fa0927cd4fc3383 Mon Sep 17 00:00:00 2001 From: "songnan.zhang" <446507344@qq.com> Date: Fri, 16 Dec 2022 09:03:34 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E5=A4=A9=E6=B4=A5=E8=A1=A5=E6=89=93?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=A7=E7=BA=BF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- APPMD/QMAPP.MD.DAL/MaterialDAL.cs | 2 +- .../Forms/TianJin/PlanRePrintForm.cs | 31 ++++++-- .../Forms/TianJin/PlanRePrintForm.designer.cs | 59 ++++++++++++--- APPQ5/QMAPP.WinForm/Properties/app.manifest | 69 ++++++++++++++++++ APPQ5/QMAPP.WinForm/QMAPP.WinForm.csproj | 21 +++++- ...CrystalDecisions.CrystalReports.Engine.dll | Bin 0 -> 372736 bytes DLL/CrystalDecisions.ReportSource.dll | Bin 0 -> 86016 bytes DLL/CrystalDecisions.Shared.dll | Bin 0 -> 872448 bytes 8 files changed, 157 insertions(+), 25 deletions(-) create mode 100644 APPQ5/QMAPP.WinForm/Properties/app.manifest create mode 100644 DLL/CrystalDecisions.CrystalReports.Engine.dll create mode 100644 DLL/CrystalDecisions.ReportSource.dll create mode 100644 DLL/CrystalDecisions.Shared.dll diff --git a/APPMD/QMAPP.MD.DAL/MaterialDAL.cs b/APPMD/QMAPP.MD.DAL/MaterialDAL.cs index 2bd360b..23533b2 100644 --- a/APPMD/QMAPP.MD.DAL/MaterialDAL.cs +++ b/APPMD/QMAPP.MD.DAL/MaterialDAL.cs @@ -603,7 +603,7 @@ namespace QMAPP.MD.DAL } if (string.IsNullOrEmpty(condition.REMARK) == false) { - whereBuilder.Append(" AND M.REMARK is not null "); + whereBuilder.Append($" AND M.REMARK LIKE '%{condition.REMARK}%' "); } if (string.IsNullOrEmpty(condition.MATERIAL_ATTRIBUTE) == false) diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/PlanRePrintForm.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/PlanRePrintForm.cs index d7e1c17..b2f80a5 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/PlanRePrintForm.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/PlanRePrintForm.cs @@ -29,6 +29,8 @@ namespace QMAPP.WinForm.Forms.TianJin infolabel.Text = ""; infolabel.ForeColor = Color.Red; _parentForm = parentForm; + + LoadAssyMaterial(); } #region 打印按钮 @@ -233,12 +235,17 @@ namespace QMAPP.WinForm.Forms.TianJin /// private void PrintForm_Load(object sender, EventArgs e) { - _Material = _agent.InvokeServiceFunction>("MaterialBLL_GetMaterialList", new Material { REMARK = "REMARK" }); + + _Material = _agent.InvokeServiceFunction>("MaterialBLL_GetMaterialList", new Material { REMARK = Lines.Text }); foreach (var t in _Material) { t.MATERIAL_NAME = t.MATERIAL_CODE + "|" + t.MATERIAL_NAME; } - LoadAssyMaterial(); + //模腔号 + this.cbMaterial.DataSource = _Material; + this.cbMaterial.DisplayMember = "MATERIAL_NAME"; + this.cbMaterial.ValueMember = "MATERIAL_CODE"; + // } #endregion @@ -250,20 +257,28 @@ namespace QMAPP.WinForm.Forms.TianJin /// private void LoadAssyMaterial() { - - //模腔号 - this.cbMaterial.DataSource = _Material; - this.cbMaterial.DisplayMember = "MATERIAL_NAME"; - this.cbMaterial.ValueMember = "MATERIAL_CODE"; + var list = new List(); + list.Add(new Linese() { NAME = "018D", CODE = "018D" }); + list.Add(new Linese() { NAME = "770B", CODE = "770B" }); + this.Lines.DataSource = list; + this.Lines.DisplayMember = "NAME"; + this.Lines.ValueMember = "CODE"; } + public class Linese + { + public string NAME { get; set; } + public string CODE { get; set; } + } + + #endregion - #endregion private void label2_Click(object sender, EventArgs e) { } + } } \ No newline at end of file diff --git a/APPQ5/QMAPP.WinForm/Forms/TianJin/PlanRePrintForm.designer.cs b/APPQ5/QMAPP.WinForm/Forms/TianJin/PlanRePrintForm.designer.cs index 59e4e3d..6e03d34 100644 --- a/APPQ5/QMAPP.WinForm/Forms/TianJin/PlanRePrintForm.designer.cs +++ b/APPQ5/QMAPP.WinForm/Forms/TianJin/PlanRePrintForm.designer.cs @@ -35,24 +35,28 @@ namespace QMAPP.WinForm.Forms.TianJin this.infolabel = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.cbMaterial = new System.Windows.Forms.ComboBox(); + this.Lines = new System.Windows.Forms.ComboBox(); + this.label2 = new System.Windows.Forms.Label(); this.SuspendLayout(); // // label1 // this.label1.AutoSize = true; this.label1.Font = new System.Drawing.Font("宋体", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label1.Location = new System.Drawing.Point(258, 58); + this.label1.Location = new System.Drawing.Point(344, 72); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(169, 37); + this.label1.Size = new System.Drawing.Size(212, 47); this.label1.TabIndex = 0; this.label1.Text = "条码补打"; // // button1 // this.button1.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.button1.Location = new System.Drawing.Point(233, 257); + this.button1.Location = new System.Drawing.Point(311, 375); + this.button1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(221, 35); + this.button1.Size = new System.Drawing.Size(295, 44); this.button1.TabIndex = 5; this.button1.Text = "打印"; this.button1.UseVisualStyleBackColor = true; @@ -63,18 +67,20 @@ namespace QMAPP.WinForm.Forms.TianJin this.infolabel.AutoSize = true; this.infolabel.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.infolabel.ForeColor = System.Drawing.Color.Red; - this.infolabel.Location = new System.Drawing.Point(63, 328); + this.infolabel.Location = new System.Drawing.Point(84, 410); + this.infolabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.infolabel.Name = "infolabel"; - this.infolabel.Size = new System.Drawing.Size(0, 31); + this.infolabel.Size = new System.Drawing.Size(0, 39); this.infolabel.TabIndex = 6; // // label5 // this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.label5.Location = new System.Drawing.Point(27, 164); + this.label5.Location = new System.Drawing.Point(37, 285); + this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(130, 24); + this.label5.Size = new System.Drawing.Size(163, 30); this.label5.TabIndex = 2; this.label5.Text = "门板物料号"; // @@ -83,21 +89,48 @@ namespace QMAPP.WinForm.Forms.TianJin this.cbMaterial.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cbMaterial.Font = new System.Drawing.Font("微软雅黑", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.cbMaterial.FormattingEnabled = true; - this.cbMaterial.Location = new System.Drawing.Point(173, 152); + this.cbMaterial.Location = new System.Drawing.Point(232, 270); + this.cbMaterial.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.cbMaterial.Name = "cbMaterial"; - this.cbMaterial.Size = new System.Drawing.Size(470, 36); + this.cbMaterial.Size = new System.Drawing.Size(625, 43); this.cbMaterial.TabIndex = 7; // + // Lines + // + this.Lines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.Lines.Font = new System.Drawing.Font("微软雅黑", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Lines.FormattingEnabled = true; + this.Lines.Location = new System.Drawing.Point(232, 167); + this.Lines.Margin = new System.Windows.Forms.Padding(4); + this.Lines.Name = "Lines"; + this.Lines.Size = new System.Drawing.Size(306, 43); + this.Lines.TabIndex = 9; + this.Lines.SelectedIndexChanged += new System.EventHandler(this.PrintForm_Load); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("宋体", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.label2.Location = new System.Drawing.Point(86, 180); + this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(73, 30); + this.label2.TabIndex = 8; + this.label2.Text = "产线"; + // // PlanRePrintForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(665, 399); + this.ClientSize = new System.Drawing.Size(887, 499); + this.Controls.Add(this.Lines); + this.Controls.Add(this.label2); this.Controls.Add(this.cbMaterial); this.Controls.Add(this.infolabel); this.Controls.Add(this.button1); this.Controls.Add(this.label5); this.Controls.Add(this.label1); + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.Name = "PlanRePrintForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "条码补打"; @@ -114,5 +147,7 @@ namespace QMAPP.WinForm.Forms.TianJin private System.Windows.Forms.Label infolabel; private System.Windows.Forms.Label label5; private System.Windows.Forms.ComboBox cbMaterial; + private System.Windows.Forms.ComboBox Lines; + private System.Windows.Forms.Label label2; } } \ No newline at end of file diff --git a/APPQ5/QMAPP.WinForm/Properties/app.manifest b/APPQ5/QMAPP.WinForm/Properties/app.manifest new file mode 100644 index 0000000..8981e8d --- /dev/null +++ b/APPQ5/QMAPP.WinForm/Properties/app.manifest @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/APPQ5/QMAPP.WinForm/QMAPP.WinForm.csproj b/APPQ5/QMAPP.WinForm/QMAPP.WinForm.csproj index 97a3cc4..7bf0ade 100644 --- a/APPQ5/QMAPP.WinForm/QMAPP.WinForm.csproj +++ b/APPQ5/QMAPP.WinForm/QMAPP.WinForm.csproj @@ -73,7 +73,7 @@ - true + false false @@ -88,6 +88,12 @@ QMSetupKey.pfx + + LocalIntranet + + + Properties\app.manifest + True @@ -95,9 +101,15 @@ ..\..\DLL\BarcodeLib.dll - - - + + ..\..\DLL\CrystalDecisions.CrystalReports.Engine.dll + + + ..\..\DLL\CrystalDecisions.ReportSource.dll + + + ..\..\DLL\CrystalDecisions.Shared.dll + False ..\..\DLL\FastReport\FastReport.dll @@ -1513,6 +1525,7 @@ Always + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/DLL/CrystalDecisions.CrystalReports.Engine.dll b/DLL/CrystalDecisions.CrystalReports.Engine.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d62c2463aff2b93014eafad773dcf4cfabf5363 GIT binary patch literal 372736 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