整理提交

master
zhaojian 1 year ago
parent ee4f07277e
commit 430fe3640b

@ -94,7 +94,21 @@ namespace XGL.Dats.DBServiceFinishProd
/// <returns></returns>
public DataTable GetUserInfoFromCloudServer(string userID)
{
string sql = $@"SELECT user_name,nick_name,sex FROM [dbo].[sys_user] where del_flag = '0' and pe_snr like '%{userID}%'";
string sql = $@"SELECT
su.user_name,
su.nick_name,
su.sex,
sp.post_name
FROM
sys_user su
LEFT JOIN
sys_post sp
ON
su.post = sp.post_code
WHERE
su.del_flag = '0'
AND su.pe_snr LIKE '{userID}';
";
DataSet dtset = Utils.cloudDBHelper.getDataSet(sql);
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
{
@ -109,8 +123,21 @@ namespace XGL.Dats.DBServiceFinishProd
/// <returns></returns>
public DataTable GetUserCodeServer(string userID)
{
string sql = $@"SELECT user_name,nick_name,sex FROM [dbo].[sys_user] where del_flag = '0' and user_name = '{userID}'";
DataSet dtset = Utils.cloudDBHelper.getDataSet(sql);
string sql = $@"SELECT
su.user_name,
su.nick_name,
su.sex,
sp.post_name
FROM
sys_user su
LEFT JOIN
sys_post sp
ON
su.post = sp.post_code
WHERE
su.del_flag = '0'
AND su.user_name = '{userID}';
"; DataSet dtset = Utils.cloudDBHelper.getDataSet(sql);
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
{
return dtset.Tables[0];
@ -134,17 +161,17 @@ namespace XGL.Dats.DBServiceFinishProd
return null;
}
public bool InsertAttendanceRecord(string userID, string userName, string sex, string deviceCode)
public bool InsertAttendanceRecord(string userID, string userName, string sex,string post, string deviceCode)
{
string attendanceTime = LoginUser.Start_Time + "-" + LoginUser.End_Time;
string sql = $@" INSERT INTO [dbo].[mes_attendance_records]
([id], [user_id], [user_name], [attendance_status], [sex], [age],
[id_number], [start_time], [start_addr], [end_time], [end_addr], [attendance_time],
[attendance_date], [work_hours], [create_time])
[attendance_date], [work_hours], [create_time],[post])
VALUES
('{Common.GetUUID()}', '{userID}', '{userName}', '', '{sex}', 18,
null, GetDate(), '{deviceCode}', null, null, '{attendanceTime}',
CONVERT(VARCHAR(10), GetDate() , 120), 0, GetDate());";
CONVERT(VARCHAR(10), GetDate() , 120), 0, GetDate(),'{post}');";
int ret = Utils.netClientDBHelper.executeUpdate(sql);
return ret > 0 ? true : false;
}
@ -187,6 +214,7 @@ WHERE user_id = '{userID}'
attendance_date,
work_hours,
create_time,
post,
CONVERT(DECIMAL(12, 2),
CASE
WHEN end_time IS NOT NULL THEN DATEDIFF(MINUTE, start_time, end_time) / 60.00
@ -708,9 +736,9 @@ where 1=1 and
/// <returns></returns>
public DataTable GetUnitPriceData(string deviceCode ,string sheredata)
{
string sql = $@"select [workorder_code], [workorder_code_sap], [product_name], SUBSTRING([product_code], 8, LEN(product_code)) as product_code, [user_name], [nick_name], [childprocess_code], [childprocess_name] ,[create_by], [create_time], [line_code] ,[attr1],[attr2]
string sql = $@"select [workorder_code], [workorder_code_sap], [product_name], SUBSTRING([product_code], 8, LEN(product_code)) as product_code, [user_name], [nick_name], [childprocess_code], [childprocess_name] ,[create_by], [create_time], [post],[line_code] ,[attr1],[attr2]
from mes_unitprice_report
where line_code = '{deviceCode}' AND create_time BETWEEN '{sheredata} 00:00:00' AND '{sheredata} 23:59:59' ORDER BY childprocess_code,create_time";
where line_code = '{deviceCode}' AND work_order_product_date BETWEEN '{sheredata} 00:00:00' AND '{sheredata} 23:59:59' ORDER BY childprocess_code,create_time";
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
@ -762,20 +790,20 @@ 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,string attr2)
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 post)
{
string sql = $@"INSERT INTO [dbo].[mes_unitprice_report] (
[id],[workorder_code], [workorder_code_sap], [product_name], [product_code],
[user_name], [nick_name], [childprocess_code], [childprocess_name], [attr1],
[attr2], [attr3], [create_by], [create_time], [update_by],
[update_time], [remark] ,[line_code]
[update_time], [remark] ,[post],[line_code],[work_order_product_date]
)
VALUES
(
'{Common.GetUUID()}', '{workorderCode}','{sapWorkorderCode}', '{productName}', '{productCode}',
N'{item.user_name}', N'{item.nick_name}', N'{childProcessCode}', N'{childProcessName}',' {number}',
{attr2}, NULL, '{LoginUser.UserName}', '{credata} 00:00:00', NULL,
NULL, NULL,'{deviceCode}' );";
{attr2}, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("G")}', NULL,
NULL, NULL,'{post}','{deviceCode}','{credata} 00:00:00' );";
return sql;
}
@ -795,7 +823,8 @@ where line_code = '{deviceCode}' and CONVERT(VARCHAR(10), Create_time , 120) = C
public List<sys_user> GetOnWorkUserList(string deviceCode,string shereDate)
{
string sql = $"WITH RankedRecords AS (\r\n SELECT \r\n user_id as user_name,\r\n user_name as nick_name,\r\n sex,\r\n age,\r\n create_time,\r\n ROW_NUMBER() OVER (PARTITION BY user_name ORDER BY create_time DESC) as rn\r\n FROM [dbo].[mes_attendance_records]\r\n WHERE start_addr = '{deviceCode}' \r\n AND create_time BETWEEN '{shereDate} 00:00:00' AND '{shereDate} 23:59:59'\r\n)\r\nSELECT \r\n user_name,\r\n nick_name,\r\n sex,\r\n age,\r\n create_time\r\nFROM RankedRecords\r\nWHERE rn = 1\r\nORDER BY create_time DESC;";
string sql = $"\r\n SELECT \r\n user_id as user_name,\r\n user_name as nick_name,\r\n sex,\r\n age,\r\n\t\t\t\tpost, \r\n create_time FROM mes_attendance_records WHERE start_addr = '{deviceCode}' \r\n AND create_time BETWEEN '{shereDate} 00:00:00' AND '{shereDate} 23:59:59' ORDER BY create_time DESC;";
// string sql = $"WITH RankedRecords AS (\r\n SELECT \r\n user_id as user_name,\r\n user_name as nick_name,\r\n sex,\r\n post,\r\n age,\r\n create_time,\r\n ROW_NUMBER() OVER (PARTITION BY user_name ORDER BY create_time DESC) as rn\r\n FROM [dbo].[mes_attendance_records]\r\n WHERE start_addr = '{deviceCode}' \r\n AND create_time BETWEEN '{shereDate} 00:00:00' AND '{shereDate} 23:59:59'\r\n)\r\nSELECT \r\n user_name,\r\n nick_name,\r\n post, sex,\r\n age,\r\n create_time\r\nFROM RankedRecords\r\nWHERE rn = 1\r\nORDER BY create_time DESC;";
DataTable dt = Utils.netClientDBHelper.getDataSet(sql).Tables[0];

@ -27,7 +27,10 @@ namespace XGL.Models.Model
/// 编码
/// </summary>
public int user_id { get; set; }
/// <summary>
/// 岗位
/// </summary>
public string post { get; set; }
/// <summary>
/// 部门编码
/// </summary>

@ -10,7 +10,7 @@
<!--车间编码-->
<add key="SiteCode" value="1000" />
<!--设备编码-->
<add key="DeviceCode" value="XL10" />
<add key="DeviceCode" value="XL01" />
<!--上位机类型 0:工单准备1成型机\shoupei2烘房,3:人员登录,4:称重系统-->
<add key="ClientMode" value="1" />

@ -237,11 +237,11 @@
<TextBox x:Name="txtQuantity" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="24" Width="260" TextChanged="txtQuantity_TextChanged"></TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Row="2">
<Label Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="24" Content="工 时:"></Label>
<Label Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="24" Content="辅助工时:"></Label>
<TextBox x:Name="txtWorkTime" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="24" Width="260" TextChanged="txtWorkTime_TextChanged"></TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Row="2" Grid.Column="1">
<Label Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="24" Content="人 数:"></Label>
<Label Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="24" Content="辅助人数:"></Label>
<TextBox x:Name="txtUserCount" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="24" Width="260" TextChanged="txtUserCount_TextChanged"></TextBox>
</StackPanel>

@ -655,8 +655,14 @@ namespace XGLFinishPro.Views
lbl.FontSize = 24;
lbl.VerticalAlignment = VerticalAlignment.Center;
lbl.HorizontalAlignment = HorizontalAlignment.Left;
lbl.Content = sort + "层工时:";
if (sort=="一")
{
lbl.Content = "半品工单工时:";
}else if (sort == "二")
{
lbl.Content = "子半品工单工时:";
}
TextBox textBox = new TextBox();
textBox.FontSize = 24;
textBox.Width = 260;
@ -669,7 +675,15 @@ namespace XGLFinishPro.Views
lblUserCount.FontSize = 24;
lblUserCount.VerticalAlignment = VerticalAlignment.Center;
lblUserCount.HorizontalAlignment = HorizontalAlignment.Left;
lblUserCount.Content = sort + "层人数:";
if (sort == "一")
{
lblUserCount.Content = "半品工单人数:";
}
else if (sort == "二")
{
lblUserCount.Content = "子半品工单工时人数:";
}
myStackPanelWorkTime.Children.Add(lbl);
myStackPanelWorkTime.Children.Add(textBox);
Grid.SetRow(myStackPanelWorkTime, 3 + sortNo);

@ -1,5 +1,6 @@
using CommonFunc;
using CommonFunc.Tools;
using HandyControl.Tools.Extension;
using System;
using System.Collections.Generic;
using System.Data;
@ -7,6 +8,7 @@ using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Web.Services.Description;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
@ -94,6 +96,7 @@ namespace XGLFinishPro.Views
string userCode = dtUserInfo.Rows[0]["user_name"].ToString();
string userName = dtUserInfo.Rows[0]["nick_name"].ToString();
string sex = dtUserInfo.Rows[0]["sex"].ToString();
string post = dtUserInfo.Rows[0]["post_name"].ToString();
DataTable dt = finishProdDBService.GetExistAttendanceRecord(deviceCode,LoginUser.WorkDate);
if (dt != null && dt.Select($"user_id = '" + userCode + "' AND end_time IS NULL and start_addr='"+ deviceCode + "'").Length > 0)
{
@ -113,7 +116,7 @@ namespace XGLFinishPro.Views
}
else
{
bool isSucc = finishProdDBService.InsertAttendanceRecord(userCode, userName, sex, deviceCode);
bool isSucc = finishProdDBService.InsertAttendanceRecord(userCode, userName,sex, post, deviceCode);
if (isSucc)
{
CustomMessageBox.Show("打卡成功,祝您工作愉快!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Success,1500);
@ -167,6 +170,7 @@ namespace XGLFinishPro.Views
string userCode = dtUserInfo.Rows[0]["user_name"].ToString();
string userName = dtUserInfo.Rows[0]["nick_name"].ToString();
string sex = dtUserInfo.Rows[0]["sex"].ToString();
string post = dtUserInfo.Rows[0]["post_name"].ToString();
DataTable dt = finishProdDBService.GetExistAttendanceRecord(deviceCode,LoginUser.WorkDate);
if (dt != null && dt.Select($"user_id = '" + userCode + "' AND end_time IS NULL and start_addr='" + deviceCode + "'").Length > 0)
{
@ -187,7 +191,7 @@ namespace XGLFinishPro.Views
}
else
{
bool isSucc = finishProdDBService.InsertAttendanceRecord(userCode, userName, sex, deviceCode);
bool isSucc = finishProdDBService.InsertAttendanceRecord(userCode, userName, sex, post, deviceCode);
if (isSucc)
{
CustomMessageBox.Show("打卡成功,祝您工作愉快!", CustomMessageBoxButton.OK, CustomMessageBoxIcon.Success, 1500);

@ -67,6 +67,7 @@
<!--<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 post}"/>
<DataGridTextColumn Width="*" Header="工作区间" Binding="{Binding attendance_time}"/>
<DataGridTemplateColumn Width="180" Header="操作">
<DataGridTemplateColumn.CellTemplate>

@ -396,17 +396,18 @@
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="序号" Width="80" MinWidth="10" IsReadOnly="True">
<DataGridTemplateColumn Header="序号" Width="40" MinWidth="10" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10,0,0,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<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}"/>
<DataGridTextColumn Width="130*" Header="编码" IsReadOnly="true" Binding="{Binding user_name}"/>
<DataGridTextColumn Width="150*" Header="名称" IsReadOnly="true" Binding="{Binding nick_name}"/>
<DataGridTextColumn Width="190*" Header="岗位" IsReadOnly="true" Binding="{Binding post}"/>
<DataGridTextColumn Width="100*" Header="报工数" Binding="{Binding number}"/>
<DataGridTextColumn Width="100*" Header="工时" Binding="{Binding attr2}"/>
</DataGrid.Columns>
</DataGrid>
@ -447,6 +448,7 @@
<DataGridTextColumn Width="100" Header="订单编码" Binding="{Binding workorder_code_sap}"/>
<DataGridTextColumn Width="100" Header="用户编码" Binding="{Binding user_name}"/>
<DataGridTextColumn Width="100" Header="用户名称" Binding="{Binding nick_name}"/>
<DataGridTextColumn Width="100" Header="岗位" Binding="{Binding post}"/>
<DataGridTextColumn Width="150" Header="产品编码" Binding="{Binding product_code}"/>
<DataGridTextColumn Width="200" Header="产品名称" Binding="{Binding product_name}"/>
<DataGridTextColumn Width="80" Header="工序编码" Binding="{Binding childprocess_code}"/>

@ -460,7 +460,7 @@ namespace XGLFinishPro.Views
{
item.attr2 = "0";
}
string sql = prodDBService.GetCreateUnitPriceInfo(item, _workOrderCode, _sapWorkOrderCode, _productCode, _productName, _childprocessCode, _childprocessName, sapCode, item.number,LoginUser.WorkDate,item.attr2);
string sql = prodDBService.GetCreateUnitPriceInfo(item, _workOrderCode, _sapWorkOrderCode, _productCode, _productName, _childprocessCode, _childprocessName, sapCode, item.number,LoginUser.WorkDate,item.attr2,item.post);
CreateUnitPriceSqlList.Add(sql);
}
//if (!name.IsNullOrEmpty())

Loading…
Cancel
Save