From 0bfdf2f912b0477595e41d39f7cecee3c9f4fa51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=AF=E9=BE=99=20=E6=9B=B9?= <1805857645@QQ.com> Date: Mon, 1 Dec 2025 16:18:01 +0800 Subject: [PATCH] =?UTF-8?q?change=20-=E4=BA=A4=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tralControl.csproj.AssemblyReference.cache | Bin 15214 -> 13884 bytes .../DBService/FormingMachineService.cs | 85 +++- .../FinishProdDBService.cs | 6 +- shangjian/XGL.Thrift/AreaPlc.cs | 1 - .../XGL/obj/x86/Debug/CSS/DataGridClass.baml | Bin 3489 -> 3489 bytes .../obj/x86/Debug/CSS/NormalSmlBtnClass.baml | Bin 975 -> 975 bytes .../XGL/obj/x86/Debug/CSS/SearchBtnClass.baml | Bin 14780 -> 14780 bytes .../obj/x86/Debug/CSS/SearchTextClass.baml | Bin 5907 -> 5907 bytes shangjian/XGL/obj/x86/Debug/CSS/Style.baml | Bin 1995 -> 1995 bytes .../XGL/obj/x86/Debug/CSS/TabControl.baml | Bin 16126 -> 16126 bytes shangjian/XGL/obj/x86/Debug/MainWindow.baml | Bin 1443 -> 1443 bytes shangjian/XGLFinishPro/App.config | 2 +- .../XGLFinishPro/Views/ExecReportWorkWin.xaml | 5 + .../Views/ExecReportWorkWin.xaml.cs | 22 +- .../XGLFinishPro/Views/InputNumberDialog.xaml | 13 + .../Views/InputNumberDialog.xaml.cs | 47 ++ .../Views/LanJu_Check_Report.xaml | 2 +- .../Views/LanJu_Conversion_Report.xaml | 2 +- .../Views/LanJu_First_Inspection_Reprot.xaml | 2 +- .../LanJu_First_Inspection_Reprot.xaml.cs | 419 ++++++++++-------- .../XGLFinishPro/Views/LanJu_Operator.xaml | 36 +- .../XGLFinishPro/Views/LanJu_Operator.xaml.cs | 113 ++++- .../Views/Lanju_Daily_Check_Report.xaml | 2 +- shangjian/XGLFinishPro/Views/QitaoLvUC.xaml | 3 +- .../XGLFinishPro/Views/QitaoLvUC.xaml.cs | 32 ++ shangjian/XGLFinishPro/XGLFinishPro.csproj | 7 + .../config/ConnectionConfig.Config | 6 +- 27 files changed, 587 insertions(+), 218 deletions(-) create mode 100644 shangjian/XGLFinishPro/Views/InputNumberDialog.xaml create mode 100644 shangjian/XGLFinishPro/Views/InputNumberDialog.xaml.cs diff --git a/shangjian/CentralControl/obj/Debug/CentralControl.csproj.AssemblyReference.cache b/shangjian/CentralControl/obj/Debug/CentralControl.csproj.AssemblyReference.cache index 8e1beca2e580432fe2de8d10b85e5ed83cbea6c8..9c06096aef6612451e65a84db6a274941eb29a81 100644 GIT binary patch delta 33 pcmaD?wkL;~jZthOa}HbOTTu`<1e>^gUO7xU*GEcxGNoetB_>Z)S2) zesO+UiJo6-NlapKacXW-PGyX{qjS7(u%}OqpHF^zOqq$ELA;Tkp`HPdjyE+lGDtNv zNj5M}F)+0>P6n&dOUcP$WCYr{rg&>cS>Rm`Mn*;!kY+|EkTZZ71{fz#W)_W!Ps_|n zwbIwucec`pxHi4>C?4zgxg+Cg-th)|V?!d}bryuCeyK#3M_V5;fJx zU-c$S6eB#o7<5wBit^vRZg0ILRkb=)X{*D=;&^>#^+}4X`EU2t z1v?bq+V}Fd$B#F!&&!_dni`(xdiwp>e>EOXty2P5>#nP6F8H|V`%=wIrxf|@T70LQ zDqpviwEcFlURXqV86yYK$AJnDeV8vq+Az9<9IvAgmReMtnV)A14$R5_SyaT(LlYEC zj9iod3s0ClkCTHZIJKxOGda~aKP5G1aw4bgVnOx~x@J^8SV^W;!Y yPoP-9WCaQD$?rKiCf^qcm@L4iDh4v^KNK*sIp<`i=9MtUPCh6fwRt~xtrh@WhQfdV diff --git a/shangjian/XGL.Data/DBService/FormingMachineService.cs b/shangjian/XGL.Data/DBService/FormingMachineService.cs index 1501949..9e85001 100644 --- a/shangjian/XGL.Data/DBService/FormingMachineService.cs +++ b/shangjian/XGL.Data/DBService/FormingMachineService.cs @@ -962,22 +962,65 @@ VALUES return ret > 0 ? true : false; } - public string GetInsertConsumeInfoSql(DataRowView selectedConsumeRow, string newReportCode, string siteCode) + //public string GetInsertConsumeInfoSql(DataRowView selectedConsumeRow, string newReportCode, string siteCode) + //{ + // string sql = $@" INSERT INTO [dbo].[mes_report_work_consume] + // ([record_id], [workorder_code], [material_code], [material_name], [material_spc], + // [quantity], [unit], [remark], [attr1], [attr2], + // [attr3], [attr4], [create_by], [create_time], [update_by], + // [update_time], [factory_code], [report_code], [del_flag],[parent_order],[recoil],[IP],[version],[rspos],[wastage]) + // VALUES + // ('{Common.GetUUID()}', '{selectedConsumeRow["workorder_code"]}', '{selectedConsumeRow["material_code"]}', '{selectedConsumeRow["material_name"]}', '{selectedConsumeRow["material_spc"]}', + // '{selectedConsumeRow["qty"]}','{selectedConsumeRow["unit"]}', '{selectedConsumeRow["remark"]}', NULL, NULL, + // NULL, NULL, '{LoginUser.UserName}', GetDate(), '{LoginUser.UserName}', + // GetDate(), '{siteCode}', '{newReportCode}', '0','{selectedConsumeRow["parent_work_order"]}','{selectedConsumeRow["recoil"]}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}','{selectedConsumeRow["attr1"]}', '{selectedConsumeRow["wastage"]}'); "; + // //int ret = Utils.netClientDBHelper.executeUpdate(sql); + // return sql; + //} + + public string GetMergeConsumeInfoSql(DataRowView selectedConsumeRow, string newReportCode, string siteCode) { - string sql = $@" INSERT INTO [dbo].[mes_report_work_consume] - ([record_id], [workorder_code], [material_code], [material_name], [material_spc], - [quantity], [unit], [remark], [attr1], [attr2], - [attr3], [attr4], [create_by], [create_time], [update_by], - [update_time], [factory_code], [report_code], [del_flag],[parent_order],[recoil],[IP],[version],[rspos]) - VALUES - ('{Common.GetUUID()}', '{selectedConsumeRow["workorder_code"]}', '{selectedConsumeRow["material_code"]}', '{selectedConsumeRow["material_name"]}', '{selectedConsumeRow["material_spc"]}', - '{selectedConsumeRow["qty"]}','{selectedConsumeRow["unit"]}', '{selectedConsumeRow["remark"]}', NULL, NULL, - NULL, NULL, '{LoginUser.UserName}', GetDate(), '{LoginUser.UserName}', - GetDate(), '{siteCode}', '{newReportCode}', '0','{selectedConsumeRow["parent_work_order"]}','{selectedConsumeRow["recoil"]}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}','{selectedConsumeRow["attr1"]}'); "; - //int ret = Utils.netClientDBHelper.executeUpdate(sql); + string sql = $@" + MERGE [dbo].[mes_report_work_consume] AS target + USING (SELECT + '{selectedConsumeRow["workorder_code"]}' AS workorder_code, + '{selectedConsumeRow["material_code"]}' AS material_code + ) AS source + ON target.workorder_code = source.workorder_code + AND target.material_code = source.material_code + WHEN MATCHED THEN + UPDATE SET + material_name = '{selectedConsumeRow["material_name"]}', + material_spc = '{selectedConsumeRow["material_spc"]}', + quantity = '{selectedConsumeRow["qty"]}', + unit = '{selectedConsumeRow["unit"]}', + remark = '{selectedConsumeRow["remark"]}', + update_by = '{LoginUser.UserName}', + update_time = GETDATE(), + factory_code = '{siteCode}', + report_code = '{newReportCode}', + del_flag = '0', + parent_order = '{selectedConsumeRow["parent_work_order"]}', + recoil = '{selectedConsumeRow["recoil"]}', + IP = '{LoginUser.CurrDeviceIP}', + version = '{LoginUser.Version}', + rspos = '{selectedConsumeRow["attr1"]}', + wastage = '{selectedConsumeRow["wastage"]}' + WHEN NOT MATCHED THEN + INSERT ([record_id], [workorder_code], [material_code], [material_name], [material_spc], + [quantity], [unit], [remark], [attr1], [attr2], + [attr3], [attr4], [create_by], [create_time], [update_by], + [update_time], [factory_code], [report_code], [del_flag], [parent_order], [recoil], [IP], [version], [rspos], [wastage]) + VALUES ('{Common.GetUUID()}', '{selectedConsumeRow["workorder_code"]}', '{selectedConsumeRow["material_code"]}', '{selectedConsumeRow["material_name"]}', '{selectedConsumeRow["material_spc"]}', + '{selectedConsumeRow["qty"]}', '{selectedConsumeRow["unit"]}', '{selectedConsumeRow["remark"]}', NULL, NULL, + NULL, NULL, '{LoginUser.UserName}', GETDATE(), '{LoginUser.UserName}', + GETDATE(), '{siteCode}', '{newReportCode}', '0', '{selectedConsumeRow["parent_work_order"]}', '{selectedConsumeRow["recoil"]}', '{LoginUser.CurrDeviceIP}', '{LoginUser.Version}', '{selectedConsumeRow["attr1"]}', '{selectedConsumeRow["wastage"]}'); + "; + return sql; } + /// /// 获取母单的包工人数 /// @@ -1701,9 +1744,23 @@ where machine_code = 'X1' and bind_status = '0' order by update_time DESC"; public bool UpdateProWorkBatchInWork(string lineCode, string batchCode, string workorderCode, string productCode, string productName, string productdescen, string boxType, string packType, string umrez, string status, string productDate) { string sql = $@"update pro_workbatch_inwork set workorder_code='{workorderCode}',batch='{batchCode}',product_code='{productCode}',status='{status}',product_name='{productName}',product_name_en='{productdescen}',box_type='{boxType}',pack_type='{packType}',umrez='{umrez}',product_date='{productDate}' where line_code='{lineCode}' "; + LogHelper.instance.log.Info($"sql:" + sql); return Utils.netClientDBHelper.executeUpdate(sql) > 0; } + ///// + ///// 恢复生产时再次写入装数 + ///// + ///// + ///// + ///// + //public bool SecondUpdateProWorkBatchInWork(string umrez, string lineCode) + //{ + // string sql = $@"update pro_workbatch_inwork set workorder_code='{workorderCode}',product_code='{productCode}',status='{status}',product_name='{productName}',product_name_en='{productdescen}',pack_type='{packType}',umrez='{umrez}',product_date='{productDate}' where line_code='{lineCode}' "; + // LogHelper.instance.log.Info($"sql:" + sql); + // return Utils.netClientDBHelper.executeUpdate(sql) > 0; + //} + public DataTable GetProductSize(string productCode) { string sql = $"SELECT length,width,height from base_product where product_code='{productCode}'"; @@ -1732,9 +1789,9 @@ where machine_code = 'X1' and bind_status = '0' order by update_time DESC"; return null; } - public bool UpdateProWorkBatchInWorkStatus(string lineCode, string status) + public bool UpdateProWorkBatchInWorkStatus(string lineCode, string status,string packType) { - string sql = $@"update pro_workbatch_inwork set status='{status}' where line_code='{lineCode}' "; + string sql = $@"update pro_workbatch_inwork set status='{status}',pack_type='{packType}' where line_code='{lineCode}' "; return Utils.netClientDBHelper.executeUpdate(sql) > 0; } diff --git a/shangjian/XGL.Data/DBServiceFinishProd/FinishProdDBService.cs b/shangjian/XGL.Data/DBServiceFinishProd/FinishProdDBService.cs index 98a4b4a..04337ef 100644 --- a/shangjian/XGL.Data/DBServiceFinishProd/FinishProdDBService.cs +++ b/shangjian/XGL.Data/DBServiceFinishProd/FinishProdDBService.cs @@ -297,7 +297,7 @@ where CONVERT(VARCHAR(10), create_time , 120)= CONVERT(VARCHAR(10), '{LoginUser. public DataTable GetCosumeData(string workorder) { - string sql = $@"select DISTINCT '0' as qty,'' as remark, pre.workorder_code, SUBSTRING(material_code, 8, LEN(material_code)) as material_code1,material_code,material_name,detail.prod_type,material_spc,detail.unit,quantity, + string sql = $@"select DISTINCT '0' as qty,'0' as wastage,'' as remark, pre.workorder_code, SUBSTRING(material_code, 8, LEN(material_code)) as material_code1,material_code,material_name,detail.prod_type,material_spc,detail.unit,quantity, detail.create_by,detail.create_time,detail.update_by,detail.update_time,locator,need_date, recoil,fund_quanlity,detail.del_flag,parent_work_order,detail.attr1,orders.workorder_code_sap from mes_prepare_detail detail @@ -700,7 +700,9 @@ select a.TrayCode,a.ProductBarNo,a.carcode,a.createtime,a.lineno,b.HadNumber // workorder.parent_order ='0' and CONVERT(VARCHAR(10), workorder.product_date , 120)= CONVERT(VARCHAR(10), '{date}' , 120) and workorder.prod_line_code like '%{deviceCode}%' order by sort_no,batch_code"; ////string sql = $"WITH LatestCheck AS (\r\n SELECT \r\n *,\r\n ROW_NUMBER() OVER (PARTITION BY order_no, income_batch_no ORDER BY create_time DESC) AS rn\r\n FROM \r\n qc_check_task\r\n WHERE \r\n check_type = 'checkTypeCPPC' \r\n AND del_flag = 0\r\n)\r\nSELECT \r\n workorder.factory_code,\r\n workorder.product_date AS plan_time,\r\n workorder.workorder_id,\r\n workorder.workorder_code,\r\n product_code,\r\n product_name,\r\n product_spc,\r\n shifts.shift_desc,\r\n prod_line_code,\r\n workorder.status,\r\n route_code,\r\n quantity_split,\r\n workorder.unit,\r\n workorder.shift_id,\r\n batch.batch_code,\r\n batch.batch_quantity,\r\n sort_no,\r\n workorder.parent_order,\r\n batch.qc_status,\r\n ISNULL(batch.qc_result, '') AS qc_result,\r\n batch.status AS batchStatus,\r\n workorder_code_sap,\r\n salary_flag,\r\n qty.batchQty,\r\n batch.batch_quantity - qty.batchQty AS diffQty,\r\n chack.create_time,\r\n chack.check_status\r\nFROM \r\n pro_order_workorder workorder WITH (NOLOCK)\r\nLEFT JOIN \r\n base_shifts_t shifts WITH (NOLOCK) ON workorder.shift_id = shifts.shift_id\r\nLEFT JOIN \r\n pro_order_workorder_batch batch WITH (NOLOCK) ON workorder.workorder_id = batch.workorder_id\r\nOUTER APPLY \r\n (SELECT TOP 1 * \r\n FROM LatestCheck \r\n WHERE rn = 1 \r\n AND workorder.workorder_code = LatestCheck.order_no \r\n AND batch.batch_code = LatestCheck.income_batch_no) chack\r\nLEFT JOIN \r\n (SELECT sum(quantity_feedback) AS batchQty, workorder_code, batch \r\n FROM [dbo].[mes_report_work] \r\n WHERE del_flag = 0 \r\n GROUP BY workorder_code, batch) qty \r\n ON qty.workorder_code = workorder.workorder_code AND batch.batch_code = qty.batch\r\nWHERE \r\n 1 = 1 \r\n AND batch.del_flag = 0 \r\n AND workorder.del_flag = 0 \r\n AND workorder.parent_order = '0' \r\n AND CONVERT(VARCHAR(10), workorder.product_date, 120) = CONVERT(VARCHAR(10), '{date}', 120) \r\n AND workorder.prod_line_code LIKE '%{deviceCode}%'\r\nORDER BY \r\n sort_no, batch_code;\r\n"; - string sql = $"WITH LatestCheck AS (\r\n SELECT \r\n *,\r\n ROW_NUMBER() OVER (PARTITION BY order_no, income_batch_no ORDER BY create_time DESC) AS rn\r\n FROM \r\n qc_check_task\r\n WHERE \r\n check_type = 'checkTypeCPPC' \r\n AND del_flag = 0\r\n)\r\nSELECT \r\n workorder.factory_code,\r\n workorder.product_date AS plan_time,\r\n workorder.workorder_id,\r\n workorder.workorder_code,\r\n product_code,\r\n product_name,\r\n product_spc,\r\n shifts.shift_desc,\r\n prod_line_code,\r\n workorder.status,\r\n route_code,\r\n quantity_split,\r\n workorder.unit,\r\n workorder.shift_id,\r\n batch.batch_code,\r\n batch.batch_quantity,\r\n sort_no,\r\n workorder.parent_order,\r\n batch.qc_status,\r\n ISNULL(batch.qc_result, '') AS qc_result,\r\n batch.status AS batchStatus,\r\n workorder_code_sap,\r\n salary_flag,\r\n qty.batchQty,\r\n batch.batch_quantity - qty.batchQty AS diffQty,\r\n chack.create_time,\r\n chack.check_status,CASE\r\n WHEN batch.attr1 = '1' THEN 'false'\r\n ELSE 'true'\r\n END AS IsEnabled,\r\n CASE\r\n WHEN batch.attr1 = '1' THEN '结束'\r\n ELSE '开始'\r\n END AS BtnTest ,\r\n batch.batch_id AS batchId \r\nFROM \r\n pro_order_workorder workorder WITH (NOLOCK)\r\nLEFT JOIN \r\n base_shifts_t shifts WITH (NOLOCK) ON workorder.shift_id = shifts.shift_id\r\nLEFT JOIN \r\n pro_order_workorder_batch batch WITH (NOLOCK) ON workorder.workorder_id = batch.workorder_id\r\nOUTER APPLY \r\n (SELECT TOP 1 * \r\n FROM LatestCheck \r\n WHERE rn = 1 \r\n AND workorder.workorder_code = LatestCheck.order_no \r\n AND batch.batch_code = LatestCheck.income_batch_no) chack\r\nLEFT JOIN \r\n (SELECT sum(quantity_feedback) AS batchQty, workorder_code, batch \r\n FROM [dbo].[mes_report_work] \r\n WHERE del_flag = 0 \r\n GROUP BY workorder_code, batch) qty \r\n ON qty.workorder_code = workorder.workorder_code AND batch.batch_code = qty.batch\r\nWHERE \r\n 1 = 1 \r\n AND batch.del_flag = 0 \r\n AND workorder.del_flag = 0 \r\n AND workorder.parent_order = '0' \r\n AND CONVERT(VARCHAR(10), workorder.product_date, 120) = CONVERT(VARCHAR(10), '{date}', 120) \r\n AND workorder.prod_line_code LIKE '%{deviceCode}%'\r\nORDER BY \r\n sort_no, batch_code;\r\n"; + //string sql = $"WITH LatestCheck AS (\r\n SELECT \r\n *,\r\n ROW_NUMBER() OVER (PARTITION BY order_no, income_batch_no ORDER BY create_time DESC) AS rn\r\n FROM \r\n qc_check_task\r\n WHERE \r\n check_type = 'checkTypeCPPC' \r\n AND del_flag = 0\r\n)\r\nSELECT \r\n workorder.factory_code,\r\n workorder.product_date AS plan_time,\r\n workorder.workorder_id,\r\n workorder.workorder_code,\r\n product_code,\r\n product_name,\r\n product_spc,\r\n shifts.shift_desc,\r\n prod_line_code,\r\n workorder.status,\r\n route_code,\r\n quantity_split,\r\n workorder.unit,\r\n workorder.shift_id,\r\n batch.batch_code,\r\n batch.batch_quantity,\r\n sort_no,\r\n workorder.parent_order,\r\n batch.qc_status,\r\n ISNULL(batch.qc_result, '') AS qc_result,\r\n batch.status AS batchStatus,\r\n workorder_code_sap,\r\n salary_flag,\r\n qty.batchQty,\r\n batch.batch_quantity - qty.batchQty AS diffQty,\r\n chack.create_time,\r\n chack.check_status,CASE\r\n WHEN batch.attr1 = '1' THEN 'false'\r\n ELSE 'true'\r\n END AS IsEnabled,\r\n CASE\r\n WHEN batch.attr1 = '1' THEN '结束'\r\n ELSE '开始'\r\n END AS BtnTest ,\r\n batch.batch_id AS batchId \r\nFROM \r\n pro_order_workorder workorder WITH (NOLOCK)\r\nLEFT JOIN \r\n base_shifts_t shifts WITH (NOLOCK) ON workorder.shift_id = shifts.shift_id\r\nLEFT JOIN \r\n pro_order_workorder_batch batch WITH (NOLOCK) ON workorder.workorder_id = batch.workorder_id\r\nOUTER APPLY \r\n (SELECT TOP 1 * \r\n FROM LatestCheck \r\n WHERE rn = 1 \r\n AND workorder.workorder_code = LatestCheck.order_no \r\n AND batch.batch_code = LatestCheck.income_batch_no) chack\r\nLEFT JOIN \r\n (SELECT sum(quantity_feedback) AS batchQty, workorder_code, batch \r\n FROM [dbo].[mes_report_work] \r\n WHERE del_flag = 0 \r\n GROUP BY workorder_code, batch) qty \r\n ON qty.workorder_code = workorder.workorder_code AND batch.batch_code = qty.batch\r\nWHERE \r\n 1 = 1 \r\n AND batch.del_flag = 0 \r\n AND workorder.del_flag = 0 \r\n AND workorder.parent_order = '0' \r\n AND CONVERT(VARCHAR(10), workorder.product_date, 120) = CONVERT(VARCHAR(10), '{date}', 120) \r\n AND workorder.prod_line_code LIKE '%{deviceCode}%'\r\nORDER BY \r\n sort_no, batch_code;\r\n"; + //string sql = $"WITH LatestCheck AS (\r\n SELECT\r\n *,\r\n ROW_NUMBER() OVER (PARTITION BY order_no, income_batch_no ORDER BY create_time DESC) AS rn\r\n FROM\r\n qc_check_task\r\n WHERE\r\n check_type = 'checkTypeCPPC'\r\n AND del_flag = 0\r\n)\r\nSELECT\r\n workorder.factory_code,\r\n workorder.product_date AS plan_time,\r\n workorder.workorder_id,\r\n workorder.workorder_code,\r\n workorder.product_code,\r\n product_name,\r\n product_spc,\r\n shifts.shift_desc,\r\n prod_line_code,\r\n workorder.status,\r\n route_code,\r\n quantity_split,\r\n workorder.unit,\r\n workorder.shift_id,\r\n batch.batch_code,\r\n batch.batch_quantity,\r\n sort_no,\r\n workorder.parent_order,\r\n batch.qc_status,\r\n ISNULL(batch.qc_result, '') AS qc_result,\r\n batch.status AS batchStatus,\r\n workorder_code_sap,\r\n salary_flag,\r\n qty.batchQty,\r\n batch.batch_quantity - qty.batchQty AS diffQty,\r\n chack.create_time,\r\n chack.check_status,\r\n CASE\r\n WHEN batch.attr1 = '1' THEN 'false'\r\n ELSE 'true'\r\n END AS IsEnabled,\r\n CASE\r\n WHEN batch.attr1 = '1' THEN '结束'\r\n ELSE '开始'\r\n END AS BtnTest,\r\n batch.batch_id AS batchId,\r\n bpa.man_standar\r\nFROM\r\n pro_order_workorder workorder WITH (NOLOCK)\r\nLEFT JOIN\r\n base_shifts_t shifts WITH (NOLOCK) ON workorder.shift_id = shifts.shift_id\r\nLEFT JOIN\r\n pro_order_workorder_batch batch WITH (NOLOCK) ON workorder.workorder_id = batch.workorder_id\r\nOUTER APPLY\r\n (SELECT TOP 1 *\r\n FROM LatestCheck\r\n WHERE rn = 1\r\n AND workorder.workorder_code = LatestCheck.order_no\r\n AND batch.batch_code = LatestCheck.income_batch_no) chack\r\nLEFT JOIN\r\n (SELECT sum(quantity_feedback) AS batchQty, workorder_code, batch\r\n FROM [dbo].[mes_report_work]\r\n WHERE del_flag = 0\r\n GROUP BY workorder_code, batch) qty\r\n ON qty.workorder_code = workorder.workorder_code AND batch.batch_code = qty.batch\r\nLEFT JOIN base_product_attached bpa\r\n ON bpa.product_code =\r\n STUFF(workorder.product_code, 1, PATINDEX('%[^0]%', workorder.product_code)-1, '')\r\nWHERE\r\n 1 = 1\r\n AND batch.del_flag = 0\r\n AND workorder.del_flag = 0\r\n AND workorder.parent_order = '0'\r\n AND CONVERT(VARCHAR(10), workorder.product_date, 120) = CONVERT(VARCHAR(10), '{date}', 120)\r\n AND workorder.prod_line_code LIKE '%{deviceCode}%'\r\nORDER BY\r\n sort_no, batch_code;"; + string sql = $"WITH LatestCheck AS (SELECT *,\r\n ROW_NUMBER() OVER (PARTITION BY order_no, income_batch_no ORDER BY create_time DESC) AS rn\r\n FROM qc_check_task\r\n WHERE check_type = 'checkTypeCPPC'\r\n AND del_flag = 0)\r\nSELECT workorder.factory_code,\r\n workorder.product_date AS plan_time,\r\n workorder.workorder_id,\r\n workorder.workorder_code,\r\n workorder.product_code,\r\n workorder.product_name,\r\n product_spc,\r\n shifts.shift_desc,\r\n prod_line_code,\r\n workorder.status,\r\n route_code,\r\n quantity_split,\r\n workorder.unit,\r\n workorder.shift_id,\r\n batch.batch_code,\r\n batch.batch_quantity,\r\n sort_no,\r\n workorder.parent_order,\r\n batch.qc_status,\r\n ISNULL(batch.qc_result, '') AS qc_result,\r\n batch.status AS batchStatus,\r\n workorder_code_sap,\r\n salary_flag,\r\n qty.batchQty,\r\n batch.batch_quantity - qty.batchQty AS diffQty,\r\n chack.create_time,\r\n chack.check_status,\r\n CASE WHEN batch.attr1 = '1' THEN 'false' ELSE 'true' END AS IsEnabled,\r\n CASE WHEN batch.attr1 = '1' THEN '结束' ELSE '开始' END AS BtnTest,\r\n batch.batch_id AS batchId,\r\n mlp.use_man\r\nFROM pro_order_workorder workorder WITH (NOLOCK)\r\n LEFT JOIN base_shifts_t shifts WITH (NOLOCK) ON workorder.shift_id = shifts.shift_id\r\n LEFT JOIN pro_order_workorder_batch batch WITH (NOLOCK) ON workorder.workorder_id = batch.workorder_id\r\n OUTER APPLY (SELECT TOP 1 *\r\n FROM LatestCheck\r\n WHERE rn = 1\r\n AND workorder.workorder_code = LatestCheck.order_no\r\n AND batch.batch_code = LatestCheck.income_batch_no) chack\r\n LEFT JOIN (SELECT sum(quantity_feedback) AS batchQty, workorder_code, batch\r\n FROM [dbo].[mes_report_work]\r\n WHERE del_flag = 0\r\n GROUP BY workorder_code, batch) qty\r\n ON qty.workorder_code = workorder.workorder_code AND batch.batch_code = qty.batch\r\n LEFT JOIN mes_line_product mlp ON mlp.product_code = workorder.product_code AND mlp.del_flag = '0' AND mlp.line_code LIKE '%{deviceCode}%'\r\nWHERE 1 = 1\r\n AND batch.del_flag = 0\r\n AND workorder.del_flag = 0\r\n AND workorder.parent_order = '0'\r\n AND CONVERT(VARCHAR(10), workorder.product_date, 120) = CONVERT(VARCHAR(10), '{date}', 120)\r\n AND workorder.prod_line_code LIKE '%{deviceCode}%'\r\nORDER BY sort_no, batch_code;"; DataSet dtset = Utils.netClientDBHelper.getDataSet(sql); if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0) { diff --git a/shangjian/XGL.Thrift/AreaPlc.cs b/shangjian/XGL.Thrift/AreaPlc.cs index cd8507b..7074482 100644 --- a/shangjian/XGL.Thrift/AreaPlc.cs +++ b/shangjian/XGL.Thrift/AreaPlc.cs @@ -195,6 +195,5 @@ public partial class AreaPlc : TBase sb.Append(")"); return sb.ToString(); } - } diff --git a/shangjian/XGL/obj/x86/Debug/CSS/DataGridClass.baml b/shangjian/XGL/obj/x86/Debug/CSS/DataGridClass.baml index 8b935bd88f7aae37ddc4159ab6e2a5c987adfddf..5312b30f9b0a5aca17bf7037a7d68bfb43842622 100644 GIT binary patch delta 82 zcmZ1|y-<3B3R4in#M^;PF^m({Vi=hwHiu2tVZ6!A$e=Jeo=IV{29pURpa1{> delta 48 zcmbQNH(76j3R4Wj#L5^(#);R$n1Yxlss(P=VPt1yWY}!Nw2O(Ifq{{MiGgMFR~9)T E07KjhkN^Mx diff --git a/shangjian/XGL/obj/x86/Debug/CSS/Style.baml b/shangjian/XGL/obj/x86/Debug/CSS/Style.baml index 3d8ee4cd05ba69c157597924e62c41b25e39c169..4f97f18ce2b3f2769a28ed0c3a9330cdea0b53e0 100644 GIT binary patch delta 41 xcmX@jf0}=S3R4in#M^;PF^m({Vi=hwHivE2Vf18TXJKGqU}Rw0T*K_o0s#C$3KswX delta 41 xcmX@jf0}=S3R4Wj#L5^(#);R$n1Yxlss(P=Vf18TXJBAtU}9j|T*K_o0s#8-3J3rI diff --git a/shangjian/XGL/obj/x86/Debug/CSS/TabControl.baml b/shangjian/XGL/obj/x86/Debug/CSS/TabControl.baml index 42a8e5ab6950aa4de8090c2383f216c5db49bb03..26851e048c0a0ae3842d20c882c90bb051206593 100644 GIT binary patch delta 48 zcmexY`>%F_3R4in#M^;PF^m({Vi=hwHivE2VGL(tWZc}sypxHYg@J*Ak%4Km3)?OW E0F*fm$N&HU delta 48 zcmexY`>%F_3R4Wj#L5^(#);R$n1Yxlss(P=VGL(tWZ2xoypxHYfq{{MiGgLa3)?OW E0FrPGxBvhE diff --git a/shangjian/XGL/obj/x86/Debug/MainWindow.baml b/shangjian/XGL/obj/x86/Debug/MainWindow.baml index 2d7a4b11c1f9d737facb6fb963c0b1e314403325..7d41e55211474f3c302d0aec3657926d7b09baee 100644 GIT binary patch delta 42 ycmZ3?y_kD~A5#$HWLCyNrWmG)0Wpls6W4}q4r4T7WM^eyWME=o-aL^>h#3IqJqcR? delta 41 xcmZ3?y_kD~A5#qD#Kkd;Op_SHn1Yxm1_W*nV>Dr8XJlYvU}j+5JdsI=835 - + diff --git a/shangjian/XGLFinishPro/Views/ExecReportWorkWin.xaml b/shangjian/XGLFinishPro/Views/ExecReportWorkWin.xaml index f712e44..fe280d9 100644 --- a/shangjian/XGLFinishPro/Views/ExecReportWorkWin.xaml +++ b/shangjian/XGLFinishPro/Views/ExecReportWorkWin.xaml @@ -574,6 +574,11 @@ Binding="{Binding qty}" Header="实际用量" IsReadOnly="False" /> + + + + + +