From 9c634fd767aec36ef97c3a814bf7a29c67d20ee1 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 29 三月 2024 10:57:35 +0800
Subject: [PATCH] 修改单据重复显示问题,增加工单源单id关联
---
VueWebApi/Tools/ScanStartReport.cs | 1167 ++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 849 insertions(+), 318 deletions(-)
diff --git a/VueWebApi/Tools/ScanStartReport.cs b/VueWebApi/Tools/ScanStartReport.cs
index 27f883d..4459f19 100644
--- a/VueWebApi/Tools/ScanStartReport.cs
+++ b/VueWebApi/Tools/ScanStartReport.cs
@@ -17,10 +17,12 @@
/// <summary>
/// 鎵爜淇℃伅涓哄伐鍗�+宸ュ簭鏉$爜
/// </summary>
+ /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
+ /// <param name="SelectType">鎿嶄綔绫诲瀷(寮�宸ワ細START銆佹姤宸ワ細REPORT)</param>
/// <param name="ordercode">宸ュ崟缂栧彿</param>
/// <param name="stepcode">宸ュ簭缂栫爜</param>
/// <returns></returns>
- public static ToMessage ZZEncodingSeach(string ordercode, string stepcode)
+ public static ToMessage ZZEncodingSeach(string stu_torgcode, string SelectType, string ordercode, string stepcode)
{
var sql = "";
string flwtype = ""; //宸ュ簭灞炴��
@@ -32,19 +34,53 @@
var dynamicParams = new DynamicParameters();
try
{
-
+ //鍒ゆ柇褰撳墠宸ュ崟鏄惁鍏抽棴
+ sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stu_torgcode", stu_torgcode);
+ var da0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (da0.Rows.Count > 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ崟宸插叧闂�,涓嶅厑璁稿紑鎶ュ伐鎿嶄綔!";
+ mes.data = null;
+ return mes;
+ }
+
+ //0.鍒ゆ柇褰撳墠宸ュ崟鎵�灞炶溅闂存槸鍚︿负褰撳墠鐧诲綍浜哄憳杞﹂棿
+ sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stu_torgcode", stu_torgcode);
+ var da1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (da1.Rows.Count <= 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "涓嶆槸鏈溅闂寸敓浜т换鍔�,涓嶅厑璁告搷浣�!";
+ mes.data = null;
+ return mes;
+ }
+
//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.isbott,A.isend
+ 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,isnull(A.start_qty,0) as start_qty,A.isbott,A.isend,L.org_code,L.org_name,
+ M.m_po,W.saleOrderCode
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 TKimp_Ewo W on M.m_po=W.wo and M.materiel_code=W.materiel_code and M.sourceid=W.id
left join TMateriel_Info P on M.materiel_code=P.partcode
+ left join TOrganization L on M.wkshp_code=L.org_code
where A.wo_code=@ordercode and A.step_code=@stepcode";
dynamicParams.Add("@ordercode", ordercode);
dynamicParams.Add("@stepcode", stepcode);
var data = DapperHelper.selectdata(sql, dynamicParams);
if (data.Rows.Count > 0)
{
+ rt.wkshopcode = data.Rows[0]["org_code"].ToString(); //杞﹂棿缂栫爜
+ rt.wkshopname = data.Rows[0]["org_name"].ToString(); //杞﹂棿鍚嶇О
+ rt.saleOrderCode = data.Rows[0]["saleOrderCode"].ToString();//閿�鍞鍗曞彿
+ rt.m_po = data.Rows[0]["m_po"].ToString();//璁㈠崟鍙�
rt.wo_code = data.Rows[0]["WO_CODE"].ToString(); //宸ュ崟鍙�
rt.partnumber = data.Rows[0]["PARTCODE"].ToString(); //浜у搧缂栫爜
rt.partname = data.Rows[0]["PARTNAME"].ToString(); //浜у搧鍚嶇О
@@ -73,8 +109,8 @@
}
if (isend == "Y") //褰撳墠宸ュ簭鏄湯閬撳伐搴�
{
- rt.nextstepcode = data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
- rt.nextstepname = data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+ rt.nextstepcode = "";//data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
+ rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
}
}
else
@@ -85,332 +121,667 @@
mes.data = null;
return mes;
}
- switch (flwtype)
+ switch (SelectType)
{
- case "Z": //鑷埗宸ュ簭
- if (isbott == "Y") //棣栭亾宸ュ簭
+ case "START": //寮�宸�
+ switch (flwtype) //宸ュ簭灞炴��(鑷埗銆佸鍗�)
{
- //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�
- sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='S'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", stepcode);
- var data0 = DapperHelper.selectdata(sql, dynamicParams);
- if (data0.Rows.Count > 0) //鏈夊紑宸ヨ褰�
- {
- //棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夋姤宸ヨ褰�
- sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", stepcode);
- var data1 = DapperHelper.selectdata(sql, dynamicParams);
- if (data1.Rows.Count > 0)
+ case "Z": //鑷埗宸ュ簭
+ if (isbott == "Y") //棣栭亾宸ュ簭
{
- string good_qty = data1.Rows[0]["GOOD_QTY"].ToString();//鎶ュ伐鏁伴噺
- string ng_qty = data1.Rows[0]["NG_QTY"].ToString();// 涓嶈壇鏁伴噺
- decimal kbqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - (decimal.Parse(good_qty) + decimal.Parse(ng_qty)); //鍓╀綑鍙姤宸ユ暟閲�=浠诲姟鏁伴噺-(鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺)
- if (kbqty <= 0)//鏃犲彲鎶ュ伐鏁伴噺
+ //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�
+ sql = @"select * from TK_Wrk_Record R
+ left join TEqpInfo E on R.eqp_code=E.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", stepcode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count > 0) //鏈夊紑宸ヨ褰�
{
- mes.code = "300";
- mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭鏃犲彲鎶ュ伐鏁伴噺!";
- mes.data = null;
- return mes;
- }
- else
- {
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //寮�宸ユ暟閲�=浠诲姟鏁伴噺
- rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - kbqty; //鏈姤鏁伴噺=浠诲姟鏁伴噺-宸叉姤鏁伴噺
- rt.reportqty = decimal.Parse(good_qty) + decimal.Parse(ng_qty); //宸叉姤鏁伴噺=鎶ュ伐鏁伴噺-涓嶈壇鏁伴噺
+ if (decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - decimal.Parse(data0.Rows[0]["START_QTY"].ToString()) == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏃犲彲寮�宸ユ暟閲�!";
+ mes.data = null;
+ break;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ //寮�宸ユ暟閲�=浠诲姟鏁伴噺-宸插紑宸ユ�绘暟閲�
+ rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - decimal.Parse(data0.Rows[0]["START_QTY"].ToString());
+ //鏈紑鏁伴噺=浠诲姟鏁伴噺-宸插紑宸ユ�绘暟閲�
+ rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - decimal.Parse(data0.Rows[0]["START_QTY"].ToString());
+ //宸插紑鏁伴噺
+ rt.reportqty = decimal.Parse(data0.Rows[0]["START_QTY"].ToString());
mes.code = "200";
mes.count = 1;
mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
mes.data = rt;
+
+ }
+ else
+ {
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //寮�宸ユ暟閲�
+ rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //鏈姤鏁伴噺
+ rt.reportqty = 0; //宸叉姤鏁伴噺
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+ mes.data = rt;
}
}
- else
+ else //闈為閬撳伐搴�
{
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //寮�宸ユ暟閲�
- rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //鏈姤鏁伴噺
- rt.reportqty = 0; //宸叉姤鏁伴噺
- mes.code = "200";
- mes.count = 1;
- mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
- mes.data = rt;
- }
- }
- else
- {
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //寮�宸ユ暟閲�
- rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //鏈姤鏁伴噺
- rt.reportqty = 0; //宸叉姤鏁伴噺
- mes.code = "200";
- mes.count = 0;
- mes.Message = "寮圭獥寮�宸ョ晫闈�!";
- mes.data = rt;
- }
- }
- else //闈為閬撳伐搴�
- {
- //鏌ユ壘褰撳墠宸ュ簭涓婂埌宸ュ簭(鑷埗鎴栬�呭鍗�)
- sql = @"select A.step_code,S.stepname,S.flwtype from TFlw_Rtdt A
+ //鏌ユ壘褰撳墠宸ュ簭涓婂埌宸ュ簭(鑷埗鎴栬�呭鍗�)
+ sql = @"select A.step_code,S.stepname,S.flwtype from TFlw_Rtdt A
left join TK_Wrk_Man M on A.rout_code=M.route_code
left join TStep S on A.step_code=S.stepcode
where M.wo_code=@wocode and A.seq=@seq-1";
- dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
- dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
- var data0 = DapperHelper.selectdata(sql, dynamicParams);
- if (data0.Rows.Count > 0)
- {
- //1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁寮�宸ヨ褰�
- sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='S'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", stepcode);
- var data1 = DapperHelper.selectdata(sql, dynamicParams);
- if (data1.Rows.Count > 0)//鏈亾鏈夊紑宸ヨ褰�
- {
- //闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鎶ュ伐璁板綍
- sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", stepcode);
- var data2 = DapperHelper.selectdata(sql, dynamicParams);
- if (data2.Rows.Count > 0) //鏈夋姤宸ヨ褰�
+ dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
+ dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count > 0)
{
- if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鑷埗宸ュ簭
+ //1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁寮�宸ヨ褰�
+ sql = @"select * from TK_Wrk_Record R
+ left join TEqpInfo E on R.eqp_code=E.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", stepcode);
+ var data1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data1.Rows.Count > 0)//鏈亾鏈夊紑宸ヨ褰�
{
- //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+ //闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鎶ュ伐璁板綍
sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
- var data3 = DapperHelper.selectdata(sql, dynamicParams);
- if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
+ dynamicParams.Add("@stepcode", stepcode);
+ var data2 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data2.Rows.Count > 0) //鏈夋姤宸ヨ褰�
{
- string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//涓婇亾鎶ュ伐鏁伴噺
- string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//鏈亾鎶ュ伐鏁伴噺
- string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// 鏈亾涓嶈壇鏁伴噺
- decimal sybqty = decimal.Parse(sgood_qty) - decimal.Parse(good_qty) - decimal.Parse(ng_qty);//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鎶ュ伐鏁伴噺-鏈亾涓嶈壇鏁伴噺
- if (sybqty <= 0)
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細鑷埗宸ュ簭
{
- mes.code = "300";
+ //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+ sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data3 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
+ {
+ decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //涓婇亾鎶ュ伐鎬诲悎鏍兼暟閲�
+ decimal bstartgood_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum(); //鏈亾寮�宸ユ�绘暟閲�
+ decimal bgood_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //鏈亾鎶ュ伐鎬诲悎鏍兼暟閲�
+ decimal bng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum(); //鏈亾鎶ュ伐鎬讳笉鑹暟閲�
+ decimal bbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鏈亾鎶ュ伐鎬绘姤搴熸暟閲�
+ //鏈亾宸ュ簭鍙紑宸ユ暟閲�=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+ if (sgood_qty - bstartgood_qty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏆傛棤鍙紑宸ユ暟閲�!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = sgood_qty - bstartgood_qty;//寮�宸ユ暟閲�=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+ rt.noreportqty = sgood_qty - bstartgood_qty; //鏈紑鏁伴噺=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+ rt.reportqty = bstartgood_qty;//宸插紑鏁伴噺=鏈亾宸ュ簭寮�宸ユ�绘暟
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+ mes.data = rt;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑宸�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細濮斿宸ュ簭
+ {
+ //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
+ sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data3 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
+ {
+ decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum(); //涓婇亾鏀舵枡鏁伴噺
+ decimal bstartqty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum(); //鏈亾寮�宸ユ�绘暟閲�
+ decimal bgood_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //鏈亾鎶ュ伐鎬绘暟閲�
+ decimal bng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum(); //鏈亾涓嶈壇鎬绘暟閲�
+ decimal bbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鏈亾鎬绘姤搴熸暟閲�
+
+ if (sqty - bstartqty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏃犲彲寮�宸ユ暟閲�!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ //寮�宸ユ暟閲�=涓婇亾宸ュ簭鏀舵枡鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+ rt.startqty = sqty - bstartqty;
+ //鏈紑鏁伴噺=涓婇亾宸ュ簭鏀舵枡鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+ rt.noreportqty = sqty - bstartqty;
+ //宸插紑鏁伴噺=鏈亾宸ュ簭寮�宸ユ�绘暟
+ rt.reportqty = bstartqty;
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+ mes.data = rt;
+
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑宸�,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ else //鏈亾鏃犳姤宸ヨ褰�
+ {
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細鑷埗宸ュ簭
+ {
+ //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+ sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data3 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
+ {
+ decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //涓婇亾鎶ュ伐鎬绘暟閲�
+ decimal bstart_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum(); //鏈亾寮�宸ユ�绘暟閲�
+ //涓婇亾鎶ュ伐鎬绘暟-鏈亾寮�宸ユ�绘暟
+ if (sgood_qty- bstart_qty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏆傛棤鍙紑宸ユ暟閲�!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = sgood_qty - bstart_qty;//寮�宸ユ暟閲�=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+ rt.noreportqty = sgood_qty - bstart_qty; //鏈紑鏁伴噺=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+ rt.reportqty = bstart_qty;//宸插紑鏁伴噺=鏈亾宸ュ簭寮�宸ユ�绘暟
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+ mes.data = rt;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑宸�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //濮斿宸ュ簭
+ {
+ //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
+ sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data3 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
+ {
+ decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
+ decimal bstart_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum(); //鏈亾寮�宸ユ�绘暟閲�
+ //涓婇亾鏀舵枡鎬绘暟-鏈亾寮�宸ユ�绘暟
+ if (sqty - bstart_qty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏆傛棤鍙紑宸ユ暟閲�!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = sqty - bstart_qty;//寮�宸ユ暟閲�=涓婇亾鏀舵枡鎬绘暟-鏈亾寮�宸ユ�绘暟
+ rt.noreportqty = sqty - bstart_qty; //鏈紑鏁伴噺=涓婇亾鏀舵枡鎬绘暟-鏈亾寮�宸ユ�绘暟
+ rt.reportqty = bstart_qty;//宸插紑鏁伴噺=鏈亾寮�宸ユ�绘暟
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+ mes.data = rt;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ }
+ else //鏃犲紑宸ヨ褰�
+ {
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //褰撳墠宸ュ簭涓婇亾鑷埗宸ュ簭
+ {
+ //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+ sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data2 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data2.Rows.Count > 0) //涓婂埌宸ュ簭鏈夋姤宸�
+ {
+ decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();//涓婇亾宸ュ簭鎶ュ伐鎬诲悎鏍兼暟閲�
+ if (good_qty == null || good_qty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿紑宸�!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = good_qty; //寮�宸ユ暟閲�=(涓婁竴閬撶殑鎶ュ伐鎬绘暟閲�)
+ rt.noreportqty = good_qty; //鏈紑鏁伴噺=(涓婁竴閬撶殑鎶ュ伐鎬绘暟閲�)
+ rt.reportqty = 0; //宸插紑鏁伴噺
+ mes.code = "200";
mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
- mes.data = null;
- return mes;
+ mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+ mes.data = rt;
}
else
{
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = sybqty; //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.reportqty = decimal.Parse(good_qty) + decimal.Parse(ng_qty); //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�
- mes.code = "200";
- mes.count = 1;
- mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
- mes.data = rt;
- }
- }
- else
- {
- mes.code = "300";
- mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
- mes.data = null;
- return mes;
- }
- }
- if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //濮斿宸ュ簭
- {
- //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
- var data3 = DapperHelper.selectdata(sql, dynamicParams);
- if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
- {
- decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum(); //涓婇亾鏀舵枡鏁伴噺
- string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//鏈亾鎶ュ伐鏁伴噺
- string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// 鏈亾涓嶈壇鏁伴噺
- decimal sybqty = sqty - decimal.Parse(good_qty) - decimal.Parse(ng_qty);//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鎶ュ伐鏁伴噺-鏈亾涓嶈壇鏁伴噺
- if (sybqty <= 0)
- {
mes.code = "300";
mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑宸�!";
mes.data = null;
return mes;
}
- else
+ }
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //濮斿宸ュ簭
+ {
+ //鏌ユ壘涓婇亾宸ュ簭澶栧崗鏀舵枡璁板綍
+ sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data2 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data2.Rows.Count > 0) //涓婇亾宸ュ簭鏈夋敹鏂�
{
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = sybqty; //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.reportqty = decimal.Parse(good_qty) + decimal.Parse(ng_qty); //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�
+ decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏀舵枡鏁伴噺
+ decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
+ decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();// 鎶ュ簾鏁伴噺
+ if (sqty == null || sqty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = sqty; //寮�宸ユ暟閲�=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
+ rt.noreportqty = sqty; //鏈紑鏁伴噺=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
+ rt.reportqty = 0; //宸插紑鏁伴噺
mes.code = "200";
- mes.count = 1;
- mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+ mes.count = 0;
+ mes.Message = "寮圭獥寮�宸ョ晫闈�!";
mes.data = rt;
}
- }
- else
- {
- mes.code = "300";
- mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
- mes.data = null;
- return mes;
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
+ mes.data = null;
+ return mes;
+ }
}
}
}
- else //鏈亾鏃犳姤宸ヨ褰�
+ else
{
- if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鑷埗宸ュ簭
- {
- //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
- sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
- var data3 = DapperHelper.selectdata(sql, dynamicParams);
- if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
- {
- string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//涓婇亾鎶ュ伐鏁伴噺
- decimal sybqty = decimal.Parse(sgood_qty); //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鏁伴噺
-
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = sybqty; //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.reportqty = 0; //宸叉姤鏁伴噺
- mes.code = "200";
- mes.count = 1;
- mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
- mes.data = rt;
- }
- else
- {
- mes.code = "300";
- mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
- mes.data = null;
- return mes;
- }
- }
- if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //濮斿宸ュ簭
- {
- //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
- var data3 = DapperHelper.selectdata(sql, dynamicParams);
- if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
- {
- decimal sqty = data3.AsEnumerable().Select(d =>d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
- decimal sybqty = sqty; //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鏁伴噺
-
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = sybqty; //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.reportqty = 0; //宸叉姤鏁伴噺
- mes.code = "200";
- mes.count = 1;
- mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
- mes.data = rt;
- }
- else
- {
- mes.code = "300";
- mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
- mes.data = null;
- return mes;
- }
- }
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+ mes.data = null;
+ return mes;
}
+
}
- else //鏃犲紑宸ヨ褰�
- {
- if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鑷埗宸ュ簭
- {
- //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
- sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
- var data2 = DapperHelper.selectdata(sql, dynamicParams);
- if (data2.Rows.Count > 0) //涓婂埌宸ュ簭鏈夋姤宸�
- {
- string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//鎶ュ伐鏁伴噺
- string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// 涓嶈壇鏁伴噺
-
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = decimal.Parse(good_qty); //寮�宸ユ暟閲�=(涓婁竴閬撶殑鎶ュ伐鏁伴噺)
- rt.noreportqty = decimal.Parse(good_qty); //鏈姤鏁伴噺=(涓婁竴閬撶殑鎶ュ伐鏁伴噺)
- rt.reportqty = 0; //宸叉姤鏁伴噺
- mes.code = "200";
- mes.count = 0;
- mes.Message = "寮圭獥寮�宸ョ晫闈�!";
- mes.data = rt;
- }
- else
- {
- mes.code = "300";
- mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
- mes.data = null;
- return mes;
- }
- }
- if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //濮斿宸ュ簭
- {
- //鏌ユ壘涓婇亾宸ュ簭澶栧崗鏀舵枡璁板綍
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
- dynamicParams.Add("@ordercode", ordercode);
- dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
- var data2 = DapperHelper.selectdata(sql, dynamicParams);
- if (data2.Rows.Count > 0) //涓婇亾宸ュ簭鏈夋敹鏂�
- {
- decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏀舵枡鏁伴噺
- decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
-
- rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
- rt.startqty = sqty; //寮�宸ユ暟閲�=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
- rt.noreportqty = sqty; //鏈姤鏁伴噺=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
- rt.reportqty = 0; //宸叉姤鏁伴噺
- mes.code = "200";
- mes.count = 0;
- mes.Message = "寮圭獥寮�宸ョ晫闈�!";
- mes.data = rt;
- }
- else
- {
- mes.code = "300";
- mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
- mes.data = null;
- return mes;
- }
- }
- }
- }
- else
- {
+ break;
+ case "W": //澶栧崗宸ュ簭
mes.code = "300";
mes.count = 0;
- mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+ mes.Message = "褰撳墠鏍囩涓哄鍗忔爣绛�,璇峰墠寰�澶栧崗鎿嶄綔鏍囩椤垫壂鐮�!";
mes.data = null;
- return mes;
- }
-
+ break;
+ default: //鑷埗+澶栧崗宸ュ簭
+ break;
}
break;
- case "W": //澶栧崗宸ュ簭
- mes.code = "300";
- mes.count = 0;
- mes.Message = "褰撳墠鏍囩涓哄鍗忔爣绛�,璇峰墠寰�澶栧崗鎿嶄綔鏍囩椤垫壂鐮�!";
- mes.data = null;
+ case "REPORT": //鎶ュ伐
+ switch (flwtype)
+ {
+ case "Z": //鑷埗宸ュ簭
+ if (isbott == "Y") //棣栭亾宸ュ簭
+ {
+ //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�
+ sql = @"select * from TK_Wrk_Record R
+ left join TEqpInfo E on R.eqp_code=E.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", stepcode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count > 0) //鏈夊紑宸ヨ褰�
+ {
+ //棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夋姤宸ヨ褰�
+ sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", stepcode);
+ var data1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data1.Rows.Count > 0)
+ {
+ decimal start_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum(); //褰撳墠寮�宸ユ�绘暟閲�
+ decimal good_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //褰撳墠鎶ュ伐鎬绘暟閲�
+ decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum(); //褰撳墠涓嶈壇鏁伴噺
+ decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //褰撳墠宸ュ簭鎶ュ簾鏁伴噺
+
+ decimal kbqty = start_qty - (good_qty + ng_qty + bad_qty); //鍓╀綑鍙姤宸ユ暟閲�=寮�宸ユ�绘暟閲�-(鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+鎶ュ簾鏁伴噺)
+ if (kbqty <= 0)//鏃犲彲鎶ュ伐鏁伴噺
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭鏃犲彲鎶ュ伐鏁伴噺!";
+ mes.data = null;
+ return mes;
+ }
+ else
+ {
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());//浠诲姟鏁伴噺
+ rt.startqty = start_qty; //寮�宸ユ暟閲�=褰撳墠寮�宸ユ�绘暟閲�
+ rt.noreportqty = kbqty; //鏈姤鏁伴噺=鍓╀綑鍙姤宸ユ暟閲�
+ rt.reportqty = good_qty + ng_qty + bad_qty;//宸叉姤鏁伴噺=鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+鎶ュ簾鏁伴噺
+ mes.code = "200";
+ mes.count = 1;
+ mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+ mes.data = rt;
+ }
+ }
+ else
+ {
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = decimal.Parse(data.Rows[0]["START_QTY"].ToString()); //寮�宸ユ暟閲�
+ rt.noreportqty = decimal.Parse(data.Rows[0]["START_QTY"].ToString()); //鏈姤鏁伴噺=寮�宸ユ暟閲�
+ rt.reportqty = 0; //宸叉姤鏁伴噺
+ mes.code = "200";
+ mes.count = 1;
+ mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+ mes.data = rt;
+ }
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭鏈紑宸�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ else //闈為閬撳伐搴�
+ {
+ //鏌ユ壘褰撳墠宸ュ簭涓婂埌宸ュ簭(鑷埗鎴栬�呭鍗�)
+ sql = @"select A.step_code,S.stepname,S.flwtype from TFlw_Rtdt A
+ left join TK_Wrk_Man M on A.rout_code=M.route_code
+ left join TStep S on A.step_code=S.stepcode
+ where M.wo_code=@wocode and A.seq=@seq-1";
+ dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
+ dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count > 0)
+ {
+ //1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁寮�宸ヨ褰�
+ sql = @"select * from TK_Wrk_Record R
+ left join TEqpInfo E on R.eqp_code=E.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", stepcode);
+ var data1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data1.Rows.Count > 0)//鏈亾鏈夊紑宸ヨ褰�
+ {
+ //闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鎶ュ伐璁板綍
+ sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", stepcode);
+ var data2 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data2.Rows.Count > 0) //鏈夋姤宸ヨ褰�
+ {
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細鑷埗宸ュ簭
+ {
+ //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+ sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data3 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
+ {
+ decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //涓婇亾鎶ュ伐鎬绘暟閲�
+ decimal start_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum(); //鏈亾寮�宸ユ�绘暟閲�
+ decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //鏈亾鎶ュ伐鎬绘暟閲�
+ decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum(); //鏈亾涓嶈壇鎬绘暟閲�
+ decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鏈亾鎬绘姤搴熸暟閲�
+
+ decimal sybqty = start_qty - good_qty - ng_qty - bad_qty;//鏈亾鍓╀綑鍙姤鏁伴噺=鏈亾寮�宸ユ�绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾鎶ュ簾鎬绘暟
+ if (sybqty <= 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
+ mes.data = null;
+ return mes;
+ }
+ else
+ {
+ if (sgood_qty == null || sgood_qty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = decimal.Parse(data1.Rows[0]["START_QTY"].ToString());//寮�宸ユ暟閲�=鏈亾寮�宸ユ�绘暟閲�
+ rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
+ rt.reportqty = good_qty + ng_qty + bad_qty; //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎶ュ簾鎬绘暟
+ mes.code = "200";
+ mes.count = 1;
+ mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+ mes.data = rt;
+ }
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁告姤宸�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細濮斿宸ュ簭
+ {
+ //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
+ sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data3 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
+ {
+ decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum(); //涓婇亾鏀舵枡鏁伴噺
+ decimal startqty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum(); //鏈亾寮�宸ユ�绘暟閲�
+ decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //鏈亾鎶ュ伐鎬绘暟閲�
+ decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum(); //鏈亾涓嶈壇鎬绘暟閲�
+ decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鏈亾鎬绘姤搴熸暟閲�
+
+ decimal sybqty = startqty - good_qty - ng_qty - bad_qty;//鏈亾鍓╀綑鍙姤鏁伴噺=鏈亾寮�宸ユ�绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾鎬绘姤搴熸暟
+ if (sybqty <= 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
+ mes.data = null;
+ return mes;
+ }
+ else
+ {
+ if (sqty == null || sqty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = startqty; //寮�宸ユ暟閲�=鏈亾寮�宸ユ�绘暟閲�
+ rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
+ rt.reportqty = good_qty + ng_qty + bad_qty; //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎬绘姤搴熸暟
+ mes.code = "200";
+ mes.count = 1;
+ mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+ mes.data = rt;
+ }
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ else //鏈亾鏃犳姤宸ヨ褰�
+ {
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鑷埗宸ュ簭
+ {
+ //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+ sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data3 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
+ {
+ decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //涓婇亾鎶ュ伐鎬绘暟閲�
+ decimal start_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum(); //鏈亾寮�宸ユ�绘暟閲�
+ decimal sybqty = start_qty; //鏈亾鍓╀綑鍙姤鏁伴噺=鏈亾寮�宸ユ暟閲�
+ if (sgood_qty == null || sgood_qty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = sybqty; //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
+ rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
+ rt.reportqty = 0; //宸叉姤鏁伴噺
+ mes.code = "200";
+ mes.count = 1;
+ mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+ mes.data = rt;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //濮斿宸ュ簭
+ {
+ //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
+ sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+ var data3 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
+ {
+ decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
+ decimal start_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum();//鏈亾寮�宸ユ�绘暟閲�
+ decimal sybqty = start_qty; //鏈亾鍓╀綑鎶ユ暟閲�=鏈亾寮�宸ユ�绘暟閲�
+ if (sqty == null || sqty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+ mes.data = null;
+ return mes;
+ }
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.startqty = sybqty; //寮�宸ユ暟閲�=鏈亾鍓╀綑鎶ユ暟閲�
+ rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鎶ユ暟閲�
+ rt.reportqty = 0; //宸叉姤鏁伴噺
+ mes.code = "200";
+ mes.count = 1;
+ mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+ mes.data = rt;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ }
+ else //鏃犲紑宸ヨ褰�
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭鏈紑宸�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+ mes.data = null;
+ return mes;
+ }
+
+ }
+ break;
+ case "W": //澶栧崗宸ュ簭
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠鏍囩涓哄鍗忔爣绛�,璇峰墠寰�澶栧崗鎿嶄綔鏍囩椤垫壂鐮�!";
+ mes.data = null;
+ break;
+ default: //鑷埗+澶栧崗宸ュ簭
+ break;
+ }
break;
- default: //鑷埗+澶栧崗宸ュ簭
+ default:
break;
}
-
}
catch (Exception e)
{
@@ -428,11 +799,12 @@
/// <summary>
/// 鐢熶骇寮�鎶ュ伐:澶栧崗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇:宸ュ崟鍙�+宸ュ簭
/// </summary>
- /// <param name="OperType">鎿嶄綔绫诲瀷</param>
+ /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
+ /// <param name="SelectType">鎿嶄綔绫诲瀷</param>
/// <param name="ordercode">宸ュ崟缂栧彿</param>
/// <param name="stepcode">宸ュ簭缂栫爜</param>
/// <returns></returns>
- public static ToMessage WXEncodingSeach(string SelectType, string ordercode, string stepcode)
+ public static ToMessage WXEncodingSeach(string stu_torgcode, string SelectType, string ordercode, string stepcode)
{
var sql = "";
string flwtype = ""; //宸ュ簭灞炴��
@@ -440,24 +812,58 @@
string isend = ""; //鏈亾宸ュ簭
string seq = ""; //宸ュ簭搴忓彿
List<object> list = new List<object>();
- ScanStartReportData rt = new ScanStartReportData();
+ ScanStartReportDataOut rt = new ScanStartReportDataOut();
var dynamicParams = new DynamicParameters();
try
{
+ //鍒ゆ柇褰撳墠宸ュ崟鏄惁鍏抽棴
+ sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stu_torgcode", stu_torgcode);
+ var da0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (da0.Rows.Count > 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ崟宸插叧闂�,涓嶅厑璁稿紑鎶ュ伐鎿嶄綔!";
+ mes.data = null;
+ return mes;
+ }
+
+ //0.鍒ゆ柇褰撳墠宸ュ崟鎵�灞炶溅闂存槸鍚︿负褰撳墠鐧诲綍浜哄憳杞﹂棿
+ sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode";
+ dynamicParams.Add("@ordercode", ordercode);
+ dynamicParams.Add("@stu_torgcode", stu_torgcode);
+ var da1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (da1.Rows.Count <= 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "涓嶆槸鏈溅闂寸敓浜т换鍔�,涓嶅厑璁告搷浣�!";
+ mes.data = null;
+ return mes;
+ }
+
//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.isbott,A.isend
+ 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.isbott,A.isend,L.org_code,L.org_name,
+ M.m_po,W.saleOrderCode
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 TKimp_Ewo W on M.m_po=W.wo and M.materiel_code=W.materiel_code and M.sourceid=W.id
left join TMateriel_Info P on M.materiel_code=P.partcode
+ left join TOrganization L on M.wkshp_code=L.org_code
where A.wo_code=@ordercode and A.step_code=@stepcode";
dynamicParams.Add("@ordercode", ordercode);
dynamicParams.Add("@stepcode", stepcode);
var data = DapperHelper.selectdata(sql, dynamicParams);
if (data.Rows.Count > 0)
{
-
+ rt.wkshopcode = data.Rows[0]["org_code"].ToString(); //杞﹂棿缂栫爜
+ rt.wkshopname = data.Rows[0]["org_name"].ToString(); //杞﹂棿鍚嶇О
rt.wo_code = data.Rows[0]["WO_CODE"].ToString(); //宸ュ崟鍙�
+ rt.saleOrderCode = data.Rows[0]["saleOrderCode"].ToString();//閿�鍞鍗曞彿
+ rt.m_po = data.Rows[0]["m_po"].ToString();//璁㈠崟鍙�
rt.partnumber = data.Rows[0]["PARTCODE"].ToString(); //浜у搧缂栫爜
rt.partname = data.Rows[0]["PARTNAME"].ToString(); //浜у搧鍚嶇О
rt.partspec = data.Rows[0]["PARTSPEC"].ToString(); //浜у搧瑙勬牸
@@ -485,8 +891,8 @@
}
if (isend == "Y") //褰撳墠宸ュ簭鏄湯閬撳伐搴�
{
- rt.nextstepcode = data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
- rt.nextstepname = data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+ rt.nextstepcode = "";// data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
+ rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
}
}
else
@@ -512,15 +918,18 @@
if (isbott == "Y") //棣栭亾宸ュ簭
{
//1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊彂鏂欒褰�
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='F'";
+ sql = @"select * from TK_Wrk_OutRecord R
+ left join TCustomer C on R.wx_code=C.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='F'";
dynamicParams.Add("@ordercode", ordercode);
dynamicParams.Add("@stepcode", stepcode);
var data0 = DapperHelper.selectdata(sql, dynamicParams);
if (data0.Rows.Count > 0) //鏈夊彂鏂欒褰�
{
decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum(); //鍙戞枡鏁伴噺
- decimal ng_qty =data0.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
- decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty; //鍓╀綑鍙彂鏁伴噺
+ decimal ng_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
+ decimal bad_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鎶ュ簾鏁伴噺
+ decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty - bad_qty; //鍓╀綑鍙彂鏁伴噺
if (kfqty <= 0)
{
mes.code = "300";
@@ -566,13 +975,15 @@
if (data0.Rows.Count > 0)
{
//1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鍙戞枡璁板綍
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='F'";
+ sql = @"select * from TK_Wrk_OutRecord R
+ left join TCustomer C on R.wx_code=C.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='F'";
dynamicParams.Add("@ordercode", ordercode);
dynamicParams.Add("@stepcode", stepcode);
var data1 = DapperHelper.selectdata(sql, dynamicParams);
if (data1.Rows.Count > 0)//鏈亾鏈夊彂鏂欒褰�
{
- if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鑷埗宸ュ簭
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "Z") //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細鑷埗宸ュ簭
{
//鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
sql = @"select * from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
@@ -581,11 +992,12 @@
var data3 = DapperHelper.selectdata(sql, dynamicParams);
if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
{
- string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//涓婇亾鎶ュ伐鏁伴噺
+ decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //鏈亾鎶ュ伐鎬绘暟閲�
decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 鏈亾涓嶈壇鏁伴噺
+ decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鏈亾鎶ュ簾鏁伴噺
- decimal sybqty = decimal.Parse(sgood_qty) - sqty - ng_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+ decimal sybqty = sgood_qty - sqty - ng_qty - bad_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
if (sybqty <= 0)
{
mes.code = "300";
@@ -596,9 +1008,17 @@
}
else
{
+ if (sgood_qty == null || sgood_qty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
+ mes.data = null;
+ return mes;
+ }
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = sybqty; //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
- rt.reportqty = sqty + ng_qty; //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺
+ rt.reportqty = sqty + ng_qty + bad_qty; //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾鎶ュ簾鏁伴噺
rt.startqty = sybqty; //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺
mes.code = "200";
@@ -616,7 +1036,7 @@
return mes;
}
}
- if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //澶栧崗宸ュ簭
+ if (data0.Rows[0]["FLWTYPE"].ToString() == "W") //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細澶栧崗宸ュ簭
{
//鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
@@ -628,8 +1048,9 @@
decimal ssqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 鏈亾涓嶈壇鏁伴噺
+ decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鏈亾鎶ュ簾鏁伴噺
- decimal sybqty = ssqty - sqty - ng_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+ decimal sybqty = ssqty - sqty - ng_qty - bad_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
if (sybqty <= 0)
{
mes.code = "300";
@@ -640,9 +1061,17 @@
}
else
{
+ if (ssqty == null || ssqty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
+ mes.data = null;
+ return mes;
+ }
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = sybqty; //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
- rt.reportqty = sqty + ng_qty; //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺
+ rt.reportqty = sqty + ng_qty + bad_qty; //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾鎶ュ簾鏁伴噺
rt.startqty = sybqty; //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺
mes.code = "200";
@@ -655,7 +1084,7 @@
{
mes.code = "300";
mes.count = 0;
- mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿彂鏂�!";
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈彂鏂�,鏈亾涓嶅厑璁稿彂鏂�!";
mes.data = null;
return mes;
}
@@ -672,10 +1101,17 @@
var data3 = DapperHelper.selectdata(sql, dynamicParams);
if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
{
- string sgood_qty = data3.Rows[0]["GOOD_QTY"].ToString();//涓婇亾鎶ュ伐鏁伴噺
+ decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum(); //鏈亾鎶ュ伐鎬绘暟閲�
- decimal sybqty = decimal.Parse(sgood_qty);//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺
-
+ decimal sybqty = sgood_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鎬绘暟閲�
+ if (sgood_qty == null || sgood_qty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
+ mes.data = null;
+ return mes;
+ }
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = sybqty; //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
rt.reportqty = 0; //宸插彂鏁伴噺
@@ -718,6 +1154,14 @@
}
else
{
+ if (ssqty == null || ssqty == 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
+ mes.data = null;
+ return mes;
+ }
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = sybqty; //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
rt.reportqty = 0; //宸插彂鏁伴噺
@@ -767,14 +1211,25 @@
if (isbott == "Y") //棣栭亾宸ュ簭
{
//1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊彂鏂欒褰�
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='F'";
+ sql = @"select R.wo_code,R.step_code,R.wx_code as code,C.name,R.materiel_code,
+ isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.bad_qty),0) as bad_qty
+ from TK_Wrk_OutRecord R
+ left join TCustomer C on R.wx_code=C.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='F'
+ group by R.wo_code,R.step_code,R.wx_code,C.name,R.materiel_code";
dynamicParams.Add("@ordercode", ordercode);
dynamicParams.Add("@stepcode", stepcode);
var data0 = DapperHelper.selectdata(sql, dynamicParams);
if (data0.Rows.Count > 0) //鏈夊彂鏂欒褰�
{
//1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夋敹鏂欒褰�
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+ sql = @"select R.wo_code,R.step_code,R.wx_code as code,C.name,R.materiel_code,
+ isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.bad_qty),0) as bad_qty
+ from TK_Wrk_OutRecord R
+ left join TCustomer C on R.wx_code=C.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'
+ group by R.wo_code,R.step_code,R.wx_code,C.name,R.materiel_code";
+ //sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
dynamicParams.Add("@ordercode", ordercode);
dynamicParams.Add("@stepcode", stepcode);
var data1 = DapperHelper.selectdata(sql, dynamicParams);
@@ -783,7 +1238,8 @@
decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏈亾鏀舵枡鏁伴噺
decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//鏈亾涓嶈壇鏁伴噺
- decimal ksqty = fqty - sqty - ng_qty; //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+ decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鏈亾鎶ュ簾鏁伴噺
+ decimal ksqty = fqty - sqty - ng_qty - bad_qty; //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
if (ksqty <= 0)
{
mes.code = "300";
@@ -796,8 +1252,25 @@
{
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = ksqty; //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
- rt.reportqty = sqty + ng_qty; //宸叉敹鏁伴噺
+ rt.reportqty = sqty + ng_qty + bad_qty; //宸叉敹鏁伴噺
rt.startqty = ksqty; //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
+
+ data0.Merge(data1);//灏嗘寚瀹氱殑dt鍚堝苟
+ rt.list = data0.AsEnumerable().GroupBy(r => new
+ {
+ wo_code = r["wo_code"],
+ step_code = r["step_code"],
+ code = r["code"],
+ name = r["name"]
+ }).Select(g => new
+ {
+ Name = g.Key.code,
+ tp = g.Key.name,
+ fqty = g.Sum(i => (decimal)i["fqty"]),
+ sqty = g.Sum(i => (decimal)i["sqty"]),
+ ng_qty = g.Sum(i => (decimal)i["ng_qty"]),
+ bad_qty = g.Sum(i => (decimal)i["bad_qty"])
+ }).ToList();
mes.code = "200";
mes.count = 3;
@@ -809,11 +1282,27 @@
else
{
decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
-
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = fqty; //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
rt.reportqty = 0; //宸叉敹鏁伴噺
- rt.startqty = fqty; //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
+ rt.startqty = fqty; //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
+ //
+ data0.Merge(data1);//灏嗘寚瀹氱殑dt鍚堝苟
+ rt.list = data0.AsEnumerable().GroupBy(r => new
+ {
+ wo_code = r["wo_code"],
+ step_code = r["step_code"],
+ code = r["code"],
+ name = r["name"]
+ }).Select(g => new
+ {
+ Name = g.Key.code,
+ tp = g.Key.name,
+ fqty = g.Sum(i => (decimal)i["fqty"]),
+ sqty = g.Sum(i => (decimal)i["sqty"]),
+ ng_qty = g.Sum(i => (decimal)i["ng_qty"]),
+ bad_qty = g.Sum(i => (decimal)i["bad_qty"])
+ }).ToList();
mes.code = "200";
mes.count = 3;
@@ -843,14 +1332,24 @@
if (data0.Rows.Count > 0)
{
//1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鍙戞枡璁板綍
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='F'";
+ sql = @"select R.wo_code,R.step_code,R.wx_code as code,C.name,R.materiel_code,
+ isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.bad_qty),0) as bad_qty
+ from TK_Wrk_OutRecord R
+ left join TCustomer C on R.wx_code=C.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='F'
+ group by R.wo_code,R.step_code,R.wx_code,C.name,R.materiel_code";
dynamicParams.Add("@ordercode", ordercode);
dynamicParams.Add("@stepcode", stepcode);
var data1 = DapperHelper.selectdata(sql, dynamicParams);
if (data1.Rows.Count > 0)//鏈亾鏈夊彂鏂欒褰�
{
//2.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鏀舵枡璁板綍
- sql = @"select * from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+ sql = @"select R.wo_code,R.step_code,R.wx_code as code,C.name,R.materiel_code,
+ isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.bad_qty),0) as bad_qty
+ from TK_Wrk_OutRecord R
+ left join TCustomer C on R.wx_code=C.code
+ where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'
+ group by R.wo_code,R.step_code,R.wx_code,C.name,R.materiel_code";
dynamicParams.Add("@ordercode", ordercode);
dynamicParams.Add("@stepcode", stepcode);
var data2 = DapperHelper.selectdata(sql, dynamicParams);
@@ -859,7 +1358,8 @@
decimal fqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏈亾鏀舵枡鏁伴噺
decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//鏈亾涓嶈壇鏁伴噺
- decimal ksqty = fqty - sqty - ng_qty; //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+ decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum(); //鏈亾鎶ュ簾鏁伴噺
+ decimal ksqty = fqty - sqty - ng_qty - bad_qty;//鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
if (ksqty <= 0)
{
mes.code = "300";
@@ -872,8 +1372,25 @@
{
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = ksqty; //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
- rt.reportqty = sqty + ng_qty; //宸叉敹鏁伴噺
+ rt.reportqty = sqty + ng_qty + bad_qty; //宸叉敹鏁伴噺
rt.startqty = ksqty; //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
+
+ data1.Merge(data2);//灏嗘寚瀹氱殑dt鍚堝苟
+ rt.list = data1.AsEnumerable().GroupBy(r => new
+ {
+ wo_code = r["wo_code"],
+ step_code = r["step_code"],
+ code = r["code"],
+ name = r["name"]
+ }).Select(g => new
+ {
+ Name = g.Key.code,
+ tp = g.Key.name,
+ fqty = g.Sum(i => (decimal)i["fqty"]),
+ sqty = g.Sum(i => (decimal)i["sqty"]),
+ ng_qty = g.Sum(i => (decimal)i["ng_qty"]),
+ bad_qty = g.Sum(i => (decimal)i["bad_qty"])
+ }).ToList();
mes.code = "200";
mes.count = 3;
@@ -884,12 +1401,26 @@
else
{
decimal fqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum(); //鏈亾鍙戞枡鏁伴噺
-
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = fqty; //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
rt.reportqty = 0; //宸叉敹鏁伴噺
rt.startqty = fqty; //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
-
+ data1.Merge(data2);//灏嗘寚瀹氱殑dt鍚堝苟
+ rt.list = data1.AsEnumerable().GroupBy(r => new
+ {
+ wo_code = r["wo_code"],
+ step_code = r["step_code"],
+ code = r["code"],
+ name = r["name"]
+ }).Select(g => new
+ {
+ Name = g.Key.code,
+ tp = g.Key.name,
+ fqty = g.Sum(i => (decimal)i["fqty"]),
+ sqty = g.Sum(i => (decimal)i["sqty"]),
+ ng_qty = g.Sum(i => (decimal)i["ng_qty"]),
+ bad_qty = g.Sum(i => (decimal)i["bad_qty"])
+ }).ToList();
mes.code = "200";
mes.count = 3;
mes.Message = "寮圭獥鏀舵枡鐣岄潰!";
--
Gitblit v1.9.3