From 22af5bed0da8a5852bd824a1e21e6fc43df6df2a Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 11 十二月 2023 19:20:43 +0800
Subject: [PATCH] 1.App 智能分析,生产进度看板接口 2.PC端设备点检项目、保养项目、点检标准、保养标准、点检记录、保养记录、维修记录 3.工序检验扫码添加判断(条码任务是否存在、工单是否关闭) 4.添加App图标图片文件
---
VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs | 255 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 254 insertions(+), 1 deletions(-)
diff --git a/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs b/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
index 5e3289f..336c300 100644
--- a/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
@@ -30,7 +30,7 @@
try
{
//鑾峰彇褰撳墠鐢ㄦ埛鎵�灞炵粍缁囧強鎵�鏈夊瓙鑺傜偣缁勭粐
- mes = TOrganizationRecursion.TOrgCodeSeach("SCB");
+ mes = TOrganizationRecursion.TOrgCodeSeach(us.storg_code);
if (mes.code == "300")
{
return mes;
@@ -78,5 +78,258 @@
return mes;
}
#endregion
+
+ #region[App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅]
+ public static ToMessage ProductionScheduleKanban(User us, string ordertype, string partcode, string startopendate, string endclosedate)
+ {
+ Dictionary<object, object> dList = new Dictionary<object, object>();
+ List<AppScheduleKanban> list = new List<AppScheduleKanban>();
+ var dynamicParams = new DynamicParameters();
+ string search = "", search1 = "", sql = "", torg_codelist = "";
+ DataTable dt;
+ try
+ {
+ //鑾峰彇褰撳墠鐢ㄦ埛鎵�灞炵粍缁囧強鎵�鏈夊瓙鑺傜偣缁勭粐
+ mes = TOrganizationRecursion.TOrgCodeSeachNo(us.storg_code);
+ if (mes.code == "300")
+ {
+ return mes;
+ }
+ else
+ {
+ torg_codelist = mes.data.ToString(); //鑾峰彇缁勭粐闆嗗悎
+ string[] torglist = Array.ConvertAll<string, string>(torg_codelist.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[]
+ search1 += " and A.wkshp_code in @wkshp_code ";
+ dynamicParams.Add("@wkshp_code", torglist.ToArray());
+ }
+
+ //鏍规嵁鏌ヨ鏉′欢,鏌ユ壘绗﹀悎瑕佹眰鐨勫崟鎹�
+ switch (ordertype)
+ {
+ case "SO": //鎸夐攢鍞鍗曠粺璁�
+ if (partcode != "" && partcode != null)
+ {
+ string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[]
+ search += " and A.materiel_code in @partcode ";
+ dynamicParams.Add("@partcode", selects.ToArray());
+ }
+ if (startopendate != "" && startopendate != null)
+ {
+ search += " and convert(varchar(100),A.saleOrderDate,21)>=@startopendate and convert(varchar(100),A.saleOrderDate,21)<=@endclosedate ";
+ dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+ dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+ }
+ //鑾峰彇鍗曟嵁淇℃伅
+ sql = @"select distinct saleOrderCode,A.saleOrderDate,sum(A.saleOrderqty) as saleOrderqty
+ from TKimp_Ewo A
+ where A.saleOrderCode<>'' " + search + " group by A.saleOrderCode,A.saleOrderDate order by A.saleOrderDate desc";
+ dt = DapperHelper.selectlist(sql, dynamicParams);
+ if (dt.Rows.Count > 0)
+ {
+ for (int i = 0; i < dt.Rows.Count; i++)
+ {
+ AppScheduleKanban cmp = new AppScheduleKanban();
+ cmp.ordercode = dt.Rows[i]["saleOrderCode"].ToString();
+ cmp.orderqty = dt.Rows[i]["saleOrderqty"].ToString();
+ cmp.children = new List<AppScheduleKanbanSub>();
+ //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+ sql = @"select AA.wo,AA.partcode,AA.partname,AA.partspec,AA.saleOrderqty,isnull(BB.good_qty,0) as good_qty from(
+ select distinct E.wo,T.partcode,T.partname,T.partspec,sum(E.saleOrderqty) as saleOrderqty
+ from TKimp_Ewo E
+ left join TMateriel_Info T on E.materiel_code=T.partcode
+ where E.saleOrderCode=@saleOrderCode
+ group by E.wo,T.partcode,T.partname,T.partspec
+ ) as AA
+ left join
+ (
+ select M.m_po,sum(S.good_qty) as good_qty from TK_Wrk_Man M
+ inner join TK_Wrk_Step S on M.wo_code=S.wo_code
+ where S.isend='Y' and S.good_qty>0
+ group by M.m_po
+ ) as BB on AA.wo=BB.m_po";
+ dynamicParams.Add("@saleOrderCode", dt.Rows[i]["saleOrderCode"].ToString());
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ decimal good_qty = data.AsEnumerable().Select(d => d.Field<decimal>("good_qty")).Sum(); //鎶ュ伐鎬绘暟閲�
+ cmp.ordergoodqty = good_qty.ToString();
+ for (int j = 0; j < data.Rows.Count; j++)
+ {
+ AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+ cbp.code = data.Rows[j]["partcode"].ToString();
+ cbp.name = data.Rows[j]["partname"].ToString();
+ cbp.spec = data.Rows[j]["partspec"].ToString();
+ cbp.planqty = data.Rows[j]["saleOrderqty"].ToString();
+ cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+ cmp.children.Add(cbp);
+ }
+ list.Add(cmp);
+ }
+ mes.code = "200";
+ mes.message = "success!";
+ mes.data = list;
+ return mes;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "鏃犵鍚堣姹傚崟鎹紒";
+ mes.data = null;
+ }
+ break;
+ case "MO": //鎸夌敓浜ц鍗曠粺璁�
+ if (partcode != "" && partcode != null)
+ {
+ string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[]
+ search += " and A.materiel_code in @partcode ";
+ dynamicParams.Add("@partcode", selects.ToArray());
+ }
+ if (startopendate != "" && startopendate != null)
+ {
+ search += " and convert(varchar(100),A.createdate,21)>=@startopendate and convert(varchar(100),A.createdate,21)<=@endclosedate ";
+ dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+ dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+ }
+ //鑾峰彇鍗曟嵁淇℃伅
+ sql = @"select distinct A.wo,A.createdate,sum(A.qty) as orderqty
+ from TKimp_Ewo A
+ where 1=1 " + search + " group by A.wo,A.createdate order by A.createdate desc";
+ dt = DapperHelper.selectlist(sql, dynamicParams);
+ if (dt.Rows.Count > 0)
+ {
+ for (int i = 0; i < dt.Rows.Count; i++)
+ {
+ AppScheduleKanban cmp = new AppScheduleKanban();
+ cmp.ordercode = dt.Rows[i]["wo"].ToString();
+ cmp.orderqty = dt.Rows[i]["orderqty"].ToString();
+ cmp.children = new List<AppScheduleKanbanSub>();
+ //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+ sql = @"select distinct E.wo,T.partcode,T.partname,T.partspec,sum(E.qty) as orderqty,isnull(BB.good_qty,0) as good_qty
+ from TKimp_Ewo E
+ left join TMateriel_Info T on E.materiel_code=T.partcode
+ left join (
+ select M.m_po,sum(S.good_qty) as good_qty from TK_Wrk_Man M
+ inner join TK_Wrk_Step S on M.wo_code=S.wo_code
+ where S.isend='Y' and S.good_qty>0
+ group by M.m_po
+ ) as BB on E.wo=BB.m_po
+ where E.wo=@wo
+ group by E.wo,T.partcode,T.partname,T.partspec,BB.good_qty";
+ dynamicParams.Add("@wo", dt.Rows[i]["wo"].ToString());
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ decimal good_qty = data.AsEnumerable().Select(d => d.Field<decimal>("good_qty")).Sum(); //鎶ュ伐鎬绘暟閲�
+ cmp.ordergoodqty = good_qty.ToString();
+ for (int j = 0; j < data.Rows.Count; j++)
+ {
+ AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+ cbp.code = data.Rows[j]["partcode"].ToString();
+ cbp.name = data.Rows[j]["partname"].ToString();
+ cbp.spec = data.Rows[j]["partspec"].ToString();
+ cbp.planqty = data.Rows[j]["orderqty"].ToString();
+ cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+ cmp.children.Add(cbp);
+ }
+ list.Add(cmp);
+ }
+ mes.code = "200";
+ mes.message = "success!";
+ mes.data = list;
+ return mes;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "鏃犵鍚堣姹傚崟鎹紒";
+ mes.data = null;
+ }
+ break;
+ case "PO": //鎸夌敓浜у伐鍗曠粺璁�
+ if (partcode != "" && partcode != null)
+ {
+ string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[]
+ search += " and A.materiel_code in @partcode ";
+ dynamicParams.Add("@partcode", selects.ToArray());
+ }
+ if (startopendate != "" && startopendate != null)
+ {
+ search += " and convert(varchar(100),A.lm_date,21)>=@startopendate and convert(varchar(100),A.lm_date,21)<=@endclosedate ";
+ dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+ dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+ }
+ //鑾峰彇鍗曟嵁淇℃伅
+ sql = @"select distinct A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date,sum(A.plan_qty) as orderqty
+ from TK_Wrk_Man A
+ left join TMateriel_Info T on A.materiel_code=T.partcode
+ where 1=1 " + search + search1 + " group by A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date order by A.lm_date desc";
+ dt = DapperHelper.selectlist(sql, dynamicParams);
+ if (dt.Rows.Count > 0)
+ {
+ for (int i = 0; i < dt.Rows.Count; i++)
+ {
+ AppScheduleKanban cmp = new AppScheduleKanban();
+ cmp.ordercode = dt.Rows[i]["wo_code"].ToString();
+ cmp.partcode = dt.Rows[i]["partcode"].ToString();
+ cmp.partname = dt.Rows[i]["partname"].ToString();
+ cmp.partspec = dt.Rows[i]["partspec"].ToString();
+ cmp.orderqty = dt.Rows[i]["orderqty"].ToString();
+ cmp.children = new List<AppScheduleKanbanSub>();
+ //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+ sql = @"select M.wo_code,T.stepcode,T.stepname,S.plan_qty,S.good_qty,S.isend
+ from TK_Wrk_Man M
+ inner join TK_Wrk_Step S on M.wo_code=S.wo_code
+ left join TStep T on S.step_code=T.stepcode
+ where M.wo_code=@wo_code
+ order by S.seq ";
+ dynamicParams.Add("@wo_code", dt.Rows[i]["wo_code"].ToString());
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ cmp.ordergoodqty = data.AsEnumerable().Where(t => t.Field<string>("isend") == "Y").ToList().Select(c => c.Field<decimal>("good_qty")).First().ToString();
+ for (int j = 0; j < data.Rows.Count; j++)
+ {
+ AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+ cbp.code = data.Rows[j]["stepcode"].ToString();
+ cbp.name = data.Rows[j]["stepname"].ToString();
+ cbp.spec = data.Rows[j]["isend"].ToString();
+ cbp.planqty = data.Rows[j]["plan_qty"].ToString();
+ cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+ cmp.children.Add(cbp);
+ }
+ list.Add(cmp);
+ }
+ else
+ {
+ cmp.ordergoodqty = "0";
+ list.Add(cmp);
+ }
+ }
+ mes.code = "200";
+ mes.message = "success!";
+ mes.data = list;
+ return mes;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "鏃犵鍚堣姹傚崟鎹紒";
+ mes.data = null;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
}
}
--
Gitblit v1.9.3