|
|
using CommonFunc;
|
|
|
using CommonFunc.Tools;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Data;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
using System.Windows.Controls;
|
|
|
using XGL.Models;
|
|
|
using XGL.Models.Model.FoamingMac;
|
|
|
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
|
|
|
|
|
namespace XGL.Data.DBService
|
|
|
{
|
|
|
public class FormingMachineService
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 获取成型机在产物料信息
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetFormingMachineInfo(string devicecode, string workDate)
|
|
|
{
|
|
|
//过于复杂,给数据库造成了压力,经常死锁
|
|
|
// string sql = $@"SELECT DISTINCT
|
|
|
// ord.workorder_id,
|
|
|
// ord.workorder_code,
|
|
|
// res.OrderCode,
|
|
|
// ord.product_name,
|
|
|
// product_code,
|
|
|
// isnull( car_num, 0 ) AS car_num,
|
|
|
// isnull( plan_time, '1900-01-01 08:00:00' ) AS plan_time,
|
|
|
// ord.status ,
|
|
|
// ord.route_code,
|
|
|
// ord.attr1,
|
|
|
// ord.shift_id ,totalCount,shift.Shift_Desc
|
|
|
//FROM
|
|
|
//pro_order_workorder ord WITH (NOLOCK)
|
|
|
// LEFT JOIN mes_material_transfer_result res WITH (NOLOCK) ON res.OrderCode = ord.workorder_id
|
|
|
// LEFT JOIN pro_wet_material_plan_detail wet WITH (NOLOCK) ON wet.workorder_id = res.OrderCode
|
|
|
// LEFT JOIN pro_rfid_process_detail rfid WITH (NOLOCK) ON rfid.workorder_code = ord.workorder_code
|
|
|
// left join (select count(*) as totalCount,ordercode from mes_material_transfer_result WITH (NOLOCK)
|
|
|
// where CONVERT(VARCHAR(10), update_time , 120) = CONVERT(VARCHAR(10),'{workDate}', 120) and equipmentCode = '{devicecode}' group by OrderCode) tt
|
|
|
//on (tt.ordercode = wet.workorder_id )
|
|
|
// AND rfid.rfid = res.rfid
|
|
|
//LEFT JOIN base_shifts_t shift WITH (NOLOCK) on ord.shift_id = shift.Shift_Id
|
|
|
//WHERE
|
|
|
// CONVERT(VARCHAR(10), wet.plan_time , 120) = CONVERT(VARCHAR(10), '{workDate}', 120 )
|
|
|
// And ord.prod_line_code like '%{devicecode}%' and totalCount is not null
|
|
|
//ORDER BY
|
|
|
// ( isnull( plan_time, '1900-01-01 08:00:00' ) ) DESC";
|
|
|
|
|
|
string sql = $@"SELECT DISTINCT
|
|
|
ord.workorder_id,
|
|
|
ord.workorder_code,
|
|
|
ord.product_name,
|
|
|
product_code,
|
|
|
isnull( car_num, 0 ) AS car_num,
|
|
|
isnull( product_date, '1900-01-01 08:00:00' ) AS plan_time,
|
|
|
ord.status,
|
|
|
ord.route_code,
|
|
|
ord.attr1,
|
|
|
ord.shift_id,
|
|
|
shift.Shift_Desc,'0' as totalCount
|
|
|
FROM
|
|
|
pro_order_workorder ord WITH (NOLOCK)
|
|
|
LEFT JOIN base_shifts_t shift WITH (NOLOCK) on ord.shift_id = shift.Shift_Id
|
|
|
WHERE
|
|
|
CONVERT(VARCHAR(10), ord.product_date , 120) = CONVERT(VARCHAR(10), '{workDate + " 0:00:00"}', 120 )
|
|
|
And ord.prod_line_code like '%{devicecode}%' AND ord.del_flag='0'";
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow item in dtset.Tables[0].Rows)
|
|
|
{
|
|
|
string work0rderID = item["workorder_id"].ToString();
|
|
|
string totalsql = $"SELECT count(*) FROM mes_material_transfer_result result WHERE result.equipmentCode =" +
|
|
|
$" '{devicecode}' AND result.update_time >= ( SELECT TOP 1 create_time FROM mes_changeshift_info WHERE device_code" +
|
|
|
$" = '{devicecode}' ORDER BY create_time DESC ) AND result.rfid_status='1' ;";
|
|
|
// string totalcountSql = $@" select count(*) as totalCount from mes_material_transfer_result WITH (NOLOCK)
|
|
|
//where CONVERT(VARCHAR(10), work_date , 120) = CONVERT(VARCHAR(10),'{workDate}', 120) and equipmentCode = '{devicecode}' and OrderCode = '{work0rderID}' group by OrderCode ";
|
|
|
DataSet dtsetTotalCount = Utils.netClientDBHelper.getDataSet(totalsql);
|
|
|
if (dtsetTotalCount != null && dtsetTotalCount.Tables.Count > 0 && dtsetTotalCount.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
item["totalCount"] = dtsetTotalCount.Tables[0].Rows[0][0];
|
|
|
}
|
|
|
}
|
|
|
return dtset.Tables[0];
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public DataTable GetShiftList()
|
|
|
{
|
|
|
string sql = $@"select shift_id,shift_code,shift_desc,Shift_Start_Time,Shift_End_Time from base_shifts_t where del_flag ='0' ";
|
|
|
|
|
|
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 GetTeamList()
|
|
|
{
|
|
|
string sql = $@"SELECT team_id,team_code,team_desc FROM [dbo].[base_team_t] where del_flag ='0' ";
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取成型机状态
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public string getnumber(string order, string devicecode, string shetl)
|
|
|
{
|
|
|
string sql = $@"SELECT COUNT(*) FROM mes_material_transfer_result WHERE equipmentCode='{order}' and work_date='{devicecode}' and shift_id='{shetl}' and rfid_status='1'";
|
|
|
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0)
|
|
|
{
|
|
|
// 获取查询结果中的计数值并转换为字符串
|
|
|
string countAsString = dtset.Tables[0].Rows[0][0].ToString();
|
|
|
return countAsString;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取接口URL
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public string InterfaceUrl(string url_type)
|
|
|
{
|
|
|
string sql = $@"select url FROM mes_interface_url WHERE url_type='{url_type}'";
|
|
|
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0)
|
|
|
{
|
|
|
// 获取查询结果中的计数值并转换为字符串
|
|
|
string countAsString = dtset.Tables[0].Rows[0][0].ToString();
|
|
|
return countAsString;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取成型机状态
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetFormingMachineState(string devicecode)
|
|
|
{
|
|
|
|
|
|
string sql = $@"select status,plc_ip from base_equipment where equipment_code = '{devicecode}'; ";
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询出入记录
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetInOutHistoryList(string workOrderCode, string devicecode, string workDate)
|
|
|
{
|
|
|
string sql = $@"SELECT DISTINCT ord.workorder_id,ord.workorder_code,res.OrderCode,ord.product_name,product_code,isnull(car_num,0) as car_num,
|
|
|
isnull([begin],'1900-01-01 08:00:00') as [begin],ord.status,ord.route_code,ord.attr1,work_batch_code,res.taskcode,res.rfid,plan_time ,res.update_time
|
|
|
FROM [dbo].[mes_material_transfer_result] res
|
|
|
LEFT JOIN pro_order_workorder ord on res.OrderCode = ord.workorder_id
|
|
|
left JOIN pro_wet_material_plan_detail wet on wet.workorder_id = ord.workorder_id
|
|
|
LEFT JOIN pro_rfid_process_detail rfid on rfid.workorder_code = ord.workorder_code and rfid.rfid = res.rfid
|
|
|
where equipmentCode = '{devicecode}' and work_date = '{workDate}' and ord.workorder_code = '{workOrderCode}' and res.OrderCode is not null ORDER BY update_time desc; ";
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询完成记录
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetCompleteHistoryList(string devicecode)
|
|
|
{
|
|
|
//taskcode=1,当前机台完成,ord.status = 'w3'当前工单完成
|
|
|
// string sql = $@"SELECT workorder_code,product_name,product_code,isnull(car_num,0) as car_num,isnull([begin],'1900-00-00') as [begin],beout,ord.status,product_date,ord.create_time FROM [dbo].[mes_material_transfer_result] res
|
|
|
//LEFT JOIN pro_order_workorder ord on res.OrderCode = ord.workorder_id
|
|
|
//where res.taskcode = '1' and equipmentCode = '{devicecode}'; ";
|
|
|
string sql = $@"SELECT ord.workorder_id,ord.workorder_code,res.OrderCode,ord.product_name,product_code,isnull(car_num,0) as car_num,
|
|
|
isnull([begin],'1900-01-01 08:00:00') as [begin],ord.status ,ord.route_code,ord.attr1,work_batch_code,res.taskcode,res.rfid,plan_time ,res.update_time
|
|
|
FROM [dbo].[mes_material_transfer_result] res
|
|
|
LEFT JOIN pro_order_workorder ord on res.OrderCode = ord.workorder_id
|
|
|
left JOIN pro_wet_material_plan_detail wet on wet.workorder_id = ord.workorder_id
|
|
|
LEFT JOIN pro_rfid_process_detail rfid on rfid.workorder_code = ord.workorder_code and rfid.rfid = res.rfid
|
|
|
where res.taskcode = '0' and equipmentCode = 'C6' and res.OrderCode is not null ORDER BY plan_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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取工单当前状态,弃用
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public string GetWorkOrderStatus(string orderCode)
|
|
|
{
|
|
|
|
|
|
string sql = $@"select status from pro_order_workorder where workorder_code = '{orderCode}'";
|
|
|
var obj = Utils.netClientDBHelper.getScalar(sql, null);
|
|
|
string issucc = obj == null ? "" : obj.ToString();
|
|
|
|
|
|
return issucc;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 更新工单状态
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public bool UpdateWorkOrder(string orderCode, string status, string remark, string type, string deviceCode)
|
|
|
{
|
|
|
List<string> sqlList = new List<string>();
|
|
|
string logSql = "";
|
|
|
if (status.Equals("w2"))
|
|
|
{
|
|
|
logSql = $@"INSERT INTO [dbo].[mes_operation_log]
|
|
|
([id], [user_id], [user_name], [operation_type], [operation_time],
|
|
|
[operation_desc], [old_value], [new_value], [device_code],[remark],[order_code])
|
|
|
VALUES
|
|
|
('{CommonFunc.Common.GetUUID()}', '{LoginUser.UserId}', '{LoginUser.UserName}', '{type}', GetDate(),
|
|
|
'工单状态更新-恢复', 'w4', '{status}', '{deviceCode}','{remark}','{orderCode}');";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
logSql = $@"INSERT INTO [dbo].[mes_operation_log]
|
|
|
([id], [user_id], [user_name], [operation_type], [operation_time],
|
|
|
[operation_desc], [old_value], [new_value], [device_code],[remark],[order_code])
|
|
|
VALUES
|
|
|
('{CommonFunc.Common.GetUUID()}', '{LoginUser.UserId}', '{LoginUser.UserName}', '{type}', GetDate(),
|
|
|
'工单状态更新-暂停', 'w2', '{status}', '{deviceCode}','{remark}','{orderCode}');";
|
|
|
}
|
|
|
string sql = $@"update pro_order_workorder set status = '{status}' where workorder_code = '{orderCode}'";
|
|
|
sqlList.Add(sql);
|
|
|
sqlList.Add(logSql);
|
|
|
bool issucc = Utils.netClientDBHelper.executeBatchSql(sqlList);
|
|
|
|
|
|
return issucc;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 更新工单
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public bool InsertData(FoamingMacModel formingModel)
|
|
|
{
|
|
|
string sql = $@"INSERT INTO [mes_material_transfer_result] (
|
|
|
[id],
|
|
|
[begin],
|
|
|
[beout],
|
|
|
[equipmentCode],
|
|
|
[OrderCode],
|
|
|
[sku],
|
|
|
[planID],
|
|
|
[rfid],
|
|
|
[now_process_id],
|
|
|
[status],
|
|
|
[create_time],
|
|
|
[rfid_status],
|
|
|
[taskcode],
|
|
|
[state],
|
|
|
[update_time]
|
|
|
)
|
|
|
VALUES
|
|
|
(
|
|
|
'{CommonFunc.Common.GetUUID()}',
|
|
|
'GetDate()',
|
|
|
'GetDate()',
|
|
|
'{Utils.GetAppSetting("DeviceCode")}',
|
|
|
'{formingModel.workorder_id}',
|
|
|
'{formingModel.product_code}',
|
|
|
'',
|
|
|
'{formingModel.rfid}',
|
|
|
'',
|
|
|
'4',
|
|
|
'GetDate()',
|
|
|
'1',
|
|
|
'0',
|
|
|
'1',
|
|
|
'GetDate()'
|
|
|
);";
|
|
|
|
|
|
int issucc = Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
|
|
|
return issucc > 0 ? true : false;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 报工
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public bool ExecuteReportWork(DataRowView selectRow, string orderQuntity, string workCount, string reportCode, string workTime, string userCount, string costCenter, string batchCode, string isEndReport, string deviceCode)
|
|
|
{
|
|
|
string getReportCodeSql = $@"SELECT equipment_code,equipment_name FROM [dbo].[base_equipment] WHERE equipment_code='{deviceCode}'";
|
|
|
string lineName = "";
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(getReportCodeSql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
lineName = dtset.Tables[0].Rows[0]["equipment_name"].ToString();
|
|
|
}
|
|
|
|
|
|
//获取子工单的信息
|
|
|
string getSubOrderSql = $"select workorder_code,product_code,product_name,quantity_split,unit from pro_order_workorder where parent_order = '{selectRow["workorder_code"]}'";
|
|
|
string subOrder = "";
|
|
|
string subProductCode = "";
|
|
|
string subProductName = "";
|
|
|
string subQuntity = "";
|
|
|
string subUnit = "";
|
|
|
DataSet dtSubOrder = Utils.netClientDBHelper.getDataSet(getSubOrderSql);
|
|
|
if (dtSubOrder != null && dtSubOrder.Tables.Count > 0 && dtSubOrder.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
subOrder = dtSubOrder.Tables[0].Rows[0]["workorder_code"].ToString();
|
|
|
subProductCode = dtSubOrder.Tables[0].Rows[0]["product_code"].ToString();
|
|
|
subProductName = dtSubOrder.Tables[0].Rows[0]["product_name"].ToString();
|
|
|
subQuntity = dtSubOrder.Tables[0].Rows[0]["quantity_split"].ToString();
|
|
|
subUnit = dtSubOrder.Tables[0].Rows[0]["unit"].ToString();
|
|
|
}
|
|
|
|
|
|
double rate = Convert.ToDouble(workCount) / Convert.ToDouble(orderQuntity);
|
|
|
double subOrderQty = rate * Convert.ToDouble(subQuntity);
|
|
|
List<string> sqlList = new List<string>();
|
|
|
//有子单
|
|
|
if (subOrder != "")
|
|
|
{
|
|
|
//更改
|
|
|
string mainOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_time], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{selectRow["workorder_code"]}', '{selectRow["product_code"]}', '{selectRow["product_name"]}',
|
|
|
'{selectRow["product_spc"]}', '{selectRow["unit"]}', {workCount}, {workCount}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}',GetDate(), '0', NULL, 'prod',
|
|
|
{userCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{0}');";
|
|
|
//更改
|
|
|
string subOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_time], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{subOrder}', '{subProductCode}', '{subProductName}',
|
|
|
'{selectRow["product_spc"]}', '{subUnit}', {subOrderQty}, {subOrderQty}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}',GetDate(), '0', NULL, 'prod',
|
|
|
{userCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{selectRow["workorder_code"]}');";
|
|
|
sqlList.Add(mainOrderSql);
|
|
|
sqlList.Add(subOrderSql);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//无子单
|
|
|
//更改
|
|
|
string mainOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_time], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{selectRow["workorder_code"]}', '{selectRow["product_code"]}', '{selectRow["product_name"]}',
|
|
|
'{selectRow["product_spc"]}', '{selectRow["unit"]}', {workCount}, {workCount}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}',GetDate(), '0', NULL, 'prod',
|
|
|
{userCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{selectRow["parent_order"]}');";
|
|
|
sqlList.Add(mainOrderSql);
|
|
|
}
|
|
|
|
|
|
//赵啸林说不用上位机更新报工标识
|
|
|
//string updateOrderSql = $@"update pro_order_workorder set status = 'w3', update_by = '{LoginUser.UserName}',update_time = GETDATE() where workorder_id = '{selectRow["workorder_id"]}' ";
|
|
|
//sqlList.Add(sql);
|
|
|
//sqlList.Add(updateOrderSql);
|
|
|
|
|
|
bool issucc = Utils.netClientDBHelper.executeBatchSql(sqlList);
|
|
|
|
|
|
return issucc;//> 0 ? true : false;
|
|
|
}
|
|
|
|
|
|
public bool GetExecuteReportWorkSql(List<string> reportWorkSqlList)
|
|
|
{
|
|
|
bool issucc = Utils.netClientDBHelper.executeBatchSql(reportWorkSqlList);
|
|
|
return issucc;
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 报工
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<string> GetExecuteReportWorkSql(DataRowView selectRow, string orderQuntity, string workCount, string reportCode, string workTime, string userCount, string costCenter, string batchCode, string isEndReport, string deviceCode, string fatherOrderUserCount)
|
|
|
{
|
|
|
string getReportCodeSql = $@"SELECT equipment_code,equipment_name FROM [dbo].[base_equipment] WHERE equipment_code='{deviceCode}'";
|
|
|
string lineName = "";
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(getReportCodeSql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
lineName = dtset.Tables[0].Rows[0]["equipment_name"].ToString();
|
|
|
}
|
|
|
|
|
|
#region 生成报工数据
|
|
|
//获取子工单的信息
|
|
|
string getSubOrderSql = $"select workorder_code,product_code,product_name,quantity_split,unit from pro_order_workorder where parent_order = '{selectRow["workorder_code"]}'";
|
|
|
string subOrder = "";
|
|
|
string subProductCode = "";
|
|
|
string subProductName = "";
|
|
|
string subQuntity = "";
|
|
|
string subUnit = "";
|
|
|
DataSet dtSubOrder = Utils.netClientDBHelper.getDataSet(getSubOrderSql);
|
|
|
if (dtSubOrder != null && dtSubOrder.Tables.Count > 0 && dtSubOrder.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
subOrder = dtSubOrder.Tables[0].Rows[0]["workorder_code"].ToString();
|
|
|
subProductCode = dtSubOrder.Tables[0].Rows[0]["product_code"].ToString();
|
|
|
subProductName = dtSubOrder.Tables[0].Rows[0]["product_name"].ToString();
|
|
|
subQuntity = dtSubOrder.Tables[0].Rows[0]["quantity_split"].ToString();
|
|
|
subUnit = dtSubOrder.Tables[0].Rows[0]["unit"].ToString();
|
|
|
}
|
|
|
|
|
|
double rate = Convert.ToDouble(workCount) / Convert.ToDouble(orderQuntity);
|
|
|
double subOrderQty = rate * Convert.ToDouble(subQuntity);
|
|
|
List<string> sqlList = new List<string>();
|
|
|
//有子单
|
|
|
if (subOrder != "")
|
|
|
{
|
|
|
//更改
|
|
|
string mainOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order],[IP],[version])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{selectRow["workorder_code"]}', '{selectRow["product_code"]}', '{selectRow["product_name"]}',
|
|
|
'{selectRow["product_spc"]}', '{selectRow["unit"]}', {selectRow["batch_quantity"]}, {workCount}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', '0', NULL, 'prod',
|
|
|
{fatherOrderUserCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{0}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}');";
|
|
|
//更改
|
|
|
string subOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order],[IP],[version])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{subOrder}', '{subProductCode}', '{subProductName}',
|
|
|
'{selectRow["product_spc"]}', '{subUnit}', {selectRow["batch_quantity"]}, {subOrderQty}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', '0', NULL, 'prod',
|
|
|
{userCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{selectRow["workorder_code"]}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}');";
|
|
|
sqlList.Add(mainOrderSql);
|
|
|
sqlList.Add(subOrderSql);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//无子单
|
|
|
//更改
|
|
|
string mainOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order],[IP],[version])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{selectRow["workorder_code"]}', '{selectRow["product_code"]}', '{selectRow["product_name"]}',
|
|
|
'{selectRow["product_spc"]}', '{selectRow["unit"]}', {selectRow["batch_quantity"]}, {workCount}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', '0', NULL, 'prod',
|
|
|
{userCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{selectRow["parent_order"]}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}');";
|
|
|
sqlList.Add(mainOrderSql);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
//赵啸林说不用上位机更新报工标识
|
|
|
//string updateOrderSql = $@"update pro_order_workorder set status = 'w3', update_by = '{LoginUser.UserName}',update_time = GETDATE() where workorder_id = '{selectRow["workorder_id"]}' ";
|
|
|
//sqlList.Add(sql);
|
|
|
//sqlList.Add(updateOrderSql);
|
|
|
|
|
|
#region 最终报工,更新工单状态为已报工
|
|
|
//赵啸林又说sap有问题,需要上位机修改报工标识2023-12-25,但仅在最终报工时,才更新此状态
|
|
|
if (isEndReport.Equals("1"))
|
|
|
{
|
|
|
//更新订单状态为已报工;
|
|
|
string updateOrderSql = $@"update pro_order_workorder set status = 'w3', update_by = '{LoginUser.UserName}',update_time = GETDATE() where belong_work_order = '{selectRow["workorder_code"]}' ";
|
|
|
sqlList.Add(updateOrderSql);
|
|
|
|
|
|
//修改报工逻辑,最终报工时添加子母工单领料单状态更新2024-02-20
|
|
|
if (subOrder != "") //有子单
|
|
|
{
|
|
|
//更新子单状态
|
|
|
string updateSubOrderPrepareSql = $"update mes_prepare set status = 'L1' where workorder_code = '{subOrder}'";
|
|
|
//更新母单状态
|
|
|
string updateMainOrderPrepareSql = $"update mes_prepare set status = 'L1' where workorder_code = '{selectRow["workorder_code"]}'";
|
|
|
sqlList.Add(updateSubOrderPrepareSql);
|
|
|
sqlList.Add(updateMainOrderPrepareSql);
|
|
|
}
|
|
|
else //无子单
|
|
|
{
|
|
|
//更新母单状态
|
|
|
string updateMainOrderPrepareSql = $"update mes_prepare set status = 'L1' where workorder_code = '{selectRow["workorder_code"]}'";
|
|
|
sqlList.Add(updateMainOrderPrepareSql);
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 批次报工状态更新
|
|
|
//添加批次报工状态更新--2023-12-26
|
|
|
string updateBatchOrderStatusSql = $@"update pro_order_workorder_batch set status = '0', update_by = '{LoginUser.UserName}',update_time = GETDATE() where workorder_id = '{selectRow["workorder_id"]}' and batch_code = '{batchCode}' ";
|
|
|
sqlList.Add(updateBatchOrderStatusSql);
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
return sqlList;//> 0 ? true : false;
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 新版报工
|
|
|
/// </summary>
|
|
|
/// <param name="bdt"></param>
|
|
|
/// <param name="edt"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<string> GetExecuteReportWorkSql(DataRowView selectRow, string orderQuntity, string workCount, string reportCode, string workTime, string userCount, string costCenter, string batchCode,
|
|
|
string isEndReport, string deviceCode, Dictionary<int, string> workTimeDic, Dictionary<int, string> userCountDic, string xiaolv, string shijian)
|
|
|
{
|
|
|
string getReportCodeSql = $@"SELECT equipment_code,equipment_name FROM [dbo].[base_equipment] WHERE equipment_code='{deviceCode}'";
|
|
|
string lineName = "";
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(getReportCodeSql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
lineName = dtset.Tables[0].Rows[0]["equipment_name"].ToString();
|
|
|
}
|
|
|
|
|
|
#region 生成报工数据
|
|
|
//获取子工单的信息
|
|
|
#region 订单不能是已经被删除的
|
|
|
string getSubOrderSql = $"select workorder_code,product_code,product_name,quantity_split,unit from pro_order_workorder where parent_order = '{selectRow["workorder_code"]}' and del_flag=0";
|
|
|
#endregion
|
|
|
//string getSubOrderSql = $"select workorder_code,product_code,product_name,quantity_split,unit from pro_order_workorder where parent_order = '{selectRow["workorder_code"]}'";
|
|
|
string subOrder = "";
|
|
|
//string subProductCode = "";
|
|
|
//string subProductName = "";
|
|
|
//string subQuntity = "";
|
|
|
//string subUnit = "";
|
|
|
DataSet dtSubOrder = Utils.netClientDBHelper.getDataSet(getSubOrderSql);
|
|
|
if (dtSubOrder != null && dtSubOrder.Tables.Count > 0 && dtSubOrder.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
subOrder = dtSubOrder.Tables[0].Rows[0]["workorder_code"].ToString();
|
|
|
//subProductCode = dtSubOrder.Tables[0].Rows[0]["product_code"].ToString();
|
|
|
//subProductName = dtSubOrder.Tables[0].Rows[0]["product_name"].ToString();
|
|
|
//subQuntity = dtSubOrder.Tables[0].Rows[0]["quantity_split"].ToString();
|
|
|
//subUnit = dtSubOrder.Tables[0].Rows[0]["unit"].ToString();
|
|
|
}
|
|
|
|
|
|
//double rate = Convert.ToDouble(workCount) / Convert.ToDouble(orderQuntity);
|
|
|
//double subOrderQty = rate * Convert.ToDouble(subQuntity);
|
|
|
List<string> sqlList = new List<string>();
|
|
|
//有子单
|
|
|
if (subOrder != "")
|
|
|
{
|
|
|
//更改
|
|
|
string mainOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order],[IP],[version])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{selectRow["workorder_code"]}', '{selectRow["product_code"]}', '{selectRow["product_name"]}',
|
|
|
'{selectRow["product_spc"]}', '{selectRow["unit"]}', {selectRow["batch_quantity"]}, {workCount}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
'{xiaolv}', '{shijian}', NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', '0', NULL, 'prod',
|
|
|
{userCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{0}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}');";
|
|
|
|
|
|
foreach (string item in GetAllWorkReportsForOrderAndChildren(selectRow["workorder_code"].ToString(), selectRow, orderQuntity, reportCode, costCenter, batchCode,
|
|
|
isEndReport, deviceCode, lineName, workCount, workTimeDic, userCountDic, 0))
|
|
|
{
|
|
|
sqlList.Add(item);
|
|
|
}
|
|
|
|
|
|
//string subOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
// ([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
// [spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
// [user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
// [remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
// [attr1], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
// [update_time], [update_by], [upload_status], [upload_msg], [prod_type],
|
|
|
// [use_man], [work_center],[del_flag],[batch],[end_report],[parent_order],[IP],[version])
|
|
|
// VALUES
|
|
|
// ('{Common.GetUUID()}', 'SELF', '{reportCode}', '{subOrder}', '{subProductCode}', '{subProductName}',
|
|
|
// '{selectRow["product_spc"]}', '{subUnit}', {selectRow["batch_quantity"]}, {subOrderQty}, 0, 0,
|
|
|
// '{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
// '无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
// NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
// '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', '0', NULL, 'prod',
|
|
|
// {userCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{selectRow["workorder_code"]}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}');";
|
|
|
sqlList.Add(mainOrderSql);
|
|
|
//sqlList.Add(subOrderSql);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//无子单
|
|
|
string mainOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order],[IP],[version])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{selectRow["workorder_code"]}', '{selectRow["product_code"]}', '{selectRow["product_name"]}',
|
|
|
'{selectRow["product_spc"]}', '{selectRow["unit"]}', {selectRow["batch_quantity"]}, {workCount}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTime}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', '0', NULL, 'prod',
|
|
|
{userCount}, '{costCenter}','0','{batchCode}','{isEndReport}','{selectRow["parent_order"]}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}');";
|
|
|
sqlList.Add(mainOrderSql);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
//赵啸林说不用上位机更新报工标识
|
|
|
//string updateOrderSql = $@"update pro_order_workorder set status = 'w3', update_by = '{LoginUser.UserName}',update_time = GETDATE() where workorder_id = '{selectRow["workorder_id"]}' ";
|
|
|
//sqlList.Add(sql);
|
|
|
//sqlList.Add(updateOrderSql);
|
|
|
|
|
|
#region 最终报工,更新工单状态为已报工
|
|
|
//赵啸林又说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"))
|
|
|
{
|
|
|
//更新订单状态为已报工;
|
|
|
string updateOrderSql = $@"update pro_order_workorder set status = 'w3', update_by = '{LoginUser.UserName}',update_time = GETDATE() ,end_work_time =GETDATE() where belong_work_order = '{selectRow["workorder_code"]}' ";
|
|
|
sqlList.Add(updateOrderSql);
|
|
|
|
|
|
//修改报工逻辑,最终报工时添加子母工单领料单状态更新2024-02-20
|
|
|
//递归更新子单领料状态
|
|
|
foreach (var item in GetUpdatePrepareSql(selectRow["workorder_code"].ToString()))
|
|
|
{
|
|
|
sqlList.Add(item);
|
|
|
}
|
|
|
}
|
|
|
//if (subOrder != "") //有子单
|
|
|
//{
|
|
|
|
|
|
// //更新子单状态
|
|
|
// string updateSubOrderPrepareSql = $"update mes_prepare set status = 'L1' where workorder_code = '{subOrder}'";
|
|
|
// //更新母单状态
|
|
|
// string updateMainOrderPrepareSql = $"update mes_prepare set status = 'L1' where workorder_code = '{selectRow["workorder_code"]}'";
|
|
|
// sqlList.Add(updateSubOrderPrepareSql);
|
|
|
// sqlList.Add(updateMainOrderPrepareSql);
|
|
|
//}
|
|
|
//else //无子单
|
|
|
//{
|
|
|
// //更新母单状态
|
|
|
// string updateMainOrderPrepareSql = $"update mes_prepare set status = 'L1' where workorder_code = '{selectRow["workorder_code"]}'";
|
|
|
// sqlList.Add(updateMainOrderPrepareSql);
|
|
|
//}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 批次报工状态更新
|
|
|
//2024-04-15添加切线方案,暂停状态下不修改报工状态,=w4的时候,不加报工状态更新语句
|
|
|
if (!selectRow["status"].ToString().Equals("w4"))
|
|
|
{
|
|
|
//添加批次报工状态更新--2023-12-26
|
|
|
string updateBatchOrderStatusSql = $@"update pro_order_workorder_batch set status = '0', update_by = '{LoginUser.UserName}',update_time = GETDATE() where workorder_id = '{selectRow["workorder_id"]}' and batch_code = '{batchCode}' ";
|
|
|
sqlList.Add(updateBatchOrderStatusSql);
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
return sqlList;//> 0 ? true : false;
|
|
|
}
|
|
|
|
|
|
List<string> workReports = new List<string>();
|
|
|
List<string> updatePrepareSqlList = new List<string>();
|
|
|
|
|
|
/// <summary>
|
|
|
/// 递归获取子单报工SQL
|
|
|
/// </summary>
|
|
|
/// <param name="orderId"></param>
|
|
|
/// <param name="selectRow"></param>
|
|
|
/// <param name="orderQuntity"></param>
|
|
|
/// <param name="reportCode"></param>
|
|
|
/// <param name="costCenter"></param>
|
|
|
/// <param name="batchCode"></param>
|
|
|
/// <param name="isEndReport"></param>
|
|
|
/// <param name="deviceCode"></param>
|
|
|
/// <param name="lineName"></param>
|
|
|
/// <param name="workCount"></param>
|
|
|
/// <param name="workTimeDic"></param>
|
|
|
/// <param name="userCountDic"></param>
|
|
|
/// <param name="sortNo"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<string> GetAllWorkReportsForOrderAndChildren(string orderId, DataRowView selectRow, string orderQuntity, string reportCode, string costCenter, string batchCode,
|
|
|
string isEndReport, string deviceCode, string lineName, string workCount, Dictionary<int, string> workTimeDic, Dictionary<int, string> userCountDic, int sortNo)
|
|
|
{
|
|
|
|
|
|
//获取子工单的信息
|
|
|
#region 子单不能是已经被删除的
|
|
|
string getSubOrderSql = $"select workorder_code,product_code,product_name,quantity_split,unit from pro_order_workorder where parent_order = '{orderId}' and del_flag=0";
|
|
|
#endregion
|
|
|
//string getSubOrderSql = $"select workorder_code,product_code,product_name,quantity_split,unit from pro_order_workorder where parent_order = '{orderId}' ";
|
|
|
string subOrder = "";
|
|
|
string subProductCode = "";
|
|
|
string subProductName = "";
|
|
|
string subQuntity = "";
|
|
|
string subUnit = "";
|
|
|
DataSet dtSubOrder = Utils.netClientDBHelper.getDataSet(getSubOrderSql);
|
|
|
if (dtSubOrder != null && dtSubOrder.Tables.Count > 0 && dtSubOrder.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
subOrder = dtSubOrder.Tables[0].Rows[0]["workorder_code"].ToString();
|
|
|
subProductCode = dtSubOrder.Tables[0].Rows[0]["product_code"].ToString();
|
|
|
subProductName = dtSubOrder.Tables[0].Rows[0]["product_name"].ToString();
|
|
|
subQuntity = dtSubOrder.Tables[0].Rows[0]["quantity_split"].ToString();//子单数量
|
|
|
subUnit = dtSubOrder.Tables[0].Rows[0]["unit"].ToString();
|
|
|
double rate = Convert.ToDouble(workCount) / Convert.ToDouble(orderQuntity);//workCount是报工数量,orderQuntity是母单数量
|
|
|
double subOrderQty = 0;
|
|
|
LogHelper.instance.log.Info("rate>>>" + rate);
|
|
|
//根据base_product_attach表里的报工比例,计算子单数量,又取消了
|
|
|
string sqlGetReportRate = $@"select isnull(report_rate,0) as report_rate from base_product where product_code = '{selectRow["product_code"]}'";
|
|
|
//DataSet dtReportRate = Utils.netClientDBHelper.getDataSet(sqlGetReportRate);
|
|
|
|
|
|
//string reportRate = "0";
|
|
|
//if (dtReportRate != null && dtReportRate.Tables.Count > 0 && dtReportRate.Tables[0].Rows.Count > 0)
|
|
|
//{
|
|
|
// reportRate = dtReportRate.Tables[0].Rows[0][0].ToString();
|
|
|
// LogHelper.instance.log.Info("获取到报工效率为:" + reportRate+",产品编码为:"+ selectRow["product_code"]+",子单数量为:"+ subQuntity);
|
|
|
//}
|
|
|
//if (sortNo < 3)
|
|
|
//{
|
|
|
// if (reportRate.Equals("0"))
|
|
|
// {
|
|
|
// subOrderQty = rate * Convert.ToDouble(subQuntity);
|
|
|
// }
|
|
|
// else
|
|
|
// {
|
|
|
// subOrderQty = Convert.ToDouble(reportRate) * Convert.ToDouble(subQuntity);
|
|
|
// }
|
|
|
//}
|
|
|
if (sortNo < 3)
|
|
|
{
|
|
|
subOrderQty = rate * Convert.ToDouble(subQuntity);
|
|
|
}
|
|
|
//更改
|
|
|
string subOrderSql = $@"INSERT INTO [dbo].[mes_report_work]
|
|
|
([id], [report_type], [report_code], [workorder_code], [product_code], [product_name],
|
|
|
[spec], [unit], [quantity], [quantity_feedback], [quantity_qualified], [quantity_unqualified],
|
|
|
[user_name], [nick_name], [feedback_channel], [feedback_time], [record_user], [status],
|
|
|
[remark], [work_time], [machine_code], [machine_name], [team_code], [shift_code],
|
|
|
[reason], [attr2], [attr3], [attr4], [create_by], [create_time],
|
|
|
[update_time], [update_by], [upload_status], [upload_msg], [prod_type],
|
|
|
[use_man], [work_center],[del_flag],[batch],[end_report],[parent_order],[IP],[version])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', 'SELF', '{reportCode}', '{subOrder}', '{subProductCode}', '{subProductName}',
|
|
|
'{selectRow["product_spc"]}', '{subUnit}', {selectRow["batch_quantity"]}, {subOrderQty}, 0, 0,
|
|
|
'{LoginUser.UserCode}', '{LoginUser.UserName}', 'PC', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', 'PREPARE',
|
|
|
'无', '{workTimeDic[sortNo]}', '{deviceCode}', '{lineName}', N'{LoginUser.TeamCode}', '{selectRow["shift_id"]}',
|
|
|
NULL, NULL, NULL, NULL, '{LoginUser.UserName}', '{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',
|
|
|
'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}', '{LoginUser.UserName}', '0', NULL, 'prod',
|
|
|
{userCountDic[sortNo]}, '{costCenter}','0','{batchCode}','{isEndReport}','{orderId}','{LoginUser.CurrDeviceIP}','{LoginUser.Version}');";
|
|
|
workReports.Add(subOrderSql);
|
|
|
sortNo++;
|
|
|
GetAllWorkReportsForOrderAndChildren(subOrder, selectRow, orderQuntity, reportCode, costCenter, batchCode, isEndReport, deviceCode, lineName, subQuntity, workTimeDic, userCountDic, sortNo);
|
|
|
}
|
|
|
|
|
|
|
|
|
return workReports;
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<string> GetUpdatePrepareSql(string orderId)
|
|
|
{
|
|
|
string updateMainOrderPrepareSql = $"update mes_prepare set status = 'L1', update_by = '{LoginUser.UserName}',update_time = GETDATE() where workorder_code = '{orderId}' and del_flag = '0'";
|
|
|
updatePrepareSqlList.Add(updateMainOrderPrepareSql);
|
|
|
//获取子工单的信息
|
|
|
string getSubOrderSql = $"select workorder_code,product_code,product_name,quantity_split,unit from pro_order_workorder where parent_order = '{orderId}'";
|
|
|
string subOrder = "";
|
|
|
|
|
|
DataSet dtSubOrder = Utils.netClientDBHelper.getDataSet(getSubOrderSql);
|
|
|
if (dtSubOrder != null && dtSubOrder.Tables.Count > 0 && dtSubOrder.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
subOrder = dtSubOrder.Tables[0].Rows[0]["workorder_code"].ToString();
|
|
|
GetUpdatePrepareSql(subOrder);
|
|
|
}
|
|
|
return updatePrepareSqlList;
|
|
|
}
|
|
|
|
|
|
public bool ChangeShiftsInfo(string deviceCode)
|
|
|
{
|
|
|
//
|
|
|
string sql = $@"INSERT INTO [dbo].[mes_changeshift_info] ([id], [shift_code], [change_time], [create_time], [create_by], [last_update], [update_by], [work_date],[device_code])
|
|
|
VALUES ('{Common.GetUUID()}', '{LoginUser.ShiftCode}', GetDate(), GetDate(), '{LoginUser.UserName}',Null, '{LoginUser.UserName}', '{LoginUser.WorkDate}','{deviceCode}');";
|
|
|
int ret = Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
return ret > 0 ? true : false;
|
|
|
}
|
|
|
public bool ChangeShiftsInfo(string deviceCode, string data, string shift)
|
|
|
{
|
|
|
//
|
|
|
string sql = $@"UPDATE mes_changeshift_info SET last_update=GetDate( ) WHERE device_code='{deviceCode}' AND CONVERT(VARCHAR, create_time, 23) = '{data}' AND shift_code='{shift}';";
|
|
|
int ret = Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
return ret > 0 ? true : false;
|
|
|
}
|
|
|
public DataTable selectShiftsInfo(string deviceCode, string data, string shift)
|
|
|
{
|
|
|
//
|
|
|
string sql = $@"
|
|
|
SELECT top 1 * FROM mes_changeshift_info WHERE device_code='{deviceCode}' AND work_date = '{data}' AND last_update is NULL AND shift_code='{shift}' ORDER BY create_time DESC";
|
|
|
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;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 插入消耗表
|
|
|
/// </summary>
|
|
|
/// <param name="qty"></param>
|
|
|
/// <param name="remark"></param>
|
|
|
/// <param name="selectedRow"></param>
|
|
|
/// <param name="newReportCode"></param>
|
|
|
/// <param name="siteCode"></param>
|
|
|
public bool InsertConsumeInfo(string qty, string remark, DataRowView selectedRow, string newReportCode, string siteCode, string recoil, string parentOrder)
|
|
|
{
|
|
|
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])
|
|
|
VALUES
|
|
|
('{Common.GetUUID()}', '{selectedRow["workorder_code"]}', '{selectedRow["product_code"]}', '{selectedRow["product_name"]}', '{selectedRow["product_spc"]}',
|
|
|
'{qty}','{selectedRow["unit"]}', '{remark}', NULL, NULL,
|
|
|
NULL, NULL, '{LoginUser.UserName}', GetDate(), '{LoginUser.UserName}',
|
|
|
GetDate(), '{siteCode}', '{newReportCode}', '0','{parentOrder}','{recoil}'); ";
|
|
|
int ret = Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
return ret > 0 ? true : false;
|
|
|
}
|
|
|
|
|
|
public bool UpdateFirstCheckTask(string workorderID, string batchCode)
|
|
|
{
|
|
|
string sql = $@"update pro_order_workorder_batch set qc_status = '1', update_by = '{LoginUser.UserName}',update_time = GETDATE() where workorder_id = '{workorderID}' and batch_code = '{batchCode}'";
|
|
|
int ret = Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
return ret > 0 ? true : false;
|
|
|
}
|
|
|
|
|
|
public bool InsertConsumeInfo(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])
|
|
|
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"]}'); ";
|
|
|
int ret = Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
return ret > 0 ? true : false;
|
|
|
}
|
|
|
|
|
|
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])
|
|
|
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);
|
|
|
return sql;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取母单的包工人数
|
|
|
/// </summary>
|
|
|
/// <param name="orderCode"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetFatherOrderUserCount(string orderCode)
|
|
|
{
|
|
|
string sql = $@"SELECT top 1 use_man FROM [dbo].[mes_report_work] where workorder_code = '{orderCode}' order by create_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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取工单
|
|
|
/// </summary>
|
|
|
/// <param name="orderCode"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable Getorderworkorder(string orderCode)
|
|
|
{
|
|
|
string sql = $@"select * from pro_order_workorder WHERE workorder_code='{orderCode}' AND del_flag='0'";
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 处理重复物料2024-06-13陈恒杰说的
|
|
|
/// </summary>
|
|
|
/// <param name="orderCode"></param>
|
|
|
/// <returns></returns>
|
|
|
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;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取所在车间
|
|
|
/// </summary>
|
|
|
/// <param name="orderCode"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetWorkShop(string eqment)
|
|
|
{
|
|
|
string sql = $@"select * from base_equipment WHERE equipment_code='{eqment}' AND del_flag='0'";
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取报工总数量
|
|
|
/// </summary>
|
|
|
/// <param name="orderCode"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetOrderReportSumQty(string orderCode)
|
|
|
{
|
|
|
string sql = $@"SELECT sum(quantity_feedback) FROM [dbo].[mes_report_work] where workorder_code = '{orderCode}' GROUP BY workorder_code";
|
|
|
|
|
|
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 GetSubOrderCount(string orderCode)
|
|
|
{
|
|
|
//获取子工单的信息
|
|
|
string getSubOrderSql = $"select workorder_code,product_code,product_name,quantity_split,unit from pro_order_workorder where parent_order = '{orderCode}'";
|
|
|
|
|
|
DataSet dtSubOrder = Utils.netClientDBHelper.getDataSet(getSubOrderSql);
|
|
|
if (dtSubOrder != null && dtSubOrder.Tables.Count > 0 && dtSubOrder.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
return dtSubOrder.Tables[0];
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据设备编码获取当前机台最新的吊满的RFID信息
|
|
|
/// </summary>
|
|
|
/// <param name="deviceCode"></param>
|
|
|
/// <returns></returns>
|
|
|
public DataTable GetRfidInfo(string deviceCode)
|
|
|
{
|
|
|
string sql = $@"select top 2 rfid.workorder_code, rfid, machine_code,order_num, rfid.create_time, rfid.update_by, rfid.update_time, work_batch_code, bind_status ,workorder.product_code
|
|
|
from pro_rfid_process_detail rfid
|
|
|
LEFT JOIN pro_order_workorder workorder on rfid.workorder_code = workorder.workorder_code
|
|
|
where machine_code = 'X1' and bind_status = '0' order by update_time DESC";
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取报修描述
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public DataTable ConvertToFaultModelList()
|
|
|
{
|
|
|
string getReportCodeSql = "SELECT fault_code, fault_subclass FROM equ_fault_description";
|
|
|
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(getReportCodeSql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
return dtset.Tables[0];
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
public DataTable GetNewRFID()
|
|
|
{
|
|
|
string sql = $@"select max(rfid) as rfid from mes_rfidandsfc_bind where CONVERT(VARCHAR(10), create_time , 120) = CONVERT(VARCHAR(10),Getdate(), 120)";
|
|
|
|
|
|
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 GetReportCode()
|
|
|
{
|
|
|
string getReportCodeSql = $@"select max(report_code) as report_code from mes_report_work where CONVERT(VARCHAR(10), create_time , 120) = CONVERT(VARCHAR(10),Getdate(), 120)";
|
|
|
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(getReportCodeSql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
return dtset.Tables[0];
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public DataTable GetReportCodeeqment(string eqment)
|
|
|
{
|
|
|
string getReportCodeSql = $@"select * from equ_bind_auxiliary_equipment where equipment_code ='{eqment}'";
|
|
|
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(getReportCodeSql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
return dtset.Tables[0];
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public string GetInterfaceUrl(string v)
|
|
|
{
|
|
|
string getReportCodeSql = $@"SELECT url FROM [dbo].[mes_interface_url] where url_type = '{v}' and del_flag = '0'";
|
|
|
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(getReportCodeSql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
return dtset.Tables[0].Rows[0][0].ToString();
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
public List<report> GetReportData(string nickName)
|
|
|
{
|
|
|
List<report> reportList = new List<report>();
|
|
|
try
|
|
|
{
|
|
|
//查找前六条信息
|
|
|
string sql = @"select top 6 Id,team,OpenLineCheckBox,ReplaceLineCheckBox,unqualified,clear,residue,lineClear,UserKnow,qualified,equipStatus,StampCorrect,isClear,positionCorrect,isLineClear,create_time CreateTime
|
|
|
from [dbo].[mes_report] where user_nick_name = '" + nickName + "' order by create_time desc";
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in dtset.Tables[0].Rows)
|
|
|
{
|
|
|
report r = new report();
|
|
|
r.Id = dr["Id"].ToString();
|
|
|
r.unqualified = dr["unqualified"].ToString();
|
|
|
r.clear = dr["clear"].ToString();
|
|
|
r.residue = dr["residue"].ToString();
|
|
|
r.lineClear = dr["lineClear"].ToString();
|
|
|
r.UserKnow = dr["UserKnow"].ToString();
|
|
|
r.qualified = dr["qualified"].ToString();
|
|
|
r.equipStatus = dr["equipStatus"].ToString();
|
|
|
r.StampCorrect = dr["StampCorrect"].ToString();
|
|
|
r.isClear = dr["isClear"].ToString();
|
|
|
r.positionCorrect = dr["positionCorrect"].ToString();
|
|
|
r.isLineClear = dr["isLineClear"].ToString();
|
|
|
r.OpenLineCheckBox = dr["OpenLineCheckBox"].ToString();
|
|
|
r.ReplaceLineCheckBox = dr["ReplaceLineCheckBox"].ToString();
|
|
|
r.team = dr["team"].ToString();
|
|
|
reportList.Add(r);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
|
|
|
}
|
|
|
for (int i = reportList.Count; i < 6; i++)
|
|
|
{
|
|
|
reportList.Add(new report());
|
|
|
}
|
|
|
return reportList;
|
|
|
}
|
|
|
|
|
|
public int EditReport(report report)
|
|
|
{
|
|
|
string sql = $@"update [dbo].[mes_report] set team='{report.team}',OpenLineCheckBox='{report.OpenLineCheckBox}',ReplaceLineCheckBox='{report.ReplaceLineCheckBox}',unqualified='{report.unqualified}',clear='{report.clear}',residue='{report.residue}',lineClear='{report.lineClear}',UserKnow='{report.UserKnow}',qualified='{report.qualified}',equipStatus='{report.equipStatus}',StampCorrect='{report.StampCorrect}',isClear='{report.isClear}',positionCorrect='{report.positionCorrect}',isLineClear='{report.isLineClear}' where Id='{report.Id}'";
|
|
|
return Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public int AddReport(report report)
|
|
|
{
|
|
|
string sql = $@"insert into [dbo].[mes_report] (Id,user_nick_name,team,OpenLineCheckBox,ReplaceLineCheckBox,unqualified,clear,residue,lineClear,UserKnow,qualified,equipStatus,StampCorrect,isClear,positionCorrect,isLineClear,create_time) values ('{report.Id}','{report.NickName}','{report.team}','{report.OpenLineCheckBox}','{report.ReplaceLineCheckBox}','{report.unqualified}','{report.clear}','{report.residue}','{report.lineClear}','{report.UserKnow}','{report.qualified}','{report.equipStatus}','{report.StampCorrect}','{report.isClear}','{report.positionCorrect}','{report.isLineClear}',GETDATE())";
|
|
|
return Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public bool GetProOrderWorkOrder(string workorderId)
|
|
|
{
|
|
|
string sql = "select del_flag from pro_order_workorder where workorder_id = '" + workorderId + "'";
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
object value = dtset.Tables[0].Rows[0]["del_flag"];
|
|
|
if (value != null && value.ToString() == "0")
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
public DataTable GetProOrderWorkorder(string deviceCode, string workDate)
|
|
|
{
|
|
|
string date = DateTime.Parse(workDate).ToString("yyyy-MM-dd");
|
|
|
string sql = $@"select workorder_id,product_name,product_code
|
|
|
from pro_order_workorder
|
|
|
where prod_line_code like '%{deviceCode}%' and product_date='{date}'";
|
|
|
//string sql = $@"select workorder_id,product_name
|
|
|
// from pro_order_workorder
|
|
|
// where prod_line_code like '%{deviceCode}% and status='w2''";
|
|
|
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 GetProOrderWorkorder(string id)
|
|
|
{
|
|
|
string sql = $@"select workorder_id,product_name,product_code
|
|
|
from pro_order_workorder
|
|
|
where workorder_id='{id}'";
|
|
|
//string sql = $@"select workorder_id,product_name
|
|
|
// from pro_order_workorder
|
|
|
// where prod_line_code like '%{deviceCode}% and status='w2''";
|
|
|
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 List<SelfInspectionModel> GetSelfInspections(string deviceCode, string workDate, string nickName, string workOrderId)
|
|
|
{
|
|
|
List<SelfInspectionModel> selfInspectionList = new List<SelfInspectionModel>();
|
|
|
try
|
|
|
{
|
|
|
string sql = $@"select top 7
|
|
|
Id,Other,Inspector,Reason,deviceCode,workDate,
|
|
|
InspectionTime,MissingTie,Package,DateCode,PackageGood,LeakProduct,NormalOpen,BoxQuantity
|
|
|
from mes_self_inspection
|
|
|
where deviceCode='{deviceCode}' and workDate='{workDate}' and Inspector='{nickName}' and workorder_id ='{workOrderId}' order by CreateTime desc";
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in dtset.Tables[0].Rows)
|
|
|
{
|
|
|
selfInspectionList.Add(new SelfInspectionModel()
|
|
|
{
|
|
|
Id = dr["Id"].ToString(),
|
|
|
Other = dr["Other"].ToString(),
|
|
|
Inspector = dr["Inspector"].ToString(),
|
|
|
Reason = dr["Reason"].ToString(),
|
|
|
deviceCode = dr["deviceCode"].ToString(),
|
|
|
workDate = dr["workDate"].ToString(),
|
|
|
InspectionTime = dr["InspectionTime"].ToString(),
|
|
|
MissingTie = dr["MissingTie"].ToString(),
|
|
|
Package = dr["Package"].ToString(),
|
|
|
DateCode = dr["DateCode"].ToString(),
|
|
|
PackageGood = dr["PackageGood"].ToString(),
|
|
|
LeakProduct = dr["LeakProduct"].ToString(),
|
|
|
NormalOpen = dr["NormalOpen"].ToString(),
|
|
|
BoxQuantity = dr["BoxQuantity"].ToString()
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
|
|
|
}
|
|
|
while (selfInspectionList.Count < 7)
|
|
|
{
|
|
|
selfInspectionList.Add(new SelfInspectionModel());
|
|
|
}
|
|
|
return selfInspectionList;
|
|
|
}
|
|
|
|
|
|
public int AddSelfInspection(SelfInspectionModel selfInspection)
|
|
|
{
|
|
|
string sql = $@"insert into [dbo].[mes_self_inspection] (Id,Other,Inspector,Reason,deviceCode,workDate,InspectionTime,MissingTie,Package,DateCode,PackageGood,LeakProduct,NormalOpen,BoxQuantity,workorder_id,CreateTime) values ('{selfInspection.Id}','{selfInspection.Other}','{selfInspection.Inspector}','{selfInspection.Reason}','{selfInspection.deviceCode}','{selfInspection.workDate}','{selfInspection.InspectionTime}','{selfInspection.MissingTie}','{selfInspection.Package}','{selfInspection.DateCode}','{selfInspection.PackageGood}','{selfInspection.LeakProduct}','{selfInspection.NormalOpen}','{selfInspection.BoxQuantity}','{selfInspection.workOrderId}',GETDATE())";
|
|
|
return Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public int EditSelfInspection(SelfInspectionModel selfInspection)
|
|
|
{
|
|
|
string sql = $@"update [dbo].[mes_self_inspection] set Other='{selfInspection.Other}',Inspector='{selfInspection.Inspector}',Reason='{selfInspection.Reason}',InspectionTime='{selfInspection.InspectionTime}',MissingTie='{selfInspection.MissingTie}',Package='{selfInspection.Package}',DateCode='{selfInspection.DateCode}',PackageGood='{selfInspection.PackageGood}',LeakProduct='{selfInspection.LeakProduct}',NormalOpen='{selfInspection.NormalOpen}',BoxQuantity='{selfInspection.BoxQuantity}' where Id='{selfInspection.Id}'";
|
|
|
return Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public List<FirstInspectionReportModel> GetFirstInspectionReportModels(string userName, string workDate)
|
|
|
{
|
|
|
string sql = $@"select top 5
|
|
|
Id,CheckTimeLeft,InspectionTime,CheckTimeRight,MaterialLeft,MaterialRight,AppearanceLeft,AppearanceRight,StampLeft,StampRight
|
|
|
SprayLeft,SprayRight,PackageLeft,PackageRight,GenerateLeft,GenerateRight,DeviceLeft,DeviceRight,WorkLeft,WorkRight,OtherLeft,OtherRight,
|
|
|
OverLeft,OverRight,CreateTime,UserName,WorkDateLeft,WorkDateRight from mes_first_inspection_report where UserName='{userName}' and WorkDateLeft='{workDate}' order by CreateTime desc";
|
|
|
List<FirstInspectionReportModel> firstInspectionReportList = new List<FirstInspectionReportModel>();
|
|
|
try
|
|
|
{
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in dtset.Tables[0].Rows)
|
|
|
{
|
|
|
firstInspectionReportList.Add(new FirstInspectionReportModel()
|
|
|
{
|
|
|
Id = dr["Id"].ToString(),
|
|
|
CheckTimeLeft = dr["CheckTimeLeft"].ToString(),
|
|
|
InspectionTime = dr["InspectionTime"].ToString(),
|
|
|
CheckTimeRight = dr["CheckTimeRight"].ToString(),
|
|
|
MaterialLeft = dr["MaterialLeft"].ToString(),
|
|
|
MaterialRight = dr["MaterialRight"].ToString(),
|
|
|
AppearanceLeft = dr["AppearanceLeft"].ToString(),
|
|
|
AppearanceRight = dr["AppearanceRight"].ToString(),
|
|
|
StampLeft = dr["StampLeft"].ToString(),
|
|
|
StampRight = dr["StampRight"].ToString(),
|
|
|
SprayLeft = dr["SprayLeft"].ToString(),
|
|
|
SprayRight = dr["SprayRight"].ToString(),
|
|
|
PackageLeft = dr["PackageLeft"].ToString(),
|
|
|
PackageRight = dr["PackageRight"].ToString(),
|
|
|
GenerateLeft = dr["GenerateLeft"].ToString(),
|
|
|
GenerateRight = dr["GenerateRight"].ToString(),
|
|
|
DeviceLeft = dr["DeviceLeft"].ToString(),
|
|
|
DeviceRight = dr["DeviceRight"].ToString(),
|
|
|
WorkLeft = dr["WorkLeft"].ToString(),
|
|
|
WorkRight = dr["WorkRight"].ToString(),
|
|
|
OtherLeft = dr["OtherLeft"].ToString(),
|
|
|
OtherRight = dr["OtherRight"].ToString(),
|
|
|
OverLeft = dr["OverLeft"].ToString(),
|
|
|
OverRight = dr["OverRight"].ToString(),
|
|
|
UserName = dr["UserName"].ToString(),
|
|
|
WorkDateLeft = dr["WorkDate"].ToString(),
|
|
|
WorkDateRight = dr["WorkDate"].ToString(),
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
|
|
|
}
|
|
|
while (firstInspectionReportList.Count < 5)
|
|
|
{
|
|
|
firstInspectionReportList.Add(new FirstInspectionReportModel());
|
|
|
}
|
|
|
return firstInspectionReportList;
|
|
|
}
|
|
|
|
|
|
public void AddFirstInspectionReportModel(FirstInspectionReportModel item)
|
|
|
{
|
|
|
string sql = $@"insert into [dbo].[mes_first_inspection_report] (Id,CheckTimeLeft,InspectionTime,CheckTimeRight,MaterialLeft,MaterialRight,AppearanceLeft,AppearanceRight,StampLeft,StampRight,SprayLeft,SprayRight,PackageLeft,PackageRight,GenerateLeft,GenerateRight,DeviceLeft,DeviceRight,WorkLeft,WorkRight,OtherLeft,OtherRight,OverLeft,OverRight,CreateTime,UserName,WorkDateLeft,WorkDateRight) values ('{item.Id}','{item.CheckTimeLeft}','{item.InspectionTime}','{item.CheckTimeRight}','{item.MaterialLeft}','{item.MaterialRight}','{item.AppearanceLeft}','{item.AppearanceRight}','{item.StampLeft}','{item.StampRight}','{item.SprayLeft}','{item.SprayRight}','{item.PackageLeft}','{item.PackageRight}','{item.GenerateLeft}','{item.GenerateRight}','{item.DeviceLeft}','{item.DeviceRight}','{item.WorkLeft}','{item.WorkRight}','{item.OtherLeft}','{item.OtherRight}','{item.OverLeft}','{item.OverRight}',GETDATE(),'{item.UserName}','{item.WorkDateLeft}','{item.WorkDateRight}')";
|
|
|
Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public void UpdateFirstInspectionReportModel(FirstInspectionReportModel item)
|
|
|
{
|
|
|
string sql = $@"update [dbo].[mes_first_inspection_report] set CheckTimeLeft='{item.CheckTimeLeft}',InspectionTime='{item.InspectionTime}',CheckTimeRight='{item.CheckTimeRight}',MaterialLeft='{item.MaterialLeft}',MaterialRight='{item.MaterialRight}',AppearanceLeft='{item.AppearanceLeft}',AppearanceRight='{item.AppearanceRight}',StampLeft='{item.StampLeft}',StampRight='{item.StampRight}',SprayLeft='{item.SprayLeft}',SprayRight='{item.SprayRight}',PackageLeft='{item.PackageLeft}',PackageRight='{item.PackageRight}',GenerateLeft='{item.GenerateLeft}',GenerateRight='{item.GenerateRight}',DeviceLeft='{item.DeviceLeft}',DeviceRight='{item.DeviceRight}',WorkLeft='{item.WorkLeft}',WorkRight='{item.WorkRight}',OtherLeft='{item.OtherLeft}',OtherRight='{item.OtherRight}',OverLeft='{item.OverLeft}',OverRight='{item.OverRight}' where Id='{item.Id}'";
|
|
|
Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public string GetBaseEquipment(string v)
|
|
|
{
|
|
|
string sql = $@"select equipment_code,equipment_name from base_equipment where equipment_code='{v}'";
|
|
|
DataSet dtset = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (dtset != null && dtset.Tables.Count > 0 && dtset.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
return dtset.Tables[0].Rows[0]["equipment_name"].ToString();
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
public List<BaseDictData> GetConversionReportType()
|
|
|
{
|
|
|
List<BaseDictData> list = new List<BaseDictData>();
|
|
|
string sql = $@"select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark
|
|
|
from base_dict_data
|
|
|
where dict_type = 'self_mutual_inspection'
|
|
|
order by dict_sort asc";
|
|
|
DataSet ds = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in ds.Tables[0].Rows)
|
|
|
{
|
|
|
list.Add(new BaseDictData()
|
|
|
{
|
|
|
dict_code = dr["dict_code"].ToString(),
|
|
|
dict_sort = dr["dict_sort"].ToString(),
|
|
|
dict_label = dr["dict_label"].ToString(),
|
|
|
dict_value = dr["dict_value"].ToString(),
|
|
|
dict_type = dr["dict_type"].ToString(),
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public List<BaseDictData> GetSelfCheckInfo(string dicType)
|
|
|
{
|
|
|
List<BaseDictData> list = new List<BaseDictData>();
|
|
|
string sql = $@"select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark
|
|
|
from base_dict_data
|
|
|
where dict_type = '{dicType}'
|
|
|
order by dict_sort asc";
|
|
|
DataSet ds = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in ds.Tables[0].Rows)
|
|
|
{
|
|
|
list.Add(new BaseDictData()
|
|
|
{
|
|
|
dict_code = dr["dict_code"].ToString(),
|
|
|
dict_sort = dr["dict_sort"].ToString(),
|
|
|
dict_label = dr["dict_label"].ToString(),
|
|
|
dict_value = dr["dict_value"].ToString(),
|
|
|
dict_type = dr["dict_type"].ToString(),
|
|
|
remark = dr["remark"].ToString()
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
public int InsertMesTableSelf(MesTableSelf model)
|
|
|
{
|
|
|
string sql = $@"insert into [dbo].[mes_table_self] (id,report_name,line_code,product_date,product_code,product_name,check_date,remark,bz,create_by,create_time,update_by,update_time,factory_code,del_flag) values ('{model.id}','{model.report_name}','{model.line_code}','{model.product_date}','{model.product_code}','{model.product_name}','{model.check_date}','{model.remark}','{model.bz}','{LoginUser.UserName}',GetDate(),'{model.update_by}',GetDate(),'{model.factory_code}','{model.del_flag}')";
|
|
|
return Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public MesTableSelf GetMesTableSelf(string lineCode, string productCode, string checkDate, string reprot_name)
|
|
|
{
|
|
|
string sql = $@"select * from [dbo].[mes_table_self] where line_code='{lineCode}' and check_date='{checkDate}' and report_name='{reprot_name}'";
|
|
|
if (!string.IsNullOrEmpty(productCode))
|
|
|
{
|
|
|
sql += $@" and product_name='{productCode}'";
|
|
|
}
|
|
|
DataSet ds = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
DataRow dr = ds.Tables[0].Rows[0];
|
|
|
return new MesTableSelf()
|
|
|
{
|
|
|
id = dr["id"].ToString(),
|
|
|
line_code = dr["line_code"].ToString(),
|
|
|
product_date = dr["product_date"].ToString(),
|
|
|
product_code = dr["product_code"].ToString(),
|
|
|
product_name = dr["product_name"].ToString(),
|
|
|
check_date = dr["check_date"].ToString(),
|
|
|
remark = dr["remark"].ToString(),
|
|
|
bz = dr["bz"].ToString(),
|
|
|
create_by = dr["create_by"].ToString(),
|
|
|
create_time = dr["create_time"].ToString(),
|
|
|
update_by = dr["update_by"].ToString(),
|
|
|
update_time = dr["update_time"].ToString(),
|
|
|
factory_code = dr["factory_code"].ToString(),
|
|
|
del_flag = dr["del_flag"].ToString(),
|
|
|
report_name = dr["report_name"].ToString(),
|
|
|
};
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public List<MesTableSelfDetialModel> GetMesTableSelfDetial(string id, int count)
|
|
|
{
|
|
|
string sql = $@"select * from [dbo].[mes_table_self_detial] where belong_to='{id}'";
|
|
|
DataSet ds = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
List<MesTableSelfDetialModel> list = new List<MesTableSelfDetialModel>();
|
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in ds.Tables[0].Rows)
|
|
|
{
|
|
|
int dable_line = 0;
|
|
|
try
|
|
|
{
|
|
|
dable_line = int.Parse(dr["table_line"].ToString());
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
|
|
|
}
|
|
|
list.Add(new MesTableSelfDetialModel()
|
|
|
{
|
|
|
id = dr["id"].ToString(),
|
|
|
belong_to = dr["belong_to"].ToString(),
|
|
|
remark = dr["remark"].ToString(),
|
|
|
bz = dr["bz"].ToString(),
|
|
|
factory_code = dr["factory_code"].ToString(),
|
|
|
del_flag = dr["del_flag"].ToString(),
|
|
|
check_time_s = dr["check_time_s"].ToString(),
|
|
|
check_time_e = dr["check_time_e"].ToString(),
|
|
|
check_result = dr["check_result"].ToString(),
|
|
|
info_code = dr["info_code"].ToString(),
|
|
|
info_name = dr["info_name"].ToString(),
|
|
|
table_line = dable_line,
|
|
|
});
|
|
|
}
|
|
|
list = list.OrderByDescending(t => t.table_line).ToList();
|
|
|
var distinctList = list.OrderByDescending(t => t.table_line).Select(t => t.table_line).Distinct().ToList();
|
|
|
for (int i = 0; i < distinctList.Count; i++)
|
|
|
{
|
|
|
list.Where(t => t.table_line == distinctList[i]).ToList().ForEach(t =>
|
|
|
{
|
|
|
t.index = i;
|
|
|
});
|
|
|
if (i > count)
|
|
|
{
|
|
|
list.RemoveAll(t => t.table_line == distinctList[i]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public int InsertMesTableSelfDetial(MesTableSelfDetialModel model)
|
|
|
{
|
|
|
string sql = $@"insert into [dbo].[mes_table_self_detial] (id,table_line,belong_to,remark,bz,factory_code,del_flag,check_time_s,check_time_e,check_result,info_code,info_name,create_time) values ('{model.id}','{model.table_line}','{model.belong_to}','{model.remark}','{model.bz}','{model.factory_code}','{model.del_flag}','{model.check_time_s}','{model.check_time_e}','{model.check_result}','{model.info_code}','{model.info_name}',GetDate())";
|
|
|
return Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public int UpdateMesTableSelfDetial(MesTableSelfDetialModel model)
|
|
|
{
|
|
|
string sql = $@"update [dbo].[mes_table_self_detial] set update_time=GetDate(),remark='{model.remark}',bz='{model.bz}',factory_code='{model.factory_code}',del_flag='{model.del_flag}',check_time_s='{model.check_time_s}',check_time_e='{model.check_time_e}',check_result='{model.check_result}',info_code='{model.info_code}',info_name='{model.info_name}' where id='{model.id}'";
|
|
|
return Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public MesTableSelfDetialModel GetMesTableSelfDetialById(string id)
|
|
|
{
|
|
|
string sql = $@"select check_result,check_time_s,check_time_e from [dbo].[mes_table_self_detial] where id='{id}'";
|
|
|
DataSet ds = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
return new MesTableSelfDetialModel()
|
|
|
{
|
|
|
check_result = ds.Tables[0].Rows[0]["check_result"].ToString(),
|
|
|
check_time_s = ds.Tables[0].Rows[0]["check_time_s"].ToString(),
|
|
|
check_time_e = ds.Tables[0].Rows[0]["check_time_e"].ToString(),
|
|
|
};
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public void UpdateMesTableSelf(string id, string text, string text1)
|
|
|
{
|
|
|
string sql = $@"update [dbo].[mes_table_self] set bz='{text}',create_by='{text1}' where id='{id}'";
|
|
|
Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
|
|
|
public List<string> GetBatchCode(string workId)
|
|
|
{
|
|
|
string sql = $@"select batch_code from pro_order_workorder_batch where workorder_id='{workId}'";
|
|
|
DataSet ds = Utils.netClientDBHelper.getDataSet(sql);
|
|
|
List<string> list = new List<string>();
|
|
|
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
|
|
|
{
|
|
|
foreach (DataRow dr in ds.Tables[0].Rows)
|
|
|
{
|
|
|
list.Add(dr["batch_code"].ToString());
|
|
|
}
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public int InsertMesUnitPriceReport(string user_name, string nick_name, string post, string gs, string kk, string remark, string deviceCode, string product_code, string product_name, string childprocess_code, string childprocess_name, string workorder_code, string workorder_code_sap, string workDate, string attr1)
|
|
|
{
|
|
|
string sql = $@"insert into mes_unitprice_report (id,workorder_code,workorder_code_sap,product_name,product_code,childprocess_code,childprocess_name,user_name,nick_name,create_time,line_code,post,kk,attr2,remark,work_order_product_date,attr1,attr3)
|
|
|
values ('{Guid.NewGuid().ToString().Substring(0, 32)}','{workorder_code}','{workorder_code_sap}','{product_name}','{product_code}','{childprocess_code}','{childprocess_name}','{user_name}','{nick_name}',GetDate(),'{deviceCode}','{post}',{kk},'{gs}','{remark}','{workDate}','{attr1}','f')";
|
|
|
return Utils.netClientDBHelper.executeUpdate(sql);
|
|
|
}
|
|
|
}
|
|
|
public class MesTableSelfDetialModel
|
|
|
{
|
|
|
public string id { get; set; }
|
|
|
public string belong_to { get; set; }
|
|
|
public string remark { get; set; }
|
|
|
public string bz { get; set; }
|
|
|
public string factory_code { get; set; }
|
|
|
public string del_flag { get; set; } = "0";
|
|
|
public string check_time_s { get; set; }
|
|
|
public string check_time_e { get; set; }
|
|
|
public string check_result { get; set; }
|
|
|
public string info_code { get; set; }
|
|
|
public string info_name { get; set; }
|
|
|
public int table_line { get; set; }
|
|
|
public int index { get; set; }
|
|
|
}
|
|
|
|
|
|
public class MesTableFirstInspectionDetialModel
|
|
|
{
|
|
|
public string id { get; set; }
|
|
|
public string belong_to { get; set; }
|
|
|
public string remark { get; set; }
|
|
|
public string bz { get; set; }
|
|
|
public string factory_code { get; set; }
|
|
|
public string del_flag { get; set; } = "0";
|
|
|
public string check_time_s { get; set; }
|
|
|
public string check_time_e { get; set; }
|
|
|
public string check_result { get; set; }
|
|
|
public string info_code { get; set; }
|
|
|
public string info_name { get; set; }
|
|
|
public int table_line { get; set; }
|
|
|
public int index { get; set; }
|
|
|
}
|
|
|
}
|