From 11cbf5af5c9dc16489e569dccfc34a5dd282565a Mon Sep 17 00:00:00 2001 From: zhaojian Date: Fri, 14 Jun 2024 14:24:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A6=96=E6=A3=80=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DBService/FormingMachineService.cs | 22 ++++++- .../FinishProdDBService.cs | 6 +- shangjian/XGLFinishPro/App.config | 2 +- .../XGLFinishPro/Views/LanJu_Operator.xaml.cs | 63 ++++++++++++------- .../config/ConnectionConfig.Config | 12 ++-- 5 files changed, 70 insertions(+), 35 deletions(-) diff --git a/shangjian/XGL.Data/DBService/FormingMachineService.cs b/shangjian/XGL.Data/DBService/FormingMachineService.cs index 3c16119..0f06d0e 100644 --- a/shangjian/XGL.Data/DBService/FormingMachineService.cs +++ b/shangjian/XGL.Data/DBService/FormingMachineService.cs @@ -703,6 +703,9 @@ VALUES //赵啸林又说sap有问题,需要上位机修改报工标识2023-12-25,但仅在最终报工时,才更新此状态 if (isEndReport.Equals("1")) { + LogHelper.instance.log.Info("最终报工706行workorder_code值为>>>" + selectRow["workorder_code"].ToString()); + LogHelper.instance.log.Info("最终报工707行product_code值为>>>" + selectRow["product_code"].ToString()); + Getorderworkordermaterial(selectRow["workorder_code"].ToString(), selectRow["product_code"].ToString()); //2024-04-15添加切线方案,暂停状态下不修改报工状态,=w4的时候,不加报工状态更新语句 if (!selectRow["status"].ToString().Equals("w4")) { @@ -941,12 +944,12 @@ VALUES ([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]) + [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}'); "; + GetDate(), '{siteCode}', '{newReportCode}', '0','{selectedConsumeRow["parent_work_order"]}','{selectedConsumeRow["recoil"]}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}','{selectedConsumeRow["attr1"]}'); "; //int ret = Utils.netClientDBHelper.executeUpdate(sql); return sql; } @@ -984,6 +987,21 @@ VALUES } return null; } + + /// + /// 处理重复物料2024-06-13陈恒杰说的 + /// + /// + /// + public bool Getorderworkordermaterial(string workorderCode, string materialCode) + { + string sql = $@"UPDATE mes_report_work_consume SET rspos = ( SELECT attr1 FROM mes_prepare_detail WHERE material_code = '{materialCode}' AND parent_work_order = '{workorderCode}' ) WHERE + material_code = '{materialCode}' + AND workorder_code = '{workorderCode}';"; + DataSet dtset = Utils.netClientDBHelper.getDataSet(sql); + int ret = Utils.netClientDBHelper.executeUpdate(sql); + return ret > 0 ? true : false; + } /// /// 获取所在车间 /// diff --git a/shangjian/XGL.Data/DBServiceFinishProd/FinishProdDBService.cs b/shangjian/XGL.Data/DBServiceFinishProd/FinishProdDBService.cs index 30a322d..a72c055 100644 --- a/shangjian/XGL.Data/DBServiceFinishProd/FinishProdDBService.cs +++ b/shangjian/XGL.Data/DBServiceFinishProd/FinishProdDBService.cs @@ -229,7 +229,7 @@ where CONVERT(VARCHAR(10), create_time , 120)= CONVERT(VARCHAR(10), '{LoginUser. { 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, detail.create_by,detail.create_time,detail.update_by,detail.update_time,locator,need_date, -recoil,fund_quanlity,detail.del_flag,parent_work_order,orders.workorder_code_sap +recoil,fund_quanlity,detail.del_flag,parent_work_order,detail.attr1,orders.workorder_code_sap from mes_prepare_detail detail LEFT JOIN mes_prepare pre on detail.prepare_id = pre.prepare_id left join pro_order_workorder orders on pre.workorder_code = orders.workorder_code and orders.del_flag = '0' @@ -997,7 +997,7 @@ where detail.parent_work_order = '{processid}'"; //where CONVERT(VARCHAR(10), w public bool UpdateSycnFlag(string workOrderID,string deviceCode,string user) { string sql1 = $@"update pro_order_workorder set status = 'w2',workorder_name = '{deviceCode}', update_by = '{LoginUser.UserName}',attr3='{user}',update_time = GETDATE(),start_work_time = GETDATE() where workorder_code = '{workOrderID}' "; - + LogHelper.instance.log.Info("开始工单SQl:"+ sql1); return Utils.netClientDBHelper.executeUpdate(sql1) > 0 ? true : false; } @@ -1046,7 +1046,7 @@ where detail.parent_work_order = '{processid}'"; //where CONVERT(VARCHAR(10), w ('{CommonFunc.Common.GetUUID()}', '{LoginUser.UserId}', '{LoginUser.UserName}', '{type}', GetDate(), '工单报工', 'w2', '{status}', '{deviceCode}','{remark}','{orderCode}','{materialCode}','{materialDesc}','{LoginUser.Version}','{LoginUser.CurrDeviceIP}');"; } - + sqlList.Add(logSql); bool issucc = Utils.netClientDBHelper.executeBatchSql(sqlList); diff --git a/shangjian/XGLFinishPro/App.config b/shangjian/XGLFinishPro/App.config index 11adb0f..97c2775 100644 --- a/shangjian/XGLFinishPro/App.config +++ b/shangjian/XGLFinishPro/App.config @@ -10,7 +10,7 @@ - + diff --git a/shangjian/XGLFinishPro/Views/LanJu_Operator.xaml.cs b/shangjian/XGLFinishPro/Views/LanJu_Operator.xaml.cs index 0884aa3..186a53e 100644 --- a/shangjian/XGLFinishPro/Views/LanJu_Operator.xaml.cs +++ b/shangjian/XGLFinishPro/Views/LanJu_Operator.xaml.cs @@ -503,6 +503,7 @@ namespace XGLFinishPro.Views } if (!selectedRow["status"].ToString().Equals("w2") && !selectedRow["status"].ToString().Equals("w4")) { + LogHelper.instance.log.Info("当前选择的工单"+ (dgWorkOrderInfo.SelectedItem as DataRowView)["workorder_code"].ToString() + "状态为:"+ selectedRow["status"].ToString()); string status = selectedRow["status"].ToString(); string st = status.Equals("w1") ? "未派发" : status.Equals("w3") ? "已报工" : status.Equals("w0") ? "未派发" : "已暂停"; CustomMessageBox.Show("你选择的工单不能报工,请检查工单状态,当前工单状态为:"+ st, CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning); @@ -644,7 +645,7 @@ namespace XGLFinishPro.Views if (dgWorkOrderInfo.SelectedItem is DataRowView selectedRow) { string rowContent = string.Join(", ", selectedRow.Row.ItemArray); - LogHelper.instance.log.Info("选择的行内容: " + rowContent); + LogHelper.instance.log.Info("开始工单选择的行内容: " + rowContent); } else { @@ -652,12 +653,13 @@ namespace XGLFinishPro.Views } string workorderID = (dgWorkOrderInfo.SelectedItem as DataRowView)["workorder_code"].ToString(); string status = (dgWorkOrderInfo.SelectedItem as DataRowView)["status"].ToString(); - LogHelper.instance.log.Info("记录工单状态:"+ status +", 工单号为:"+ workorderID); + LogHelper.instance.log.Info("记录开始工单状态:"+ status +", 开始工单号为:"+ workorderID); if (!status.Equals("w1")) { if (status != "") { string st = status.Equals("w1") ? "未派发" : status.Equals("w3") ? "已报工" : status.Equals("w0") ? "未派发" : "已暂停"; + LogHelper.instance.log.Info("该工单不符合条件,请检查工单状态,当前工单状态为:" + st); CustomMessageBox.Show("该工单不符合条件,请检查工单状态,当前工单状态为:" + st, CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning); return; } @@ -670,11 +672,14 @@ namespace XGLFinishPro.Views if (orderCount >= 1) { CustomMessageBox.Show("已有活动中的工单,请先报工再开始下一个工单!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning); + LogHelper.instance.log.Info("开始工单:已有活动中的工单,请先报工再开始下一个工单!"); return; } + LogHelper.instance.log.Info("查询到当前正在活动的工单数量为"+ orderCount); //更新工单状态 if (!UpdateOrderStatus(workorderID)) { + LogHelper.instance.log.Info("开始工单返回失败"); CustomMessageBox.Show("开始工单失败!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning); } else @@ -705,27 +710,39 @@ namespace XGLFinishPro.Views private bool UpdateOrderStatus(string workorderID) { - string name = LoginUser.UserName +"-"+ LoginUser.UserId; - if (name.IsNullOrEmpty()) + try { - name = "无-0"; - } - //更新工单状态 - var updatestatus = userDbWareHouse.UpdateSycnFlag(workorderID, deviceCode, name); - if (!updatestatus) - { - CustomMessageBox.Show("开始工单失败!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning); - } - DataTable dtSubOrders = userDbWareHouse.GetSubOrderInfo(workorderID); - if (dtSubOrders != null) - { - // 递归更新子单状态 - foreach (DataRow subOrder in dtSubOrders.Rows) + string name = LoginUser.UserName + "-" + LoginUser.UserId; + if (name.IsNullOrEmpty()) { - UpdateOrderStatus(subOrder["workorder_code"].ToString()); + name = "无-0"; + } + //更新工单状态 + var updatestatus = userDbWareHouse.UpdateSycnFlag(workorderID, deviceCode, name); + if (!updatestatus) + { + CustomMessageBox.Show("开始工单失败!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning); + LogHelper.instance.log.Info("开始工单失败"); + return false; + } + else + { + LogHelper.instance.log.Info("开始工单正常"); + } + DataTable dtSubOrders = userDbWareHouse.GetSubOrderInfo(workorderID); + if (dtSubOrders != null) + { + // 递归更新子单状态 + foreach (DataRow subOrder in dtSubOrders.Rows) + { + UpdateOrderStatus(subOrder["workorder_code"].ToString()); + } } } - + catch (Exception ex) + { + LogHelper.instance.log.Info("开始工单异常" +ex.Message); + } return true; } @@ -781,11 +798,10 @@ namespace XGLFinishPro.Views } } - CustomMessageBoxResult result = CustomMessageBox.Show("你确定要首检么?", CustomMessageBoxButton.OKCancel, CustomMessageBoxIcon.Warning); + CustomMessageBoxResult result = CustomMessageBox.Show($"你确定要为批次号:{ (dgWorkOrderInfo.SelectedItem as DataRowView)["batch_code"]}进行首检么?", CustomMessageBoxButton.OKCancel, CustomMessageBoxIcon.Warning); if (result == CustomMessageBoxResult.Cancel) return; - - + LogHelper.instance.log.Info($"首检检验按钮被点击工单号为:{(dgWorkOrderInfo.SelectedItem as DataRowView)["workorder_code"]},批次号为:{(dgWorkOrderInfo.SelectedItem as DataRowView)["batch_code"]}"); //2024-04-16添加不限制首检确认的功能; //string qcStatus = (dgWorkOrderInfo.SelectedItem as DataRowView)["qc_status"].ToString(); @@ -820,7 +836,6 @@ namespace XGLFinishPro.Views string workorderCode = (dgWorkOrderInfo.SelectedItem as DataRowView)["workorder_code"].ToString(); string workorderID = (dgWorkOrderInfo.SelectedItem as DataRowView)["workorder_id"].ToString(); string batchCode = (dgWorkOrderInfo.SelectedItem as DataRowView)["batch_code"].ToString(); - //调用首件检验接口 string apiUrl = formingMachineService.GetInterfaceUrl("createCheckProduceTask"); FirstCheckModel firstCheck = new FirstCheckModel(); @@ -829,11 +844,13 @@ namespace XGLFinishPro.Views if (checkType.Equals("checkTypeSCXJ")) { taskName = "巡检任务"; + LogHelper.instance.log.Info($"准备触发巡检任务{workorderCode}>>批次号为:{batchCode}"); firstCheck.incomeBatchNo = null; } else { taskName = "首件检验任务"; + LogHelper.instance.log.Info($"准备触发首件检验任务{workorderCode}>>批次号为:{batchCode}"); firstCheck.incomeBatchNo = (dgWorkOrderInfo.SelectedItem as DataRowView)["batch_code"].ToString(); } diff --git a/shangjian/XGLFinishPro/config/ConnectionConfig.Config b/shangjian/XGLFinishPro/config/ConnectionConfig.Config index 37d6a27..5bcfc2d 100644 --- a/shangjian/XGLFinishPro/config/ConnectionConfig.Config +++ b/shangjian/XGLFinishPro/config/ConnectionConfig.Config @@ -2,11 +2,11 @@ 强烈建议:对数据库以及本软件的参数更改,不要在此页进行.可以通过系统配置页进行更新. - vadMWi9D6ZBkwIr78LoLmGwiSCvVnpY3nMB7IyQlxFiV2OD5s5WUgOabwGwWK3THofFvPL2rHpOvJVIvtz0oZU/NFQyT8KQlbk0rHjUXoU7wgRdUumDJ1RrSFmIjPm8S + - vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlHbduXNDkc8suJwqe10me6ktk8XD3QU91A7V9zSnfhmhLWUQKZQdqof6chkC37l6QElb57z876mZdo9764iNmLGULHBiQyMu6PXowBdyaQVt17BPsWFn4EUs7Z7zTZwBP+2iJBVXitA3OF6EZXxAztmeZk/1iCwni+JzeWNpXqeOoGzkmSSzmVQH2Yf9m/mlqag2TbldSCcnUQl6lE7tcGg== + - vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlHbduXNDkc8suJwqe10me6ktk8XD3QU91ML11cYCqHcHmTXJFsNQamIbW3UEpkjgNPUcBwRfgP6AWftvk9YFyv7y7/6nzX/c+6z6xMDIdcjYVvfteU+7YtOQhJXTfF5ScosAA0GliBfD8dWAunW+ZCos5LemAj2xb2wvvCxlbnrof8IunWslCaBEAGrdC/KhE0qEfNbxydwc= + @@ -14,10 +14,10 @@ - + vadMWi9D6ZBkwIr78LoLmGwiSCvVnpY3nMB7IyQlxFiV2OD5s5WUgOabwGwWK3THofFvPL2rHpOvJVIvtz0oZU/NFQyT8KQlbk0rHjUXoU7wgRdUumDJ1RrSFmIjPm8S - + vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlF0tM4FO8qPh090fSbocpFrq1jWXNjwNntlKCeRLc6CBQNAw+bzYK+yDKBny3FzdffaiQ/9ohZ/iFw6P/06Dz1d7Q8OX2fGT3YK8v2yeiGlLhRHNGlkzN6Okv9SEccNYXDHZKQND/31n9bbXRhaFERnPoCp+evwBwpKq0nDcp4lLRNDrJpG2b6nw1popy2st0u+eYfbIYddNpj2jZcnrJXg== - + vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlF0tM4FO8qPh090fSbocpFrq1jWXNjwNnXgKYRJ9zN5r4cTE3Hh+JS6lnhIJQCLO5Tn/1DUIbZe8kwpCPuiyxdQS9ApxjjxU3xmhgbAR3NfwaZV2/zLMECLZyTqYXOHwTHdkzxa9RyCzNcbpiSjkFFOVT9SrfkzeVUA+7kogOazAQ7II0ms/Pnls5vU+gUjP9JcI1Q6esb8M= \ No newline at end of file