From 6fedaca99e834bfe98c7efb95f8ae41dc0ea6d0f Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 25 九月 2023 19:50:35 +0800
Subject: [PATCH] 1.MES工单打印接口 2.生产开报工,报工接口 3.生产报工发料接口、收料接口、不良处理提交接口
---
VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs | 1251 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 1,220 insertions(+), 31 deletions(-)
diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index 92d34aa..73794b2 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -1,4 +1,5 @@
锘縰sing Dapper;
+using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
@@ -167,7 +168,7 @@
saleOrderCode = saleordercode,
saleOrderDeliveryDate = Convert.ToDateTime(saleOrderDeliveryDate),
data_sources = "ERP",
- isstep="N" //鏄惁鍏宠仈宸ュ簭
+ isstep = "N" //鏄惁鍏宠仈宸ュ簭
}
});
sumqty = sumqty + (decimal.Parse(markqty) - sumqty);
@@ -196,7 +197,7 @@
saleOrderCode = saleordercode,
saleOrderDeliveryDate = Convert.ToDateTime(saleOrderDeliveryDate),
data_sources = "ERP",
- isstep= "N"//鏄惁鍏宠仈宸ュ簭
+ isstep = "N"//鏄惁鍏宠仈宸ュ簭
}
});
}
@@ -463,7 +464,7 @@
// --------------鏌ヨ鎸囧畾鏁版嵁--------------
var total = 0; //鎬绘潯鏁�
var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.torg_name as wkshp_name,
- A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date
+ A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,A.data_sources,A.isstep
from TK_Wrk_Man A
left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code
left join TMateriel_Info B on A.materiel_code=B.partcode
@@ -600,23 +601,28 @@
#region[MES宸ュ崟缂栬緫鑾峰彇宸ュ簭鏁版嵁]
public static ToMessage UpdateMesOrderStepSearch(string sourceid, string sourcewo, string wocode, string data_sources)
{
- string sql = "";decimal canupdate_qty = 0;
+ string sql = ""; decimal canupdate_qty = 0;
var dynamicParams = new DynamicParameters();
Dictionary<object, object> dir = new Dictionary<object, object>();
try
{
if (data_sources == "ERP") //鏁版嵁鏉ユ簮ERP
{
- //鏌ヨ褰撳墠宸ュ崟鍙慨鏀规暟閲�=璁㈠崟鎬绘暟-宸蹭笅杈惧伐鍗曟�绘暟
- sql = @"select max(qty) as qty,isnull(sum(M.plan_qty),0) as plan_qty from TKimp_Ewo E
- inner join TK_Wrk_Man M on E.wo=M.m_po and E.id=M.sourceid
- where E.wo=@sourcewo and E.id=@sourceid and M.wo_code<>@wocode";
+ //鏌ヨ璁㈠崟浠诲姟鎬绘暟
+ sql = @"select qty from TKimp_Ewo where id=@sourceid and wo=@sourcewo";
dynamicParams.Add("@sourceid", sourceid);
dynamicParams.Add("@sourcewo", sourcewo);
dynamicParams.Add("@wocode", wocode);
- var data = DapperHelper.selectdata(sql,dynamicParams);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ //鏌ヨ褰撳墠宸ュ崟鍙慨鏀规暟閲�=璁㈠崟鎬绘暟-宸蹭笅杈惧伐鍗曟�绘暟
+ sql = @"select isnull(sum(plan_qty),0) as plan_qty from TK_Wrk_Man
+ where sourceid=@sourceid and m_po=@sourcewo and wo_code<>@wocode";
+ dynamicParams.Add("@sourceid", sourceid);
+ dynamicParams.Add("@sourcewo", sourcewo);
+ dynamicParams.Add("@wocode", wocode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
//褰撳墠宸ュ崟鍙慨鏀规暟閲�=璁㈠崟鏁伴噺-闈炲綋鍓嶅伐鍗曟�讳笅杈惧伐鍗曟暟閲�
- canupdate_qty = decimal.Parse(data.Rows[0]["qty"].ToString()) - decimal.Parse(data.Rows[0]["plan_qty"].ToString());
+ canupdate_qty = decimal.Parse(data0.Rows[0]["qty"].ToString()) - decimal.Parse(data.Rows[0]["plan_qty"].ToString());
}
if (data_sources == "MES") //鏁版嵁鏉ユ簮MES
{
@@ -673,7 +679,7 @@
{
//鍐欏叆宸ュ崟琛�
sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,sourceid,m_po,saleOrderDeliveryDate,piroque,isaps,data_sources,isstep)
- values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@m_po,@saleOrderDeliveryDate,@orderlev,@isaps,@data_sources,@isstep)";
+ values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@sourceid,@m_po,@saleOrderDeliveryDate,@orderlev,@isaps,@data_sources,@isstep)";
list.Add(new
{
str = sql,
@@ -687,13 +693,13 @@
lm_user = us.usercode,
lm_date = DateTime.Now.ToString(),
materiel_code = json.partcode,
- sourceid = json.sourceid==""?"NULL": json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
+ sourceid = json.sourceid == "" ? null : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
m_po = json.sourcewo,
saleOrderDeliveryDate = json.deliverydate,
orderlev = "3",//浼樺厛绾э細鐗圭骇锛�1锛� 绱ф�ワ紙2锛� 姝e父锛�3锛�
isaps = "N", //鏄惁鎺掍骇,榛樿N Y=鏄� N=鍚�
data_sources = json.data_sources,
- isstep= json.isstep //鏄惁鍏宠仈宸ュ簭
+ isstep = json.isstep //鏄惁鍏宠仈宸ュ簭
}
});
//鍐欏叆宸ュ簭浠诲姟琛�
@@ -714,8 +720,8 @@
status = json.wostatus,
isbott = json.WorkListSub[i].isbott,
isend = json.WorkListSub[i].isend,
- username = us.usercode,
- CreateDate = DateTime.Now.ToString()
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString()
}
});
}
@@ -750,14 +756,15 @@
{
wo_code = json.wocode,
wotype = json.wotype,
+ wkshp_code = json.wkshopcode,
plan_qty = json.woqty,
materiel_code = json.partcode,
- sourceid = json.sourceid == "" ? "NULL" : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
+ sourceid = json.sourceid == "" ? null : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
m_po = json.sourcewo,
saleOrderDeliveryDate = json.deliverydate,
lm_user = us.usercode,
lm_date = DateTime.Now.ToString(),
- isstep=json.isstep //鏄惁鍏宠仈宸ュ簭
+ isstep = json.isstep //鏄惁鍏宠仈宸ュ簭
}
});
//鍒犻櫎宸ュ崟宸ュ簭琛�
@@ -788,8 +795,8 @@
status = json.wostatus,
isbott = json.WorkListSub[i].isbott,
isend = json.WorkListSub[i].isend,
- username = us.usercode,
- CreateDate = DateTime.Now.ToString()
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString()
}
});
}
@@ -868,7 +875,7 @@
//list.Add(new { str = sql, parm = new { wocode = wocode } });
//鍒犻櫎宸ュ崟琛�
- sql = @"update TK_Wrk_Man set is_delete='1' where wo_code=@wocode";
+ sql = @"delete TK_Wrk_Man where wo_code=@wocode";
list.Add(new { str = sql, parm = new { wocode = wocode } });
}
else
@@ -882,7 +889,7 @@
if (aa)
{
//鍐欏叆鎿嶄綔璁板綍琛�
- LogHelper.DbOperateLog(us.usercode, "鍒犻櫎", "鍒犻櫎浜嗗伐鍗�:" +wocode, us.usertype);
+ LogHelper.DbOperateLog(us.usercode, "鍒犻櫎", "鍒犻櫎浜嗗伐鍗�:" + wocode, us.usertype);
mes.code = "200";
mes.count = 0;
mes.Message = "鍒犻櫎鎴愬姛!";
@@ -908,6 +915,66 @@
#endregion
+ #region[MES宸ュ崟娲惧彂鎻愪氦]
+ public static ToMessage MesOrderDistribution(string[] wocodelist, User us)
+ {
+ string sql = "";
+ List<object> list = new List<object>();
+ try
+ {
+ //鏇存柊宸ュ崟琛ㄧ姸鎬�
+ sql = @"update TK_Wrk_Man set status=@status where wo_code in @wocode";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ wocode = wocodelist,
+ status = "ALLO"
+ }
+ });
+ //鏇存柊宸ュ簭浠诲姟琛ㄧ姸鎬�
+ sql = @"update TK_Wrk_Step set status=@status where wo_code in @wocode";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ wocode = wocodelist,
+ status = "ALLO"
+ }
+ });
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "娲惧彂", "娲惧彂浜嗗伐鍗�:" + string.Join(",", wocodelist), us.usertype);
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "MES宸ュ崟娲惧彂鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "MES宸ュ缓娲惧彂澶辫触!";
+ mes.data = null;
+ }
+
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+
#region[宸ュ崟鍏抽棴鍒楄〃鏌ヨ]
public static ToMessage MesOrderClosedSearch(string mesorderstus, string mesordercode, string sourceorder, string saleordercode, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
{
@@ -915,12 +982,12 @@
string search = "";
try
{
- if (mesorderstus == "宸插叧闂�")
+ if (mesorderstus == "CLOSED")
{
search += "and A.status=@mesorderstus ";
- dynamicParams.Add("@mesorderstus","CLOSED");
+ dynamicParams.Add("@mesorderstus", "CLOSED");
}
- if (mesorderstus == "鏈叧闂�")
+ if (mesorderstus == "NOCLOSED")
{
search += "and A.status<>@mesorderstus ";
dynamicParams.Add("@mesorderstus", "CLOSED");
@@ -978,7 +1045,7 @@
// --------------鏌ヨ鎸囧畾鏁版嵁--------------
var total = 0; //鎬绘潯鏁�
var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.torg_name as wkshp_name,
- A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date
+ A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,A.data_sources
from TK_Wrk_Man A
left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code
left join TMateriel_Info B on A.materiel_code=B.partcode
@@ -1005,25 +1072,27 @@
#endregion
#region[MES宸ュ崟鎵归噺鍏抽棴鎻愪氦]
- public static ToMessage MesOrderBitchClosedSeave(User us, DataTable dt)
+ public static ToMessage MesOrderBitchClosedSeave(User us, string[] wocodelist)
{
var sql = "";
List<object> list = new List<object>();
var dynamicParams = new DynamicParameters();
try
{
- for (int i = 0; i < dt.Rows.Count; i++)
+ for (int i = 0; i < wocodelist.Length; i++)
{
//鍏抽棴宸ュ崟瀵瑰簲宸ュ簭浠诲姟
- sql = @"update TK_Wrk_Step set status='CLOSED' where wo_code=@wocode";
- list.Add(new { str = sql, parm = new { wocode = dt.Rows[i]["WO_CODE"].ToString() } });
+ sql = @"update TK_Wrk_Step set status='CLOSED' where wo_code in @wocode";
+ list.Add(new { str = sql, parm = new { wocode = wocodelist } });
//鍥炲啓宸ュ崟琛ㄧ姸鎬佷负(鍏抽棴)
- sql = @"update TK_Wrk_Man set status='CLOSED',closeuser=@username,closedate=@closedate where wo_code=@wocode";
- list.Add(new { str = sql, parm = new { wocode = dt.Rows[i]["WO_CODE"].ToString(), username = us.usercode, closedate = DateTime.Now.ToString() } });
+ sql = @"update TK_Wrk_Man set status='CLOSED',closeuser=@username,closedate=@closedate where wo_code in @wocode";
+ list.Add(new { str = sql, parm = new { wocode = wocodelist, username = us.usercode, closedate = DateTime.Now.ToString() } });
}
bool aa = DapperHelper.DoTransaction(list);
if (aa)
{
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鍏抽棴", "鍏抽棴浜嗗伐鍗�:" + string.Join(",", wocodelist), us.usertype);
mes.code = "200";
mes.count = 0;
mes.Message = "宸ュ崟鍏抽棴鎴愬姛!";
@@ -1047,5 +1116,1125 @@
return mes;
}
#endregion
+
+
+ #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)]
+ public static ToMessage MesOrderStepSearch(string wocode, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
+ {
+ var sql = "";
+ string search = "";
+ string ordercode = "";
+ string stepcode = "";
+ var dynamicParams = new DynamicParameters();
+ var total = 0; //鎬绘潯鏁�
+ try
+ {
+ if (wocode != "" && wocode != null)
+ {
+ string[] arra = wocode.Split(';');
+ if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
+ {
+ ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ }
+ if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
+ {
+ ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ }
+
+ if (ordercode != "" && stepcode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+ {
+ search += "and A.wo_code=@ordercode ";
+ dynamicParams.Add("@ordercode", ordercode);
+ }
+ if (ordercode != "" && stepcode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
+ {
+ search += "and A.wo_code=@ordercode ";
+ dynamicParams.Add("@ordercode", ordercode);
+ search += "and S.stepcode=@stepcode ";
+ dynamicParams.Add("@stepcode", stepcode);
+ }
+ }
+ if (stepcode != "")
+ {
+ //鏌ユ壘褰撳墠宸ュ簭灞炴��
+ sql = @"select * from TStep where stepcode=@stepcode";
+ dynamicParams.Add("@stepcode", stepcode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count > 0)
+ {
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "W")
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭浠诲姟涓哄鍗忓伐搴忎换鍔�,璇峰墠寰�澶栧崗鎿嶄綔椤电鎵ц!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ if (partcode != "" && partcode != null)
+ {
+ search += "and M.partcode like '%'+@partcode+'%' ";
+ dynamicParams.Add("@partcode", partcode);
+ }
+ if (partname != "" && partname != null)
+ {
+ search += "and M.partname like '%'+@partname+'%' ";
+ dynamicParams.Add("@partname", partname);
+ }
+ if (partspec != "" && partspec != null)
+ {
+ search += "and M.partspec like '%'+@partspec+'%' ";
+ dynamicParams.Add("@partspec", partspec);
+ }
+ //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
+ sql = @"select A.status,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
+ S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,B.lm_date
+ from TK_Wrk_Step A
+ left join TK_Wrk_Man B on A.wo_code=B.wo_code
+ left join TMateriel_Info M on B.materiel_code=M.partcode
+ left join TStep S on A.step_code=S.stepcode
+ where A.status in('ALLO','START') and S.flwtype='Z' " + search;
+ var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+ if (data.ToList().Count > 0)
+ {
+ mes.code = "200";
+ mes.count = total;
+ mes.Message = "鏌ヨ鎴愬姛!";
+ mes.data = data.ToList();
+ return mes;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鏃犲彲鎵ц鐨勭敓浜т换鍔�,浠诲姟宸插畬鎴愭垨宸插叧闂�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(澶栧崗)]
+ public static ToMessage MesOrderWxStepSearch(string wocode, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
+ {
+ var sql = "";
+ string search = "";
+ string ordercode = "";
+ string stepcode = "";
+ var dynamicParams = new DynamicParameters();
+ var total = 0; //鎬绘潯鏁�
+ try
+ {
+ if (wocode != "" && wocode != null)
+ {
+ string[] arra = wocode.Split(';');
+ if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
+ {
+ ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ }
+ if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
+ {
+ ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ }
+
+ if (ordercode != "" && stepcode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+ {
+ search += "and A.wo_code=@ordercode ";
+ dynamicParams.Add("@ordercode", ordercode);
+ }
+ if (ordercode != "" && stepcode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
+ {
+ search += "and A.wo_code=@ordercode ";
+ dynamicParams.Add("@ordercode", ordercode);
+ search += "and S.stepcode=@stepcode ";
+ dynamicParams.Add("@stepcode", stepcode);
+ }
+ }
+ if (stepcode != "")
+ {
+ //鏌ユ壘褰撳墠宸ュ簭灞炴��
+ sql = @"select * from TStep where stepcode=@stepcode";
+ dynamicParams.Add("@stepcode", stepcode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count > 0)
+ {
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭浠诲姟涓鸿嚜鍒跺伐搴忎换鍔�,璇峰墠寰�鑷埗鎿嶄綔椤电鎵ц!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ if (partcode != "" && partcode != null)
+ {
+ search += "and M.partcode like '%'+@partcode+'%' ";
+ dynamicParams.Add("@partcode", partcode);
+ }
+ if (partname != "" && partname != null)
+ {
+ search += "and M.partname like '%'+@partname+'%' ";
+ dynamicParams.Add("@partname", partname);
+ }
+ if (partspec != "" && partspec != null)
+ {
+ search += "and M.partspec like '%'+@partspec+'%' ";
+ dynamicParams.Add("@partspec", partspec);
+ }
+ //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
+ sql = @"select A.status,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
+ S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,A.plan_startdate,A.plan_enddate,B.lm_date
+ from TK_Wrk_Step A
+ left join TK_Wrk_Man B on A.wo_code=B.wo_code
+ left join TMateriel_Info M on B.materiel_code=M.partcode
+ left join TStep S on A.step_code=S.stepcode
+ where A.status in('ALLO','START') and S.flwtype='W' " + search;
+ var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+ if (data.ToList().Count > 0)
+ {
+ mes.code = "200";
+ mes.count = total;
+ mes.Message = "鏌ヨ鎴愬姛!";
+ mes.data = data.ToList();
+ return mes;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鏃犲彲鎵ц鐨勭敓浜т换鍔�,浠诲姟宸插畬鎴愭垨宸插叧闂�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇)]
+ public static ToMessage MesOrderNgStepSearch(string wocode, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
+ {
+ var sql = "";
+ string search = "";
+ string ordercode = "";
+ string stepcode = "";
+ var dynamicParams = new DynamicParameters();
+ var total = 0; //鎬绘潯鏁�
+ try
+ {
+ if (wocode != "" && wocode != null)
+ {
+ string[] arra = wocode.Split(';');
+ if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
+ {
+ ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ }
+ if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
+ {
+ ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
+ }
+
+ if (ordercode != "" && stepcode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+ {
+ search += "and A.wo_code=@ordercode ";
+ dynamicParams.Add("@ordercode", ordercode);
+ }
+ if (ordercode != "" && stepcode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
+ {
+ search += "and A.wo_code=@ordercode ";
+ dynamicParams.Add("@ordercode", ordercode);
+ search += "and S.stepcode=@stepcode ";
+ dynamicParams.Add("@stepcode", stepcode);
+ }
+ }
+ if (stepcode != "")
+ {
+ //鏌ユ壘褰撳墠宸ュ簭浠诲姟
+ sql = @"select * from TK_Wrk_Step where step_code=@stepcode and wo_code=@ordercode";
+ dynamicParams.Add("@stepcode", stepcode);
+ dynamicParams.Add("@ordercode", ordercode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count <= 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭浠诲姟涓嶅瓨鍦�,鏃犳晥鏉$爜!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ if (partcode != "" && partcode != null)
+ {
+ search += "and M.partcode like '%'+@partcode+'%' ";
+ dynamicParams.Add("@partcode", partcode);
+ }
+ if (partname != "" && partname != null)
+ {
+ search += "and M.partname like '%'+@partname+'%' ";
+ dynamicParams.Add("@partname", partname);
+ }
+ if (partspec != "" && partspec != null)
+ {
+ search += "and M.partspec like '%'+@partspec+'%' ";
+ dynamicParams.Add("@partspec", partspec);
+ }
+ //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
+ sql = @"select A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isend,
+ S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,B.lm_date
+ from TK_Wrk_Step A
+ left join TK_Wrk_Man B on A.wo_code=B.wo_code
+ left join TMateriel_Info M on B.materiel_code=M.partcode
+ left join TStep S on A.step_code=S.stepcode
+ where A.status in('ALLO','START') and A.ng_qty>0 " + search;
+ var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+ if (data.ToList().Count > 0)
+ {
+ mes.code = "200";
+ mes.count = total;
+ mes.Message = "鏌ヨ鎴愬姛!";
+ mes.data = data.ToList();
+ return mes;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鏃犲彲鎵ц鐨勭敓浜т换鍔�,浠诲姟宸插畬鎴愭垨宸插叧闂�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇鏄庣粏)]
+ public static ToMessage MesOrderNgSubStepSearch(string wocode, string stepcode)
+ {
+ var sql = "";
+ var dynamicParams = new DynamicParameters();
+ var dynamicParams1 = new DynamicParameters();
+ Dictionary<string, object> list = new Dictionary<string, object>();
+ ScanStartReportData rt = new ScanStartReportData();
+ try
+ {
+ //1.鏍规嵁宸ュ崟+宸ュ簭鏌ユ壘褰撳墠宸ュ簭鏄惁棣栭亾宸ュ簭
+ sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,
+ A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,A.isbott,A.isend
+ from TK_Wrk_Step A
+ left join TStep T on A.step_code=T.stepcode
+ left join TK_Wrk_Man M on A.wo_code=M.wo_code
+ left join TMateriel_Info P on M.materiel_code=P.partcode
+ where A.wo_code=@ordercode and A.step_code=@stepcode";
+ dynamicParams.Add("@ordercode", wocode);
+ dynamicParams.Add("@stepcode", stepcode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ rt.wo_code = data.Rows[0]["wo_code"].ToString(); //宸ュ崟鍙�
+ rt.partnumber = data.Rows[0]["partcode"].ToString(); //浜у搧缂栫爜
+ rt.partname = data.Rows[0]["partname"].ToString(); //浜у搧鍚嶇О
+ rt.partspec = data.Rows[0]["partspec"].ToString(); //浜у搧瑙勬牸
+ rt.stepcode = data.Rows[0]["stepcode"].ToString(); //宸ュ簭缂栫爜
+ rt.stepname = data.Rows[0]["stepname"].ToString(); //宸ュ簭鍚嶇О
+ rt.stepdesc = data.Rows[0]["descr"].ToString(); //宸ュ簭鎻忚堪
+ rt.planqty = decimal.Parse(data.Rows[0]["plan_qty"].ToString()); //浠诲姟鏁伴噺
+ rt.noreportqty = decimal.Parse(data.Rows[0]["good_qty"].ToString()); //鎶ュ伐鏁伴噺
+ rt.noputqty = decimal.Parse(data.Rows[0]["ng_qty"].ToString()); //涓嶈壇鏁伴噺
+ string isend = data.Rows[0]["isend"].ToString();//鏈亾宸ュ簭
+ rt.seq = data.Rows[0]["seq"].ToString();//宸ュ簭搴忓彿
+
+ //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
+ sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
+ left join TStep T on A.step_code=T.stepcode
+ where A.wo_code=@ordercode and A.seq=@seq+1 ";
+ dynamicParams.Add("@ordercode", wocode);
+ dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["seq"].ToString()));
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0) //鏈変笅閬撳伐搴�
+ {
+ rt.nextstepcode = dt0.Rows[0]["stepcode"].ToString();//涓嬮亾宸ュ簭缂栫爜
+ rt.nextstepname = dt0.Rows[0]["stepname"].ToString();//涓嬮亾宸ュ簭鍚嶇О
+ }
+ if (isend == "Y") //褰撳墠宸ュ簭鏄湯閬撳伐搴�
+ {
+ rt.nextstepcode = "";//璧嬬┖
+ rt.nextstepname = "";//璧嬬┖
+ }
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭浠诲姟涓嶅瓨鍦�!";
+ mes.data = null;
+ return mes;
+ }
+ //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭鎶ュ伐(鏀舵枡)璁板綍,涓斾笉鑹暟閲忓ぇ浜�0
+ //瀛樺偍杩囩▼鍚�
+ sql = @"h_p_IFCLD_MesReportDefectHandleSelect";
+ dynamicParams1.Add("@ordercode", wocode);
+ dynamicParams1.Add("@stepcode", stepcode);
+ DataTable dt = DapperHelper.selectProcedure(sql, dynamicParams1);
+ if (dt.Rows.Count > 0)
+ {
+ list.Add("data1", rt);
+ list.Add("data2", dt);
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "鏌ヨ鎴愬姛!";
+ mes.data = list;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鏃犲彲鎵ц鐨勭敓浜т换鍔�,浠诲姟宸插畬鎴愭垨宸插叧闂�!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region [鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛]
+ public static ToMessage MesOrderStepStart(string OperType, string SelectType, string wocode, string stepcode)
+ {
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ switch (OperType)
+ {
+ case "ZZ":
+ mes = ScanStartReport.ZZEncodingSeach(wocode, stepcode);
+ break;
+ case "WX":
+ mes = ScanStartReport.WXEncodingSeach(SelectType, stepcode, stepcode);
+ break;
+ default:
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦]
+ public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode,string stepprice, string eqpcode, string inbarcode, string reckway, string usergroupcode, string reportuser, string taskqty, string startqty, string reportqty, List<ReportDefectList> defectobjs, string remarks, User us)
+ {
+ var sql = "";
+ decimal ngqty = 0;
+ string[] arra1 = new string[] { };
+ List<object> list = new List<object>();
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+ //鑾峰彇鎶ュ伐浜哄憳銆佸垎閰嶆瘮渚�
+ JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(reportuser);
+ //鍒ゆ柇鏄惁鏈変笉鑹暟鎹�
+ var groupedItems = defectobjs.GroupBy(item => item.defect_code) // 鎸夌紪鐮乧ode鍒嗙粍
+ .Select(group => new { defect_code = group.Key, badqty = group.Sum(item => Convert.ToDecimal(item.badqty)) }).ToList(); // 姹囨�讳笉鑹暟閲�
+ if (groupedItems.Count <= 0)
+ {
+ ngqty = 0;
+ }
+ else
+ {
+ //姹囨�讳笉鑹暟閲�
+ ngqty = groupedItems.Sum(item => Convert.ToDecimal(item.badqty));
+ }
+ list.Clear();
+ //鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�(鏃犳柊澧�)
+ sql = @"select * from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code and style='S' and eqp_code=@eqpcode";
+ dynamicParams.Add("@wo_code", mesordercode);
+ dynamicParams.Add("@step_code", stepcode);
+ dynamicParams.Add("@eqpcode", eqpcode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count <= 0)
+ {
+ //鍐欏叆寮�鎶ュ伐璁板綍琛�
+ sql = @"insert into TK_Wrk_Record(wo_code,step_seq,step_code,step_price,eqp_code,materiel_code,open_person,open_time,task_qty,start_qty,style,lm_user,lm_date)
+ values(@mesordercode,@stepseq,@stepcode,@step_price,@eqpcode,@partcode,@username,@opentime,@taskqty,@startqty,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, step_price=stepprice, eqpcode = eqpcode, partcode = partcode, username = us.usercode, opentime = date, taskqty = taskqty, startqty = startqty, style = "S", lm_user = us.usercode, lm_date = date } });
+ //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负START: 寮�宸�
+ sql = @"update TK_Wrk_Step set status='START' where wo_code=@mesordercode and step_code=@stepcode";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
+
+ //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负宸插紑宸�
+ sql = @"update TK_Wrk_Step set status='START' where wo_code=@mesordercode and step_code=@stepcode";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
+ //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负锛� 寮�宸ワ細START
+ sql = @"update TK_Wrk_Man set status='START' where wo_code=@mesordercode";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode } });
+ }
+
+ //鍒ゆ柇鏄惁鏈夋姤宸ヨ褰�(鏈夛細淇敼 鏃狅細鏂板)
+ sql = @"select * from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code and style='B'";
+ dynamicParams.Add("@wo_code", mesordercode);
+ dynamicParams.Add("@step_code", stepcode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ ////鑾峰彇寮�宸ヨ褰曠殑榛樿閫変腑鐨勮澶�(浜х嚎)涓庢姤宸ユ椂鐨勮澶囦骇绾垮仛瀵规瘮鍒ゆ柇
+ //sql = @"select A.eqp_code,B.name from TK_Wrk_Record A
+ // inner join TEqpInfo B on A.eqp_code=B.code
+ // where A.wo_code=@wo_code and A.step_code=@step_code and eqp_code=@eqpcode and A.style='S'";
+ //dynamicParams.Add("@wo_code", mesordercode);
+ //dynamicParams.Add("@step_code", stepcode);
+ //dynamicParams.Add("@eqpcode", eqpcode);
+ //var da = DapperHelper.selectdata(sql, dynamicParams);
+ //if (da.Rows[0]["EQP_CODE"].ToString() != eqpcode)
+ //{
+ // mes.code = "300";
+ // mes.count = 0;
+ // mes.Message = "鎿嶄綔澶辫触,褰撳墠鎶ュ伐浜х嚎搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
+ // mes.data = null;
+ // return mes;
+ //}
+ if (data.Rows.Count > 0)
+ {
+ //鑾峰彇涓昏〃鏈�澶D
+ sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_Record')+1,1) as id";
+ var dt = DapperHelper.selecttable(sql);
+
+ //鍐欏叆寮�鎶ュ伐璁板綍琛�
+ sql = @"insert into TK_Wrk_Record(wo_code,step_seq,step_code,step_price,eqp_code,materiel_code,task_qty,start_qty,good_qty,ng_qty,style,lm_user,lm_date,inbarcode)
+ values(@mesordercode,@stepseq,@stepcode,@step_price,@eqpcode,@partcode,@taskqty,@startqty,@reportqty,@ngqty,@style,@lm_user,@lm_date,@inbarcode)";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, step_price=stepprice, eqpcode = eqpcode, partcode = partcode, taskqty = taskqty, startqty = startqty, reportqty = reportqty, ngqty = ngqty, style = "B", lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+
+ //鍐欏叆瀛愯〃
+ for (int i = 0; i < arra.Count; i++)
+ {
+ sql = @"insert into TK_Wrk_RecordSub(m_id,eqp_code,report_person,report_date,report_qty,reckway,usergroup_code,ratio,ng_qty,style,lm_user,lm_date)
+ values(@m_id,@eqp_code,@report_person,@report_date,@report_qty,@reckway,@usergroup_code,@ratio,@ng_qty,@style,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ m_id = int.Parse(dt.Rows[0]["ID"].ToString()),
+ eqp_code = eqpcode,
+ report_person = arra[i]["usercode"].ToString(),
+ report_date = date,
+ report_qty = reportqty,
+ reckway = reckway,
+ usergroup_code = usergroupcode,
+ ratio = decimal.Parse(arra[i]["ratio"].ToString()),
+ ng_qty = ngqty,
+ style = "B",
+ lm_user = us.usercode,
+ lm_date = date
+ }
+ });
+
+ }
+ if (groupedItems.Count > 0)
+ {
+ //鍐欏叆缂洪櫡璁板綍琛�
+ for (int i = 0; i < groupedItems.Count; i++)
+ {
+ sql = @"insert into CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date)
+ values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = us.usercode, lm_date = date } });
+
+ }
+ }
+ }
+ else
+ {
+ //鑾峰彇涓昏〃鏈�澶D
+ sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_Record')+1,1) as id";
+ var dt = DapperHelper.selecttable(sql);
+ //鍐欏叆寮�鎶ュ伐璁板綍琛�
+ sql = @"insert into TK_Wrk_Record(wo_code,step_seq,step_code,step_price,eqp_code,materiel_code,task_qty,start_qty,good_qty,ng_qty,style,lm_user,lm_date,inbarcode)
+ values(@mesordercode,@stepseq,@stepcode,@step_price,@eqpcode,@partcode,@taskqty,@startqty,@reportqty,@ngqty,@style,@lm_user,@lm_date,@inbarcode)";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, step_price=stepprice, eqpcode = eqpcode, partcode = partcode, taskqty = taskqty, startqty = startqty, reportqty = reportqty, ngqty = ngqty, style = "B", lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+
+ //鍐欏叆瀛愯〃
+ for (int i = 0; i < arra.Count; i++)
+ {
+ sql = @"insert into TK_Wrk_RecordSub(m_id,eqp_code,report_person,report_date,report_qty,reckway,usergroup_code,ratio,ng_qty,style,lm_user,lm_date)
+ values(@m_id,@eqp_code,@report_person,@report_date,@report_qty,@reckway,@usergroup_code,@ratio,@ng_qty,@style,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ m_id = int.Parse(dt.Rows[0]["ID"].ToString()),
+ eqp_code = eqpcode,
+ report_person = arra[i]["usercode"].ToString(),
+ report_date = date,
+ report_qty = reportqty,
+ reckway = reckway,
+ usergroup_code = usergroupcode,
+ ratio = decimal.Parse(arra[i]["ratio"].ToString()),
+ ng_qty = ngqty,
+ style = "B",
+ lm_user = us.usercode,
+ lm_date = date
+ }
+ });
+
+ }
+ if (groupedItems.Count > 0)
+ {
+ //鍐欏叆缂洪櫡璁板綍琛�
+ for (int i = 0; i < groupedItems.Count; i++)
+ {
+ sql = @"insert into CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date)
+ values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = us.usercode, lm_date = date } });
+
+ }
+ }
+ }
+
+
+ //鍥炲啓宸ュ崟宸ュ簭琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+ sql = @"update TK_Wrk_Step set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty where wo_code=@mesordercode and step_code=@stepcode";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, reportqty = reportqty, ngqty = ngqty } });
+
+ //鍥炲啓宸ュ崟琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+ //sql = @"update TK_Wrk_Man set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty where wo_code=@mesordercode";
+ //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, reportqty = reportqty, ngqty = ngqty } });
+
+ //鍐欏叆ERP鍏ュ簱鍗�
+
+ //鍒ゆ柇鏄惁鏈亾宸ュ簭瀹屽伐鎶ュ伐(鑷姩鍏抽棴宸ュ崟鍙婂伐搴忎换鍔�)
+ //list = AutosCloseOrder.AutosColseOrderReport(list,mesordercode, partcode, stepseq,stepcode,reportqty,ngqty);
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔澶辫触!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[鐢熶骇寮�鎶ュ伐,鍙戞枡鎻愪氦]
+ public static ToMessage SavaMesOrderStepOut(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string outuser, string taskqty, string fqty, User us)
+ {
+ var sql = "";
+ List<object> list = new List<object>();
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+ list.Clear();
+ //鍒ゆ柇鏄惁鏈夊彂鏂欒褰�(鏈�(鍚屽伐鍗�+宸ュ簭+澶栧崗渚涙柟淇敼) 鏃狅細鏂板)
+ sql = @"select * from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wx_code and style='F'";
+ dynamicParams.Add("@wo_code", mesordercode);
+ dynamicParams.Add("@step_code", stepcode);
+ dynamicParams.Add("@wx_code", wxcode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ //淇敼鍙戞枡璁板綍
+ sql = @"update TK_Wrk_OutRecord set fqty=fqty+@fqty,lm_user=@username,lm_date=@CreateDate
+ where wo_code=@mesordercode and step_code=@stepcode and wx_code=@wx_code and style='F'";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, wx_code = wxcode, fqty = decimal.Parse(fqty), username =us.usercode, CreateDate = date } });
+ //鍐欏叆瀛愯〃
+ sql = @"insert into TK_Wrk_OutRecordSub(m_id,wx_code,out_person,out_time,fqty,style,lm_user,lm_date)
+ values(@m_id,@wx_code,@out_person,@out_time,@fqty,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { m_id = int.Parse(data.Rows[0]["ID"].ToString()), wx_code = wxcode, out_person = outuser, out_time = date, fqty = fqty, style = 'F', lm_user = us.usercode, lm_date = date } });
+ }
+ else
+ {
+ //鑾峰彇涓昏〃鏈�澶D
+ sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
+ var dt = DapperHelper.selecttable(sql);
+ //鍐欏叆澶栧崗璁板綍涓昏〃
+ sql = @"insert into TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,fqty,lm_user,lm_date)
+ values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@fqty,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'F', fqty = fqty, lm_user = us.usercode, lm_date = date } });
+
+ //鍐欏叆瀛愯〃
+ sql = @"insert into TK_Wrk_OutRecordSub(m_id,wx_code,out_person,out_time,fqty,style,lm_user,lm_date)
+ values(@m_id,@wx_code,@out_person,@out_time,@fqty,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wx_code = wxcode, out_person = outuser, out_time = date, fqty = fqty, style = 'F', lm_user = us.usercode, lm_date = date } });
+ }
+ //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负START: 寮�宸�
+ sql = @"update TK_Wrk_Step set status='START' where wo_code=@mesordercode and step_code=@stepcode";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
+
+
+ //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负锛� 寮�宸ワ細START
+ sql = @"update TK_Wrk_Man set status='START' where wo_code=@mesordercode";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode } });
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "鍙戞枡鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鍙戞枡澶辫触!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[鐢熶骇寮�鎶ュ伐,鏀舵枡鎻愪氦]
+ public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string inbarcode, string inuser, string taskqty, string sqty, List<ReportDefectList> defectobjs, string remarks, User us)
+ {
+ var sql = "";
+ string[] arra1 = new string[] { };
+ decimal ngqty = 0;
+ List<object> list = new List<object>();
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+ //鍒ゆ柇鏄惁鏈変笉鑹暟鎹�
+ var groupedItems = defectobjs.GroupBy(item => item.defect_code) // 鎸夌紪鐮乧ode鍒嗙粍
+ .Select(group => new { defect_code = group.Key, badqty = group.Sum(item => Convert.ToDecimal(item.badqty)) }).ToList(); // 姹囨�绘暟閲弎ty
+ if (groupedItems.Count <= 0)
+ {
+ ngqty = 0;
+ }
+ else
+ {
+ //姹囨�讳笉鑹暟閲�
+ ngqty = groupedItems.Sum(item => Convert.ToDecimal(item.badqty));
+ }
+
+ list.Clear();
+ //鍒ゆ柇鏄惁鏈夋敹鏂欒褰�(鏈夛細锛堝悓宸ュ崟+宸ュ簭+澶栧崗渚涙柟淇敼锛� 鏃狅細鏂板)
+ sql = @"select * from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wx_code and style='S'";
+ dynamicParams.Add("@wo_code", mesordercode);
+ dynamicParams.Add("@step_code", stepcode);
+ dynamicParams.Add("@wx_code", wxcode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ //鑾峰彇鍙戞枡璁板綍鐨勯粯璁ら�変腑鐨勫鍗忎緵搴斿晢涓庢敹鏂欐椂鐨勫鍗忎緵搴斿晢鍋氬姣斿垽鏂�
+ sql = @"select A.wx_code,B.name,A.fqty from TK_Wrk_OutRecord A
+ inner join TCustomer B on A.wx_code=B.code
+ where A.wo_code=@wo_code and A.step_code=@step_code and wx_code=@wx_code and A.style='F' ";
+ dynamicParams.Add("@wo_code", mesordercode);
+ dynamicParams.Add("@step_code", stepcode);
+ dynamicParams.Add("@wx_code", wxcode);
+ var da = DapperHelper.selectdata(sql, dynamicParams);
+ if (da.Rows.Count <= 0)
+ {
+ sql = @"select A.wx_code,B.name,A.fqty from TK_Wrk_OutRecord A
+ inner join TCustomer B on A.wx_code=B.code
+ where A.wo_code=@wo_code and A.step_code=@step_code and A.style='F' ";
+ dynamicParams.Add("@wo_code", mesordercode);
+ dynamicParams.Add("@step_code", stepcode);
+ var da1 = DapperHelper.selectdata(sql, dynamicParams);
+ var dr = da1.AsEnumerable().ToList().Select(x => x.Field<string>("NAME")).ToList();
+ string wxstring = (string.Join(",", dr.Select(x => x.ToString()).ToArray()));
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡澶栧崗渚涙柟涓庡彂鏂欏鍗忎緵搴斿晢涓嶅尮閰�,搴斾负锛氥��" + wxstring + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ if ((decimal.Parse(sqty) + ngqty) > decimal.Parse(da.Rows[0]["FQTY"].ToString())) //鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鍙戞枡鏁伴噺
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺,涓嶈兘澶т簬鍙戞枡鏁伴噺:" + da.Rows[0]["FQTY"].ToString() + "!";
+ mes.data = null;
+ return mes;
+ }
+ //if (da.Rows[0]["WX_CODE"].ToString() != wxcode)
+ //{
+ // mes.code = "300";
+ // mes.count = 0;
+ // mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡澶栧崗渚涙柟搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
+ // mes.data = null;
+ // return mes;
+ //}
+ if (data.Rows.Count > 0)
+ {
+ decimal sum_sqty = data.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum(); //鑾峰彇鍚屽崟鍙�,鍚屽伐搴�,鍚屽鍗忎緵搴斿晢鏀舵枡鎬绘暟閲�
+ decimal sum_fqty = da.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum(); //鑾峰彇鍚屽崟鍙�,鍚屽伐搴�,鍚屽鍗忎緵搴斿晢鍙戞枡鎬绘暟閲�
+ if ((sum_sqty + decimal.Parse(sqty) + ngqty) > sum_fqty) //宸叉敹鏂欐�绘暟+褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鎬诲彂鏂欐暟閲�
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺,涓嶈兘澶т簬寰呮敹鏁伴噺:" + (sum_fqty - sum_sqty) + "!";
+ mes.data = null;
+ return mes;
+ }
+
+
+ //鑾峰彇涓昏〃鏈�澶D
+ sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
+ var dt = DapperHelper.selecttable(sql);
+ //鍐欏叆澶栧崗璁板綍涓昏〃
+ sql = @"insert into TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date,inbarcode)
+ values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date,@inbarcode)";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+
+ //鍐欏叆澶栧崗璁板綍瀛愯〃
+ sql = @"insert into TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date)
+ values(@m_id,@wxcode,@in_person,@in_time,@sqty,@ng_qty,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wxcode = wxcode, in_person = inuser, in_time = date, sqty = sqty, ng_qty = ngqty, style = "S", lm_user = us.usercode, lm_date = date } });
+
+ if (groupedItems.Count > 0)
+ {
+ //鍐欏叆缂洪櫡璁板綍琛�
+ for (int i = 0; i < groupedItems.Count; i++)
+ {
+ sql = @"insert into CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date)
+ values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = us.usercode, lm_date = date } });
+
+ }
+ }
+ }
+ else
+ {
+ //鑾峰彇涓昏〃鏈�澶D
+ sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
+ var dt = DapperHelper.selecttable(sql);
+ //鍐欏叆澶栧崗璁板綍涓昏〃
+ sql = @"insert into TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date,inbarcode)
+ values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date,@inbarcode)";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+
+ //鍐欏叆澶栧崗璁板綍瀛愯〃
+ sql = @"insert into TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date)
+ values(@m_id,@wxcode,@in_person,@in_time,@sqty,@ng_qty,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wxcode = wxcode, in_person = inuser, in_time = date, sqty = sqty, ng_qty = ngqty, style = "S", lm_user = us.usercode, lm_date = date } });
+
+ if (groupedItems.Count > 0)
+ {
+ //鍐欏叆缂洪櫡璁板綍琛�
+ for (int i = 0; i < groupedItems.Count; i++)
+ {
+ sql = @"insert into CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date)
+ values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
+ list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = us.usercode, lm_date = date } });
+
+ }
+ }
+ }
+ //鍥炲啓宸ュ崟宸ュ簭琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+ sql = @"update TK_Wrk_Step set good_qty=good_qty+@sqty,ng_qty=ng_qty+@ngqty where wo_code=@mesordercode and step_code=@stepcode";
+ list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, sqty = sqty, ngqty = ngqty } });
+
+ //鍥炲啓宸ュ崟琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+ //sql = @"update TK_Wrk_Man set good_qty=good_qty+@sqty,ng_qty=ng_qty+@ngqty where wo_code=@mesordercode";
+ //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, sqty = sqty, ngqty = ngqty } });
+
+ ////鍐欏叆ERP鍏ュ簱鍗�
+
+ //鍒ゆ柇鏄惁鏈亾宸ュ簭瀹屽伐鎶ュ伐(鑷姩鍏抽棴宸ュ崟鍙婂伐搴忎换鍔�)
+ //list = AutosCloseOrder.AutosColseOrderReport(list, mesordercode, partcode, stepseq, stepcode, sqty, ngqty);
+
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "鏀舵垚鍔�!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鏀舵枡澶辫触!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[涓嶈壇澶勭悊,鎻愪氦]
+ public static ToMessage EditOrderNgStepSeave(ReportDefectHandle json, User us)
+ {
+ var sql = "";
+ string[] arra1 = new string[] { };
+ List<object> list = new List<object>();
+ var dynamicParams = new DynamicParameters();
+ decimal sumrepair_qty = 0, sumlaborbad_qty = 0,summaterielbad_qty=0; //绱缁翠慨鏁伴噺銆佺疮璁″伐搴熸暟閲忋�佺疮璁℃枡搴熸暟閲�
+ try
+ {
+ string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+ list.Clear();
+
+
+ //寰幆json鏁版嵁
+ for (int i = 0; i < json.Data.Rows.Count; i++)
+ {
+ //鑷埗宸ュ簭
+ if (json.Data.Rows[i]["STYLE"].ToString() == "Z")
+ {
+ //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曞瓙琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佸伐搴熸暟閲忋�佹枡搴熸暟閲�
+ sql = @"update TK_Wrk_RecordSub set report_qty=report_qty+@repair_qty,ng_qty=ng_qty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where m_id=@m_id and style='B'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ m_id = int.Parse(json.Data.Rows[i]["M_ID"].ToString()),
+ repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+ laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+ materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString())
+ }
+ });
+ //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曚富琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+ sql = @"update TK_Wrk_Record set good_qty=good_qty+@repair_qty,ng_qty=ng_qty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where wo_code=@wo_code and step_code=@step_code and id=@id and style='B'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+ laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+ materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString()),
+ wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
+ step_code = json.Data.Rows[i]["STEP_CODE"].ToString(),
+ id = int.Parse(json.Data.Rows[i]["M_ID"].ToString())
+ }
+ });
+ //鍥炲啓缂洪櫡璁板綍琛ㄧ殑寰呭鐞嗘暟閲�
+ sql = @"update CSR_WorkRecord_Defect set defect_pendqty=defect_pendqty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where wo_code=@wo_code and step_code=@step_code and id=@id and style='B'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+ laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+ materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString()),
+ wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
+ step_code = json.Data.Rows[i]["STEP_CODE"].ToString(),
+ id = int.Parse(json.Data.Rows[i]["ID"].ToString())
+ }
+ });
+ //鍐欏叆鎶ュ伐缂洪櫡澶勭悊璁板綍琛�
+ sql = @"insert into CSR_WorkRecord_DefectHandle(defect_id,wo_code,partnumber,step_seq,step_code,repair_qty,laborbad_qty,materielbad_qty,defect_code,style,lm_user,lm_date)
+ values(@defect_id,@wo_code,@partcode,@stepseq,@stepcode,@repair_qty,@laborbad_qty,@materielbad_qty,@defect_code,@style,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ defect_id = int.Parse(json.Data.Rows[i]["ID"].ToString()),
+ wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
+ partcode = json.Data.Rows[i]["MATERIEL_CODE"].ToString(),
+ stepseq = json.Data.Rows[i]["SEQ"].ToString(),
+ stepcode = json.Data.Rows[i]["STEP_CODE"].ToString(),
+ repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+ laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+ materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString()),
+ defect_code = json.Data.Rows[i]["DEFECT_CODE"].ToString(),
+ style = "B",
+ lm_user = us.usercode,
+ lm_date = date
+ }
+ });
+
+ sumrepair_qty = sumrepair_qty + decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString());
+ sumlaborbad_qty = sumlaborbad_qty + decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString());
+ summaterielbad_qty = summaterielbad_qty + decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString());
+ }
+ //澶栧崗宸ュ簭
+ if (json.Data.Rows[i]["STYLE"].ToString() == "S")
+ {
+ //鍥炲啓瀵瑰簲鐨勬敹鏂欒褰曞瓙琛ㄦ敹鏂欐暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+ sql = @"update TK_Wrk_OutRecordSub set sqty=sqty+@repair_qty,ng_qty=ng_qty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where m_id=@m_id and style='S'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ m_id = int.Parse(json.Data.Rows[i]["M_ID"].ToString()),
+ repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+ laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+ materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString())
+ }
+ });
+ //鍥炲啓瀵瑰簲鐨勬敹鏂欒褰曚富琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+ sql = @"update TK_Wrk_OutRecord set sqty=sqty+@repair_qty,ng_qty=ng_qty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where wo_code=@wo_code and step_code=@step_code and id=@id and style='S'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+ laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+ materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString()),
+ wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
+ step_code = json.Data.Rows[i]["STEP_CODE"].ToString(),
+ id = int.Parse(json.Data.Rows[i]["M_ID"].ToString())
+ }
+ });
+ //鍥炲啓缂洪櫡璁板綍琛ㄧ殑寰呭鐞嗘暟閲�
+ sql = @"update CSR_WorkRecord_Defect set defect_pendqty=defect_pendqty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where wo_code=@wo_code and step_code=@step_code and id=@id and style='S'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+ laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+ materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString()),
+ wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
+ step_code = json.Data.Rows[i]["STEP_CODE"].ToString(),
+ id = int.Parse(json.Data.Rows[i]["ID"].ToString())
+ }
+ });
+ //鍐欏叆鎶ュ伐缂洪櫡澶勭悊璁板綍琛�
+ sql = @"insert into CSR_WorkRecord_DefectHandle(defect_id,wo_code,partnumber,step_seq,step_code,repair_qty,laborbad_qty,materielbad_qty,defect_code,style,lm_user,lm_date)
+ values(@defect_id,@wo_code,@partcode,@stepseq,@stepcode,@repair_qty,@laborbad_qty,@materielbad_qty,@defect_code,@style,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ defect_id = int.Parse(json.Data.Rows[i]["ID"].ToString()),
+ wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
+ partcode = json.Data.Rows[i]["MATERIEL_CODE"].ToString(),
+ stepseq = json.Data.Rows[i]["SEQ"].ToString(),
+ stepcode = json.Data.Rows[i]["STEP_CODE"].ToString(),
+ repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+ laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+ materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString()),
+ defect_code = json.Data.Rows[i]["DEFECT_CODE"].ToString(),
+ style = "S",
+ lm_user = us.usercode,
+ lm_date = date
+ }
+ });
+ sumrepair_qty = sumrepair_qty + decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString());
+ sumlaborbad_qty = sumlaborbad_qty + decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString());
+ summaterielbad_qty = summaterielbad_qty + decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString());
+ }
+ }
+
+ //鍥炲啓宸ュ崟宸ュ簭琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+ sql = @"update TK_Wrk_Step set good_qty=good_qty+@sumrepair_qty,ng_qty=ng_qty-@sumrepair_qty-@sumlaborbad_qty-@summaterielbad_qty,laborbad_qty=laborbad_qty+@sumlaborbad_qty,materielbad_qty=materielbad_qty+@summaterielbad_qty
+ where wo_code=@wo_code and step_code=@stepcode";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ wo_code = json.Data.Rows[0]["WO_CODE"].ToString(),
+ stepcode = json.Data.Rows[0]["STEP_CODE"].ToString(),
+ sumrepair_qty = sumrepair_qty,
+ sumlaborbad_qty = sumlaborbad_qty,
+ summaterielbad_qty= summaterielbad_qty
+ }
+ });
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔澶辫触!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
}
}
--
Gitblit v1.9.3