添加首检记录,修改打卡

20260122
zhaojian 2 years ago
parent 2bc360ad15
commit 223dae62a2

@ -204,6 +204,17 @@ ORDER BY
return null;
}
public DataTable GetOperationShouJian(string v,string work)
{
string sql = $" SELECT bat.batch_code,bat.qc_result,bat.update_time,ordee.product_code,product_name,ordee.shift_id FROM pro_order_workorder_batch bat LEFT JOIN pro_order_workorder ordee on bat.workorder_id=ordee.workorder_id WHERE bat.qc_status=2 AND (bat.update_time>'{v} 00:00:00' AND bat.update_time< '{v} 23:59:59') AND ordee.workorder_name='{work}' AND ordee.product_date='{v}' ORDER BY bat.update_time ";
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
{
return dtset.Tables[0];
}
return null;
}
public DataTable GetCompleteHistoryList(string deviceCode)
{
string sql = $@"select
@ -604,12 +615,12 @@ select a.TrayCode,a.ProductBarNo,a.carcode,a.createtime,a.lineno,b.HadNumber
{
string sql = $@"select workorder.factory_code,workorder.product_date as plan_time, workorder.workorder_id,workorder.workorder_code, product_code,product_name,
product_spc,shifts.shift_desc,prod_line_code,workorder.status,route_code,quantity_split,
unit,workorder.shift_id ,batch.batch_code,batch.batch_quantity,sort_no, workorder.parent_order,batch.qc_status,isnull(batch.qc_result,'') qc_result,batch.status as batchStatus,workorder_code_sap,salary_flag,qty.batchQty,batch.batch_quantity - qty.batchQty as diffQty, chack.create_time,
workorder.unit,workorder.shift_id ,batch.batch_code,batch.batch_quantity,sort_no, workorder.parent_order,batch.qc_status,isnull(batch.qc_result,'') qc_result,batch.status as batchStatus,workorder_code_sap,salary_flag,qty.batchQty,batch.batch_quantity - qty.batchQty as diffQty, chack.create_time,
chack.check_status
from pro_order_workorder workorder WITH (NOLOCK)
left JOIN base_shifts_t shifts WITH (NOLOCK) on workorder.shift_id = shifts.shift_id
LEFT JOIN (SELECT create_time,check_status,order_no FROM qc_check_task WHERE check_type='checkTypeCP' ) chack ON workorder.workorder_code = chack.order_no
left JOIN pro_order_workorder_batch batch WITH (NOLOCK) on workorder.workorder_id = batch.workorder_id
LEFT JOIN ( SELECT * FROM qc_check_task WHERE check_type='checkTypeCPPC' ) chack ON batch.batch_code = chack.income_batch_no
left join (SELECT sum(quantity_feedback) as batchQty,workorder_code,batch FROM [dbo].[mes_report_work] where del_flag = 0 GROUP BY workorder_code,batch) qty on qty.workorder_code = workorder.workorder_code and batch.batch_code = qty.batch
where 1=1 and batch.del_flag = 0 and workorder.del_flag = 0 and
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";
@ -720,7 +731,7 @@ where line_code = '{deviceCode}' and CONVERT(VARCHAR(10), Create_time , 120) = C
/// </summary>
/// <param name="item"></param>
/// <exception cref="NotImplementedException"></exception>
public string GetCreateUnitPriceInfo(sys_user item,string workorderCode, string sapWorkorderCode,string productCode,string productName,string childProcessCode,string childProcessName,string deviceCode,string number,string credata)
public string GetCreateUnitPriceInfo(sys_user item,string workorderCode, string sapWorkorderCode,string productCode,string productName,string childProcessCode,string childProcessName,string deviceCode,string number,string credata,string attr2)
{
string sql = $@"INSERT INTO [dbo].[mes_unitprice_report] (
[id],[workorder_code], [workorder_code_sap], [product_name], [product_code],
@ -732,7 +743,7 @@ where line_code = '{deviceCode}' and CONVERT(VARCHAR(10), Create_time , 120) = C
(
'{Common.GetUUID()}', '{workorderCode}','{sapWorkorderCode}', '{productName}', '{productCode}',
N'{item.user_name}', N'{item.nick_name}', N'{childProcessCode}', N'{childProcessName}',' {number}',
NULL, NULL, '{LoginUser.UserName}', '{credata} 00:00:00', NULL,
{attr2}, NULL, '{LoginUser.UserName}', '{credata} 00:00:00', NULL,
NULL, NULL,'{deviceCode}' );";
return sql;

@ -11,6 +11,10 @@ namespace XGL.Models.Model
/// </summary>
public class sys_user
{
/// <summary>
/// 工时
/// </summary>
public string attr2 { get; set; }
/// <summary>
/// 报工数量
/// </summary>

@ -12,7 +12,7 @@
<!--设备编码-->
<add key="DeviceCode" value="C7" />
<!--上位机类型 0:工单准备1成型机\shoupei2烘房,3:人员登录-->
<add key="ClientMode" value="1" />
<add key="ClientMode" value="0" />
<add key="SerialPort" value="COM5" />
<add key="DryingHouseList" value="H16,H17,H18"/>
<!--线体编码-->

@ -287,7 +287,7 @@
<!--<Button x:Name="btnQueryLog" Content="查询" Foreground="White" Margin="20,0,0,0" FontSize="18" Background="#2B7EE6" Width="100" Height="30" Click="btnRefresh_Click"/>-->
</StackPanel>
<DataGrid
x:Name="dgMaterialInfo"
Grid.Row="1"
@ -403,7 +403,7 @@
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">-->
<ProgressBar Name="jindu" Grid.Row="3" IsIndeterminate="True" Visibility="Collapsed" Grid.ColumnSpan="2" Margin="25,190,10,138" Panel.ZIndex="2" />
<!-- Foreground="Black" FontWeight="Bold"-->
<DataGrid
x:Name="WorkOrder"

@ -9,6 +9,7 @@ using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows;
@ -32,7 +33,7 @@ namespace XGL.Views
/// </summary>
public partial class LanJu_Prepare : UserControl
{
Timer timerDeciveState = new Timer();
System.Timers. Timer timerDeciveState = new System.Timers.Timer();
public LanJu_Prepare()
{
@ -243,147 +244,158 @@ namespace XGL.Views
private async void btnStartOrders_Click(object sender, RoutedEventArgs e)
{
//陈恒杰在2024-01-07日与榄菊的苏振华确认不需要用户验证
//CheckUserWin checkUserWin = new CheckUserWin();
//checkUserWin.ShowDialog();
//if (!checkUserWin.loginFlag)
//{
// CustomMessageBox.Show("请先校验用户!",CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
// return;
//}
if (WorkOrder.SelectedItems.Count == 0)
try
{
CustomMessageBox.Show("请选择要开始的工单!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
return;
}
string orderID = (WorkOrder.SelectedItem as WetMaterialModel).id;
string workorderID = (WorkOrder.SelectedItem as WetMaterialModel).workorder_id;
string material = (WorkOrder.SelectedItem as WetMaterialModel).material_code;
string sync_flag = (WorkOrder.SelectedItem as WetMaterialModel).sync_flag;
string status = (WorkOrder.SelectedItem as WetMaterialModel).status;
if (sync_flag.Equals("Y"))
{
CustomMessageBox.Show("该工单已同步,请选择其他的工单!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
return;
}
// Check user verification (commented out as per your requirement)
// CheckUserWin checkUserWin = new CheckUserWin();
// checkUserWin.ShowDialog();
// if (!checkUserWin.loginFlag)
// {
// CustomMessageBox.Show("请先校验用户!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
// return;
// }
if (!status.Equals("w1"))
{
if (status != "")
if (WorkOrder.SelectedItems.Count == 0)
{
CustomMessageBox.Show("该工单不符合条件,请选择其他的工单!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
CustomMessageBox.Show("请选择要开始的工单!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
return;
}
}
}
//获取WMS齐套率湿料计划先不用
//var wmsState = userDbWareHouse.GetWorkOrderQitaoLv(orderID);
//if (wmsState == null || wmsState.Rows[0][0].Equals("0"))
//{
// CustomMessageBox.Show("该工单未准备好,请稍后再试!", CustomMessageBoxIcon.Warning);
// return;
//}
string orderID = (WorkOrder.SelectedItem as WetMaterialModel).id;
string workorderID = (WorkOrder.SelectedItem as WetMaterialModel).workorder_id;
string material = (WorkOrder.SelectedItem as WetMaterialModel).material_code;
string sync_flag = (WorkOrder.SelectedItem as WetMaterialModel).sync_flag;
string status = (WorkOrder.SelectedItem as WetMaterialModel).status;
//获取湿料计划指定的成型机
//var cxjDt = userDbWareHouse.GetCXJList(orderID);
DataTable cxjDt = null;
//根据工单获取成型机
cxjDt = userDbWareHouse.GetCXJList(workorderID);// 在此处执行数据库查询
if (cxjDt == null || cxjDt.Rows.Count == 0)
{
CustomMessageBox.Show("该工单未指定料罐、成型机,请稍后再试!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
return;
}
List<string> cxjList = new List<string>();
List<string> bucketList = new List<string>();
//这扯淡的设计,根据湿料计划获取各个工单对应的工序、机台信息,这样式的,[["GX01","C1"],["GX01","C5"],["GX01","C3"],["GX01","C6"],["GX01","C8"],["GX02","H2"],["GX02","H3"],["GX02","H4"],["GX02","H5"],["GX02","H6"],["GX03","X3"],["GX03","X6"]]
for (int i = 0; i < cxjDt.Rows.Count; i++)
{
string jsonStrCXJList = cxjDt.Rows[i][0].ToString();
string bucketNo = cxjDt.Rows[i][1].ToString();
bucketList.Add(bucketNo);
// 解析JSON字符串为嵌套的列表结构
List<List<string>> data = JsonConvert.DeserializeObject<List<List<string>>>(jsonStrCXJList);
// 输出嵌套列表的值
foreach (var innerList in data)
if (sync_flag.Equals("Y"))
{
if (innerList[1].Contains("C"))
CustomMessageBox.Show("该工单已同步,请选择其他的工单!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
return;
}
if (!status.Equals("w1"))
{
if (status != "")
{
CustomMessageBox.Show("该工单不符合条件,请选择其他的工单!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
return;
}
}
// Show loading indicator
Dispatcher.Invoke(() =>
{
jindu.Visibility = Visibility.Visible;
});
// Simulate some work
await Task.Run(async () =>
{
// 获取湿料计划指定的成型机
DataTable cxjDt = userDbWareHouse.GetCXJList(workorderID);
if (cxjDt == null || cxjDt.Rows.Count == 0)
{
throw new Exception("该工单未指定料罐、成型机,请稍后再试!");
}
List<string> cxjList = new List<string>();
List<string> bucketList = new List<string>();
for (int i = 0; i < cxjDt.Rows.Count; i++)
{
string jsonStrCXJList = cxjDt.Rows[i][0].ToString();
string bucketNo = cxjDt.Rows[i][1].ToString();
bucketList.Add(bucketNo);
List<List<string>> data = JsonConvert.DeserializeObject<List<List<string>>>(jsonStrCXJList);
foreach (var innerList in data)
{
//记录成型机列表
cxjList.Add(innerList[1]);
if (innerList[1].Contains("C"))
{
cxjList.Add(innerList[1]);
}
}
}
}
cxjList = cxjList.Distinct().ToList();//去重
bucketList = bucketList.Distinct().ToList();
//var jsonObject = JsonConvert.DeserializeObject(jsonStrCXJList);
}
string apiUrl = Utils.GetAppSetting("WCSMaterialSyncAddress")=="" ? "http://192.168.202.28:9001/api/v1/ReceiveMesMsg/materialPlanSync": Utils.GetAppSetting("WCSMaterialSyncAddress");
cxjList = cxjList.Distinct().ToList();
bucketList = bucketList.Distinct().ToList();
string apiUrl = Utils.GetAppSetting("WCSMaterialSyncAddress") == "" ? "http://192.168.202.28:9001/api/v1/ReceiveMesMsg/materialPlanSync" : Utils.GetAppSetting("WCSMaterialSyncAddress");
MaterialPlanModel materialPlanModel = new MaterialPlanModel();
List<WetMaterialModel> listWetMaterial = Utils.ToDataList<WetMaterialModel>(dt);
List<skuInfo> skuInfoList = new List<skuInfo>();
MaterialPlanModel materialPlanModel = new MaterialPlanModel();
List<WetMaterialModel> listWetMaterial = Utils.ToDataList<WetMaterialModel>(dt);
List<skuInfo> skuInfoList = new List<skuInfo>();
materialPlanModel.reqCode = CommonFunc.Common.GetUUID();
materialPlanModel.reqTime = DateTime.Now.ToString();
materialPlanModel.factory = Utils.GetAppSetting("SiteCode");
materialPlanModel.planNo = workorderID;
materialPlanModel.reqCode = CommonFunc.Common.GetUUID();
materialPlanModel.reqTime = DateTime.Now.ToString();
materialPlanModel.factory = Utils.GetAppSetting("SiteCode");
materialPlanModel.planNo = workorderID;
foreach (var item in bucketList)
{
skuInfo sku = new skuInfo
{
sku = material,
loadNo = item,
unLoadItems = new List<unloadNoInfo>()
};
foreach (var item in bucketList)
{
skuInfo sku = new skuInfo();
sku.sku = material;
sku.loadNo = item;
List<unloadNoInfo> unloadNoInfoList = new List<unloadNoInfo>();
foreach (var buckt in cxjList)
foreach (var buckt in cxjList)
{
unloadNoInfo unloadNoInfo = new unloadNoInfo
{
unloadNo = buckt
};
sku.unLoadItems.Add(unloadNoInfo);
}
skuInfoList.Add(sku);
}
materialPlanModel.data = skuInfoList;
var jsonContent = JsonConvert.SerializeObject(materialPlanModel);
LogHelper.instance.log.Info("给WCS同步计划>>" + jsonContent);
RestHelper restClient = new RestHelper();
var response =await restClient.PostAsync(apiUrl, jsonContent);
WcsSyncResult result = Utils.DeJson<WcsSyncResult>(response);
if (result.message.ToLower().Equals("ok"))
{
unloadNoInfo unloadNoInfo = new unloadNoInfo();
unloadNoInfo.unloadNo = buckt;
unloadNoInfoList.Add(unloadNoInfo);
}
sku.unLoadItems = unloadNoInfoList;
skuInfoList.Add(sku);
var updatestatus = userDbWareHouse.UpdateSycnFlag(workorderID);
if (!updatestatus)
{
LogHelper.instance.log.Info("更新湿料计划同步状态失败!");
throw new Exception("推送至WCS计划失败");
}
}
else
{
throw new Exception("开始工单失败!");
}
// Simulate delay
Thread.Sleep(2000);
});
}
materialPlanModel.data = skuInfoList;
// 将要发送的数据序列化为JSON格式
var jsonContent = JsonConvert.SerializeObject(materialPlanModel);
LogHelper.instance.log.Info("给WCS同步计划>>"+ jsonContent);
RestHelper restClient = new RestHelper();
var response = await restClient.PostAsync(apiUrl, jsonContent);
WcsSyncResult result = Utils.DeJson<WcsSyncResult>(response);
//Console.WriteLine(response);
if (result.message.ToLower().Equals("ok"))
catch (Exception ex)
{
//更新湿料计划同步状态
var updatestatus = userDbWareHouse.UpdateSycnFlag(workorderID);
if (!updatestatus)
LogHelper.instance.log.Info("更新湿料计划同步状态失败!");
else
CustomMessageBox.Show("同步湿料计划失败!>>>>" + ex.Message, CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning, 2000);
}
finally
{
Dispatcher.Invoke(() =>
{
// Hide loading indicator
jindu.Visibility = Visibility.Collapsed;
GetWorkOrder();
}
});
}
else
{
CustomMessageBox.Show("开始工单失败!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
}
}
private void InitShiftInfo()
{
DataTable dt = formingMachineService.GetShiftList();

@ -2,13 +2,16 @@
<ConnectionConfig>
<Recommand>强烈建议:对数据库以及本软件的参数更改,不要在此页进行.可以通过系统配置页进行更新.</Recommand>
<!--服务器上的业务数据库--><!--
--><!--<MESNetClientConnectionString>vadMWi9D6ZBkwIr78LoLmGwiSCvVnpY3nMB7IyQlxFiV2OD5s5WUgOabwGwWK3THmyUqdarOD4hLgFIvnCg0Z5JcMnCcII6fP2O7usaxD2yxms2iG3eLDUbqRzra4aRVWyptaS06VoI5ijFvcRfLsDJTcpjMhCY6BLuczFcXp04=</MESNetClientConnectionString>--><!--
-->
<MESNetClientConnectionString>vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlF0tM4FO8qPh090fSbocpFrq1jWXNjwNnL+PpPtMzMa3twenC59knc+hzG9+/BpVUziKe0re5+K7EarPL+O+z1yYkea4KSxvd0pYaBws8NBUfRakxq8PBtNc1SFWCuPGjfGL/ZHZr/yKO3oLzGk4KHKBgHdnI182Gw68ADwmuC5BzxvlYPefyby8TkSEmemNvt81w7QBmU5M=</MESNetClientConnectionString>
<!--
--><!--云数据库--><!--
--><!--<CloudConnectionString>vadMWi9D6ZBkwIr78LoLmGwiSCvVnpY3nMB7IyQlxFiV2OD5s5WUgOabwGwWK3THofFvPL2rHpOvJVIvtz0oZU/NFQyT8KQlbk0rHjUXoU7wgRdUumDJ1SeyBo9i02eVJXgQThZLtJ4i8onuEvQtnfNObn1j0jgO</CloudConnectionString>-->
-->
<CloudConnectionString>vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlF0tM4FO8qPh090fSbocpFrq1jWXNjwNnXgKYRJ9zN5oAHgVngDpmr/dw8Hc1dHuNE73NlxQdTq/+57SfWg+Ya5uD7N8RaXKNRAP0mCGTNtIXcAyKOR1JdH+n1t3euTba</CloudConnectionString>
<!--本地的业务数据库-->
<MESClientConnectionString>vadMWi9D6ZBkwIr78LoLmGwiSCvVnpY3nMB7IyQlxFiV2OD5s5WUgOabwGwWK3THofFvPL2rHpOvJVIvtz0oZU/NFQyT8KQlbk0rHjUXoU7wgRdUumDJ1RrSFmIjPm8S</MESClientConnectionString>
<!--榄菊业务数据库-->
<MESNetClientConnectionString>vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlHbduXNDkc8suJwqe10me6ktk8XD3QU91w41/fcxqaq/+4SEgJrXDqR11H6yLI6j0e+twOEf+dgxO2izAFRQ8gHi3LlPP+MhoPB53b/3a/Jd77lDX8gemUvFsAcxEIF0V/c/nkoIAT6M+WIrSSS1icw6HuVSEjGl1zPqinhBhfvehu5cxP02aD/dmOZJEXtBdPUgLuwVFLRI=</MESNetClientConnectionString>
<!--<MESNetClientConnectionString>vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlHbduXNDkc8suJwqe10me6ktk8XD3QU91w41/fcxqaq/+4SEgJrXDqR11H6yLI6j0e+twOEf+dgxO2izAFRQ8gHi3LlPP+MhoPB53b/3a/Jd77lDX8gemUvFsAcxEIF0V/c/nkoIAT6M+WIrSSS1icw6HuVSEjGl1zPqinhBhfvehu5cxP02aD/dmOZJEXtBdPUgLuwVFLRI=</MESNetClientConnectionString>-->
<!--榄菊云数据库-->
<CloudConnectionString>vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlHbduXNDkc8suJwqe10me6ktk8XD3QU91ML11cYCqHcHmTXJFsNQamIbW3UEpkjgNPUcBwRfgP6AWftvk9YFyv7y7/6nzX/c+6z6xMDIdcjYVvfteU+7YtOQhJXTfF5ScosAA0GliBfD8dWAunW+ZCos5LemAj2xb2wvvCxlbnrof8IunWslCaBEAGrdC/KhE0qEfNbxydwc=</CloudConnectionString>
<!--<CloudConnectionString>vadMWi9D6ZC3usVUY51rbTRH8TjL6CxlHbduXNDkc8suJwqe10me6ktk8XD3QU91ML11cYCqHcHmTXJFsNQamIbW3UEpkjgNPUcBwRfgP6AWftvk9YFyv7y7/6nzX/c+6z6xMDIdcjYVvfteU+7YtOQhJXTfF5ScosAA0GliBfD8dWAunW+ZCos5LemAj2xb2wvvCxlbnrof8IunWslCaBEAGrdC/KhE0qEfNbxydwc=</CloudConnectionString>-->
</ConnectionConfig>

@ -1,4 +1,4 @@
#pragma checksum "..\..\..\..\Views\LanJu_Prepare.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "2215B60EFC3C101766D87000765EE4605230CBAFD6FAE8E2E0A67863E548589E"
#pragma checksum "..\..\..\..\Views\LanJu_Prepare.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "929CF6E091A5BFA67338C66C86D79EF5760134602FAA54C40B7D749E60225FD7"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
@ -87,6 +87,14 @@ namespace XGL.Views {
#line hidden
#line 406 "..\..\..\..\Views\LanJu_Prepare.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ProgressBar jindu;
#line default
#line hidden
#line 409 "..\..\..\..\Views\LanJu_Prepare.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.DataGrid WorkOrder;
@ -178,6 +186,9 @@ namespace XGL.Views {
#line hidden
return;
case 7:
this.jindu = ((System.Windows.Controls.ProgressBar)(target));
return;
case 8:
this.WorkOrder = ((System.Windows.Controls.DataGrid)(target));
#line 422 "..\..\..\..\Views\LanJu_Prepare.xaml"
@ -205,7 +216,7 @@ namespace XGL.Views {
void System.Windows.Markup.IStyleConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 8:
case 9:
#line 542 "..\..\..\..\Views\LanJu_Prepare.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Flow_Click);
@ -213,7 +224,7 @@ namespace XGL.Views {
#line default
#line hidden
break;
case 9:
case 10:
#line 549 "..\..\..\..\Views\LanJu_Prepare.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SOP_Click);
@ -221,7 +232,7 @@ namespace XGL.Views {
#line default
#line hidden
break;
case 10:
case 11:
#line 556 "..\..\..\..\Views\LanJu_Prepare.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Material_Click);

@ -1,4 +1,4 @@
#pragma checksum "..\..\..\..\Views\LanJu_Prepare.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "2215B60EFC3C101766D87000765EE4605230CBAFD6FAE8E2E0A67863E548589E"
#pragma checksum "..\..\..\..\Views\LanJu_Prepare.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "929CF6E091A5BFA67338C66C86D79EF5760134602FAA54C40B7D749E60225FD7"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
@ -87,6 +87,14 @@ namespace XGL.Views {
#line hidden
#line 406 "..\..\..\..\Views\LanJu_Prepare.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ProgressBar jindu;
#line default
#line hidden
#line 409 "..\..\..\..\Views\LanJu_Prepare.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.DataGrid WorkOrder;
@ -178,6 +186,9 @@ namespace XGL.Views {
#line hidden
return;
case 7:
this.jindu = ((System.Windows.Controls.ProgressBar)(target));
return;
case 8:
this.WorkOrder = ((System.Windows.Controls.DataGrid)(target));
#line 422 "..\..\..\..\Views\LanJu_Prepare.xaml"
@ -205,7 +216,7 @@ namespace XGL.Views {
void System.Windows.Markup.IStyleConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 8:
case 9:
#line 542 "..\..\..\..\Views\LanJu_Prepare.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Flow_Click);
@ -213,7 +224,7 @@ namespace XGL.Views {
#line default
#line hidden
break;
case 9:
case 10:
#line 549 "..\..\..\..\Views\LanJu_Prepare.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SOP_Click);
@ -221,7 +232,7 @@ namespace XGL.Views {
#line default
#line hidden
break;
case 10:
case 11:
#line 556 "..\..\..\..\Views\LanJu_Prepare.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Material_Click);

@ -0,0 +1,48 @@
using HandyControl.Tools.Extension;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace XGLFinishPro.Tools
{
public class ShiftConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value.ToString().IsNullOrEmpty())
{
return "未发起检测";
}
else if (value.Equals("0"))
{
return "待检测";
}
else if (value.Equals("1"))
{
return "监测中";
}
else if (value.Equals("2"))
{
return "检测完成";
}
else if(value.Equals("5"))
{
return "白班";
}
else
{
return "夜班";
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
// 如果需要双向绑定,也需要实现 ConvertBack 方法
throw new NotImplementedException();
}
}
}

@ -89,7 +89,8 @@ namespace XGLFinishPro.Views
selectedRow = _selectedRow;
_deviceCode = deviceCode;
this._workOrdercode = selectedRow["workorder_code"].ToString();
this.lbCurrOrderNo.Content = selectedRow["workorder_code"].ToString();
string orderNumber = selectedRow["workorder_code_sap"].ToString();
this.lbCurrOrderNo.Content = orderNumber.TrimStart('0');
this._workOrderId = selectedRow["workorder_id"].ToString();
object obi = selectedRow["batch_quantity"];
@ -386,7 +387,7 @@ namespace XGLFinishPro.Views
{
try
{
var getorder = formingMachineService.Getorderworkorder(lbCurrOrderNo.Content.ToString());
var getorder = formingMachineService.Getorderworkorder(selectedRow["workorder_code"].ToString());
var eqment = formingMachineService.GetWorkShop(Utils.GetAppSetting("DeviceCode"));
createCheckProductTask createCheckProductTask = new createCheckProductTask();
createCheckProductTask.factoryCode = Utils.GetAppSetting("SiteCode");//工厂编码
@ -405,7 +406,7 @@ namespace XGLFinishPro.Views
if (eqment != null && eqment.Rows.Count > 0)
{
createCheckProductTask.carName = eqment.Rows[0]["workshop_name"].ToString();//车间名称
createCheckProductTask.carName = eqment.Rows[0]["workshop_code"].ToString();//车间编码
createCheckProductTask.carCode = eqment.Rows[0]["workshop_code"].ToString();//车间编码
}
createCheckProductTask.produceDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//生产时间格式yyyy-MM-dd HH:mm:ss
createCheckProductTask.checkLoc = Utils.GetAppSetting("DeviceCode");//检测地点
@ -413,6 +414,7 @@ namespace XGLFinishPro.Views
string apiUrl = formingMachineService.InterfaceUrl("BatcInspection");
// 将请求参数序列化为 JSON 格式
string requestBodyJson = Newtonsoft.Json.JsonConvert.SerializeObject(createCheckProductTask);
LogHelper.instance.log.Info("requestBodyJson批次检验任务日志"+ requestBodyJson);
// 发送 HTTP POST 请求
using (var httpClient = new HttpClient())
{
@ -424,6 +426,7 @@ namespace XGLFinishPro.Views
{
// 获取响应内容
string responseBody = response.Content.ReadAsStringAsync().Result; // 或者 .Wait();
CustomMessageBox.Show("批次成品检验任务创建成功!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning, 2000);
}
else
{
@ -536,7 +539,10 @@ namespace XGLFinishPro.Views
private void GetFatherOrderUserCount()
{
string workOrder = this.lbCurrOrderNo.Content.ToString();
//2024-06-17处理报工界面工单号问题
//string workOrder = this.lbCurrOrderNo.Content.ToString();
//DataTable dt = formingMachineService.GetSubOrderCount(workOrder);
//if (dt == null)
//{
@ -548,7 +554,7 @@ namespace XGLFinishPro.Views
// this.txtFOUserCount.Text = "4";
// this.txtFOUserCount.IsEnabled = false;
//}
GetSubOrder(workOrder);
GetSubOrder(this._workOrdercode);
//string workOrder = this.lbCurrOrderNo.Content.ToString();
//DataTable dt = formingMachineService.GetFatherOrderUserCount(workOrder);
//if (dt == null)
@ -933,8 +939,8 @@ namespace XGLFinishPro.Views
}
double rate = 0;
string workOrder = this.lbCurrOrderNo.Content.ToString();
DataTable dt = formingMachineService.GetOrderReportSumQty(workOrder);
//string workOrder = this.lbCurrOrderNo.Content.ToString();
DataTable dt = formingMachineService.GetOrderReportSumQty(this._workOrdercode);
//如果没报过工,按照只有一个批次处理
if (dt == null || dt.Rows.Count == 0)
{

@ -17,7 +17,7 @@
<convert:OrderInOutConverter x:Key="TaskCodeConverter"/>
<convert:BtnBackGroundColorConverter x:Key="ButtonContentToBackgroundColorConverter"/>
<convert:ParentOrderConverter x:Key="ParentOrderConverter"/>
<convert:ShiftConvert x:Key="ShiftValueConvert" />
<Style x:Key="CustomCellStyle" TargetType="DataGridCell">
<Setter Property="Foreground" Value="Black" />
<Setter Property="TextBlock.TextAlignment" Value="Center" />
@ -543,8 +543,8 @@ Background="#F2F3F5"
<DataGridTextColumn Width="100" Header="生产顺序" Binding="{Binding sort_no}" />
<DataGridTextColumn Width="250" Header="计划时间" Binding="{Binding plan_time, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" />
<DataGridTextColumn Width="250" Header="单位" Binding="{Binding unit}" />
<DataGridTextColumn Width="200" Header="创建批次成品检验时间" Binding="{Binding create_time}" />
<DataGridTextColumn Width="200" Header="批次成品检验结果" Binding="{Binding check_status}" />
<DataGridTextColumn Width="200" Header="创建批次成品检验时间" Binding="{Binding create_time, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" />
<DataGridTextColumn Width="200" Header="批次成品检验结果" Binding="{Binding check_status ,Converter={StaticResource ShiftValueConvert}}" />
<!--<DataGridTextColumn Width="340" Header="流转码" Binding="{Binding work_batch_code}" />-->
<!--<DataGridTextColumn Width="60" Header="出入" Binding="{Binding taskcode,Converter={StaticResource TaskCodeConverter}}"/>-->
@ -617,6 +617,20 @@ Background="#F2F3F5"
FontSize="28"
Text="暂停记录" />
</Button>
<Button
Width="196"
Height="69"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Margin="10,0,0,0"
Background="White"
Click="Button_Click_2">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="28"
Text="首检记录" />
</Button>
<!--<Button
Width="196"
Height="69"

@ -97,8 +97,23 @@ namespace XGLFinishPro.Views
Content = lanJu_Paused
};
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
firstInspection lanJu_Paused = new firstInspection();
Window1.Content = new Frame
{
Content = lanJu_Paused
};
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
firstInspection firstInspection =new firstInspection();
Window1.Content = new Frame
{
Content = firstInspection
};
}
private void UCOperator_Loaded(object sender, RoutedEventArgs e)
{
timerDeciveState.Interval = Utils.GetAppSetting("GetDeviceStateInterval") == "" ? 10000 : Convert.ToInt32(Utils.GetAppSetting("GetDeviceStateInterval"));
@ -191,24 +206,8 @@ namespace XGLFinishPro.Views
{
foreach (DataRow row in dt.Rows)
{
// 获取当前行的 check_status 字段的值
string checkStatus = row["check_status"] as string;
// 根据不同的情况修改值
if (checkStatus == "Y")
{
row["check_status"] = "合格";
}
else if (checkStatus == "N")
{
row["check_status"] = "不合格";
}
else if (string.IsNullOrEmpty(checkStatus))
{
row["check_status"] = "无";
}
// 如果还有其他情况需要处理,可以继续添加 elseif 分支
row["workorder_code_sap"] = row["workorder_code_sap"].ToString().TrimStart('0');
// 更新当前行的值
dt.AcceptChanges();
}
@ -314,24 +313,8 @@ namespace XGLFinishPro.Views
{
foreach (DataRow row in dt.Rows)
{
// 获取当前行的 check_status 字段的值
string checkStatus = row["check_status"] as string;
// 根据不同的情况修改值
if (checkStatus == "Y")
{
row["check_status"] = "合格";
}
else if (checkStatus == "N")
{
row["check_status"] = "不合格";
}
else if (string.IsNullOrEmpty(checkStatus))
{
row["check_status"] = "无";
}
// 如果还有其他情况需要处理,可以继续添加 elseif 分支
row["workorder_code_sap"] = row["workorder_code_sap"].ToString().TrimStart('0');
// 更新当前行的值
dt.AcceptChanges();
}
@ -659,6 +642,11 @@ namespace XGLFinishPro.Views
{
if (status != "")
{
if (status.Equals("w2"))
{
CustomMessageBox.Show("该工单已经活动中,请勿再次开始工单!!!");
return;
}
string st = status.Equals("w1") ? "未派发" : status.Equals("w3") ? "已报工" : status.Equals("w0") ? "未派发" : "已暂停";
LogHelper.instance.log.Info("该工单不符合条件,请检查工单状态,当前工单状态为:" + st);
CustomMessageBox.Show("该工单不符合条件,请检查工单状态,当前工单状态为:" + st, CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
@ -972,6 +960,8 @@ namespace XGLFinishPro.Views
punchCard punchCard = new punchCard();
punchCard.ShowDialog();
}
}
public class ReportWorkModel
{

@ -101,7 +101,7 @@
HorizontalAlignment="Left"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
<!--<Button
Width="196"
Height="69"
HorizontalAlignment="Left"
@ -113,7 +113,7 @@
VerticalAlignment="Center"
FontSize="28"
Text="当前人员" />
</Button>
</Button>-->
<Button
Width="196"
Height="69"

@ -28,7 +28,7 @@ namespace XGLFinishPro.Views
FinishProdDBService finishProdDBService = new FinishProdDBService();
string deviceCode = Utils.GetAppSetting("DeviceCode");
public static LanJu_User lanJu_User;
Frame frame = new Frame() { Content = new Views.LanJu_NowUser() };
Frame frame = new Frame() { Content = new Views.LanJu_UserRecord() };
public enum WindowID
{
frame
@ -85,15 +85,17 @@ namespace XGLFinishPro.Views
DataTable dt = finishProdDBService.GetExistAttendanceRecord(deviceCode);
if (dt != null && dt.Select("user_id = '" + userCode + "' AND end_time IS NULL").Length > 0)
{
bool isSucc = finishProdDBService.UpdateAttendanceRecord(userCode, deviceCode);
if (isSucc)
{
CustomMessageBox.Show("打卡成功,再见!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Success,1500);
Now_Click(null, null);
txtOnWorkUserID.Text = "";
txtOnWorkUserID.Focus();
return;
}
//2024-06-21陈恒杰说一天只需要一次打卡
CustomMessageBox.Show("一天只能打卡一次谢谢!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Success, 1500);
//bool isSucc = finishProdDBService.UpdateAttendanceRecord(userCode, deviceCode);
//if (isSucc)
//{
// CustomMessageBox.Show("打卡成功,再见!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Success,1500);
// Record_Click(null, null);
// txtOnWorkUserID.Text = "";
// txtOnWorkUserID.Focus();
// return;
//}
}
else
{
@ -103,7 +105,7 @@ namespace XGLFinishPro.Views
CustomMessageBox.Show("打卡成功,祝您工作愉快!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Success,1500);
txtOnWorkUserID.Text = "";
txtOnWorkUserID.Focus();
Now_Click(null, null);
Record_Click(null, null);
}
else
{

@ -63,8 +63,9 @@
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="350" Header="打卡时间" Binding="{Binding start_time, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}"/>
<DataGridTextColumn Width="350" Header="结束时间" Binding="{Binding end_time, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}"/>
<DataGridTextColumn Width="350" Header="时长(小时)" Binding="{Binding work_hours}"/>
<!--<DataGridTextColumn Width="350" Header="结束时间" Binding="{Binding end_time, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}"/>-->
<!--<DataGridTextColumn Width="350" Header="时长(小时)" Binding="{Binding work_hours}"/>-->
<DataGridTextColumn Width="*" Header="用户编码" Binding="{Binding user_id}"/>
<DataGridTextColumn Width="*" Header="人员" Binding="{Binding user_name}"/>
<DataGridTextColumn Width="*" Header="工作区间" Binding="{Binding attendance_time}"/>
</DataGrid.Columns>

@ -378,6 +378,7 @@
<DataGridTextColumn Width="130*" Header="用户编码" IsReadOnly="true" Binding="{Binding user_name}"/>
<DataGridTextColumn Width="190*" Header="用户名称" IsReadOnly="true" Binding="{Binding nick_name}"/>
<DataGridTextColumn Width="190*" Header="报工总数" Binding="{Binding number}"/>
<DataGridTextColumn Width="190*" Header="工时" Binding="{Binding attr2}"/>
</DataGrid.Columns>
</DataGrid>

@ -415,6 +415,7 @@ namespace XGLFinishPro.Views
//prodDBService.DelUnitPriceData(_workOrderCode, _childprocessCode, _deviceCode);
}
string name = "";
string Gong = "";
string sapCode = _deviceCode;//ds.Tables[0].Rows[0][0].ToString();
foreach (sys_user item in checkedRowsCache)
{
@ -429,16 +430,32 @@ namespace XGLFinishPro.Views
name = name + "," + item.nick_name;
}
}
string sql = prodDBService.GetCreateUnitPriceInfo(item, _workOrderCode, _sapWorkOrderCode, _productCode, _productName, _childprocessCode, _childprocessName, sapCode, item.number,LoginUser.WorkDate);
if (item.attr2.IsNullOrEmpty() || item.attr2 == "0")
{
if (Gong.IsNullOrEmpty())
{
Gong = item.nick_name;
}
else
{
Gong = Gong + "," + item.nick_name;
}
}
string sql = prodDBService.GetCreateUnitPriceInfo(item, _workOrderCode, _sapWorkOrderCode, _productCode, _productName, _childprocessCode, _childprocessName, sapCode, item.number,LoginUser.WorkDate,item.attr2);
CreateUnitPriceSqlList.Add(sql);
}
if (!name.IsNullOrEmpty())
{
CustomMessageBox.Show($"当前选择的人员[{name}]报工总数为空或者为0,请填写数量后再提交!!!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
CustomMessageBox.Show($"当前选择的人员[{name}][>报工总数<]为空或者为0,请填写数量后再提交!!!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
return;
}
if (!Gong.IsNullOrEmpty())
{
CustomMessageBox.Show($"当前选择的人员[{Gong}][>工时<]为空或者为0,请填写数量后再提交!!!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Warning);
return;
}
//之前如果已经插入了,先删除,
//暂时不更新工单状态
//string updateSql = prodDBService.GetUpdateUnitPriceSql(_workOrderCode);
//CreateUnitPriceSqlList.Add(updateSql);

@ -0,0 +1,78 @@
<UserControl x:Class="XGLFinishPro.Views.firstInspection"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:XGLFinishPro.Views"
xmlns:convert="clr-namespace:XGLFinishPro.Tools"
xmlns:hc="https://handyorg.github.io/handycontrol"
mc:Ignorable="d"
Width="1900"
Height="280"
Loaded="UserControl_Loaded">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<hc:ThemeResources />
<hc:Theme />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="CustomCellStyle" TargetType="DataGridCell">
<Setter Property="Foreground" Value="Black" />
<Setter Property="TextBlock.TextAlignment" Value="Center" />
<Setter Property="TextBlock.FontSize" Value="22" />
<Setter Property="BorderThickness" Value="0 0 1 1" />
<Setter Property="BorderBrush" Value="LightGray" />
</Style>
<convert:MyValueConverter x:Key="MyConverter"/>
<convert:OrderInOutConverter x:Key="TaskCodeConverter"/>
<convert:BtnBackGroundColorConverter x:Key="ButtonContentToBackgroundColorConverter"/>
<convert:ShiftConvert x:Key="ShiftValueConvert" />
</ResourceDictionary>
</UserControl.Resources>
<Grid
Width="1920"
Height="280"
HorizontalAlignment="Center"
VerticalAlignment="Top">
<DataGrid
x:Name="datagrid1"
Width="1870"
MinHeight="220"
CellStyle="{StaticResource CustomCellStyle}"
IsReadOnly="True"
CanUserAddRows="False"
HorizontalAlignment="Center"
LoadingRow="datagrid1_LoadingRow"
HeadersVisibility="Column"
VerticalAlignment="Top"
AutoGenerateColumns="False">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="Height" Value="48" />
<Setter Property="FontSize" Value="20" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Background" Value="#2B7EE6" />
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTemplateColumn Header=" 序号" Width="50" MinWidth="10" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="300" Header="产品编码" Binding="{Binding product_code}"/>
<DataGridTextColumn Width="450" Header="产品名称" Binding="{Binding product_name}"/>
<DataGridTextColumn Width="400" Header="批次号" Binding="{Binding batch_code}"/>
<DataGridTextColumn Width="200" Header="班次" Binding="{Binding shift_id ,Converter={StaticResource ShiftValueConvert}}"/>
<DataGridTextColumn Width="200" Header="质检结果" Binding="{Binding qc_result ,Converter={StaticResource MyConverter}}"/>
<DataGridTextColumn Width="240" Header="首检完成时间" Binding="{Binding update_time , StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>

@ -0,0 +1,57 @@
using CommonFunc.Tools;
using CommonFunc;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using XGL.Dats.DBServiceFinishProd;
namespace XGLFinishPro.Views
{
/// <summary>
/// firstInspection.xaml 的交互逻辑
/// </summary>
public partial class firstInspection : UserControl
{
FinishProdDBService userDbWareHouse = new FinishProdDBService();
public firstInspection()
{
InitializeComponent();
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
GetInfo();
}
private void GetInfo()
{
try
{
DataTable dt = userDbWareHouse.GetOperationShouJian(LoginUser.WorkDate, Utils.GetAppSetting("DeviceCode"));
if (dt == null) return;
this.datagrid1.ItemsSource = dt.DefaultView;
}
catch (Exception ex)
{
LogHelper.instance.log.Error("获取完成记录信息时发生异常:" + ex.Message);
}
}
private void datagrid1_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.Header = (e.Row.GetIndex() + 1).ToString();
}
}
}

@ -326,6 +326,7 @@
<Compile Include="Tools\OrderInOutConverter.cs" />
<Compile Include="Tools\ParentOrderConverter.cs" />
<Compile Include="Tools\SerialHelper.cs" />
<Compile Include="Tools\ShiftConvert.cs" />
<Compile Include="Tools\SyncFlagColorConverter.cs" />
<Compile Include="Tools\NetStatusToColorConvert.cs" />
<Compile Include="Tools\MyValueConverter.cs" />
@ -414,6 +415,9 @@
<Compile Include="Views\DryingRoomUC.xaml.cs">
<DependentUpon>DryingRoomUC.xaml</DependentUpon>
</Compile>
<Compile Include="Views\firstInspection.xaml.cs">
<DependentUpon>firstInspection.xaml</DependentUpon>
</Compile>
<Compile Include="Views\HBLogWin.xaml.cs">
<DependentUpon>HBLogWin.xaml</DependentUpon>
</Compile>
@ -668,6 +672,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Views\firstInspection.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Views\HBLogWin.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>

Loading…
Cancel
Save