From 8fdbaa96f141543fe9f6210975734809a209a0c8 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 07 六月 2024 15:03:16 +0800
Subject: [PATCH] 1.报工增加按序和不按序报工操作,工序调整增加按序和不按序报工调整 2.增加SOP管理:设备SOP管理、工艺SOP管理功能
---
VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs | 8
VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs | 1554 +++++++++++++++++--------------
VueWebCoreApi/DLL/BLL/SystemSettingBLL.cs | 3
VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs | 25
VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs | 463 +++++++++
VueWebCoreApi/Tools/ScanStartReport.cs | 485 +++++++++
VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs | 8
VueWebCoreApi/ApiGroup/OpenApiGroup.cs | 6
VueWebCoreApi/Tools/TOrganizationRecursion.cs | 4
VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs | 7
VueWebCoreApi/VueWebCoreApi.csproj | 2
VueWebCoreApi/DLL/DAL/ProductModelDAL.cs | 38
VueWebCoreApi/DLL/DAL/SystemSettingDAL.cs | 6
VueWebCoreApi/Controllers/SystemSettingController.cs | 6
VueWebCoreApi/Controllers/GeneralBasicDataController.cs | 15
VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs | 66 +
VueWebCoreApi/DLL/DAL/BasicSettingDAL.cs | 8
VueWebCoreApi/Startup.cs | 1
VueWebCoreApi/Controllers/WorkOrderController.cs | 11
VueWebCoreApi/Controllers/SopManageMentController.cs | 172 +++
VueWebCoreApi/Models/WorkData/WorkList.cs | 8
21 files changed, 2,135 insertions(+), 761 deletions(-)
diff --git a/VueWebCoreApi/ApiGroup/OpenApiGroup.cs b/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
index 90518f4..044a0cc 100644
--- a/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
+++ b/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
@@ -39,13 +39,15 @@
[Description("鍗曟嵁鎵撳嵃")]
鍗曟嵁鎵撳嵃 = 15,
[Description("鐪嬫澘绠$悊")]
- 鐪嬫澘绠$悊=16,
+ 鐪嬫澘绠$悊 = 16,
[Description("App涓汉涓績")]
App涓汉涓績 = 20,
[Description("App鏅鸿兘鍒嗘瀽")]
App鏅鸿兘鍒嗘瀽 = 21,
[Description("App瀹夌伅绠$悊")]
- App瀹夌伅绠$悊 = 22
+ App瀹夌伅绠$悊 = 22,
+ [Description("SOP绠$悊")]
+ SOP绠$悊 = 23
}
}
diff --git a/VueWebCoreApi/Controllers/GeneralBasicDataController.cs b/VueWebCoreApi/Controllers/GeneralBasicDataController.cs
index ef96945..b96dc8e 100644
--- a/VueWebCoreApi/Controllers/GeneralBasicDataController.cs
+++ b/VueWebCoreApi/Controllers/GeneralBasicDataController.cs
@@ -183,6 +183,21 @@
}
#endregion
+ #region[璁惧绫诲瀷缂栫爜鏌ユ壘璁惧淇℃伅]
+ /// <summary>
+ /// 璁惧绫诲瀷缂栫爜鏌ユ壘璁惧淇℃伅
+ /// </summary>
+ /// <param name="eqptypecode">璁惧绫诲瀷缂栫爜</param>
+ /// <returns></returns>
+ [Route(template: "EqpTypecodeSeachEqpPermissions")]
+ [HttpGet]
+ public JsonResult EqpTypecodeSeachEqpPermissions(string eqptypecode)
+ {
+ mes = GeneralBasicDataBLL.EqpTypecodeSeachEqpPermissions(eqptypecode);
+ return Json(mes);
+ }
+ #endregion
+
#region[浠撳簱鍩虹璧勬枡]
/// <summary>
/// 浠撳簱鍩虹璧勬枡
diff --git a/VueWebCoreApi/Controllers/SopManageMentController.cs b/VueWebCoreApi/Controllers/SopManageMentController.cs
new file mode 100644
index 0000000..e8ea25c
--- /dev/null
+++ b/VueWebCoreApi/Controllers/SopManageMentController.cs
@@ -0,0 +1,172 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.BLL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.Controllers
+{
+ [ApiExplorerSettings(GroupName = "SOP绠$悊")]
+ [ApiController]
+ [Route("api/[controller]")]
+ [ChannelActionFilter]
+ public class SopManageMentController : Controller
+ {
+ //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
+ ToMessage mes = new ToMessage();
+ RedisCommon redis = new RedisCommon();
+
+ #region[绯荤粺璁剧疆,璁惧SOP鏌ヨ]
+ /// <summary>
+ /// 绯荤粺璁剧疆,璁惧SOP鏌ヨ
+ /// </summary>
+ /// <param name="search">鎼滅储鍏抽敭瀛�</param>
+ /// <param name="check">鏄惁閫変腑鏈�楂樼増鏈�</param>
+ /// <param name="page">椤电爜</param>
+ /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+ /// <param name="prop">鎺掑簭瀛楁</param>
+ /// <param name="order">鎺掑簭瑙勫垯</param>
+ /// <returns></returns>
+ [Route(template: "DeviceSopSearch")]
+ [HttpGet]
+ public JsonResult DeviceSopSearch(string search = null, string check = null, int page = 0, int rows = 0, string prop = null, string order = null)
+ {
+ int startNum = rows * (page - 1) + 1; //璧峰璁板綍rowNum
+ int endNum = rows * page; //缁撴潫璁板綍 rowNum
+ mes = SopManageMentBLL.DeviceSopSearch(search, check, startNum, endNum, prop, order);
+ return Json(mes);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,璁惧SOP鏂板]
+ /// <summary>
+ /// 绯荤粺璁剧疆,璁惧SOP鏂板
+ /// </summary>
+ /// <param name="eqptypecode">璁惧绫诲瀷缂栫爜</param>
+ /// <param name="device">璁惧闆嗗悎瀛楃涓�</param>
+ /// <param name="filename">鏂囦欢鍚嶇О</param>
+ /// <param name="filetypecode">鏂囦欢绫诲瀷缂栫爜</param>
+ /// <param name="file">涓婁紶鏂囦欢</param>
+ /// <returns></returns>
+ [Route(template: "DeviceSopAddSeave")]
+ [HttpPost]
+ public JsonResult DeviceSopAddSeave([FromForm] string eqptypecode, [FromForm] string device, [FromForm] string filename, [FromForm] string filetypecode, IFormFile file)
+ {
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = SopManageMentBLL.DeviceSopAddSeave(eqptypecode, device, filename, filetypecode, file, us);
+ return Json(mes);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,璁惧SOP鍒犻櫎]
+ /// <summary>
+ /// 绯荤粺璁剧疆,璁惧SOP鍒犻櫎
+ /// </summary>
+ /// <param name="id">鏁版嵁id</param>
+ /// <param name="eqpcode">璁惧缂栫爜</param>
+ /// <param name="filepath">鏂囦欢璺緞</param>
+ /// <returns></returns>
+ [Route(template: "DeviceSopDeleteSeave")]
+ [HttpPost]
+ public JsonResult DeviceSopDeleteSeave(string id, string eqpcode, string filepath)
+ {
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = SopManageMentBLL.DeviceSopDeleteSeave(id, eqpcode, filepath, us);
+ return Json(mes);
+ }
+ #endregion
+
+
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP鏌ヨ]
+ /// <summary>
+ /// 绯荤粺璁剧疆,宸ヨ壓SOP鏌ヨ
+ /// </summary>
+ /// <param name="search">鎼滅储鍏抽敭瀛�</param>
+ /// <param name="check">鏄惁閫変腑鏈�楂樼増鏈�</param>
+ /// <param name="page">椤电爜</param>
+ /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+ /// <param name="prop">鎺掑簭瀛楁</param>
+ /// <param name="order">鎺掑簭瑙勫垯</param>
+ /// <returns></returns>
+ [Route(template: "ProcessSopSearch")]
+ [HttpGet]
+ public JsonResult ProcessSopSearch(string search = null, string check = null, int page = 0, int rows = 0, string prop = null, string order = null)
+ {
+ int startNum = rows * (page - 1) + 1; //璧峰璁板綍rowNum
+ int endNum = rows * page; //缁撴潫璁板綍 rowNum
+ mes = SopManageMentBLL.ProcessSopSearch(search, check, startNum, endNum, prop, order);
+ return Json(mes);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP涓婁紶鑾峰彇鏈�澶х増鏈彿]
+ /// <summary>
+ /// 绯荤粺璁剧疆,宸ヨ壓SOP涓婁紶鑾峰彇鏈�澶х増鏈彿
+ /// </summary>
+ /// <param name="partcode">鐗╂枡缂栫爜</param>
+ /// <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+ /// <param name="stepcode">宸ュ簭缂栫爜</param>
+ /// <param name="filetypecode">鏂囦欢绫诲瀷缂栫爜</param>
+ /// <returns></returns>
+ [Route(template: "ProcessSopMaxVersion")]
+ [HttpGet]
+ public JsonResult ProcessSopMaxVersion(string partcode, string routecode, string stepcode,string filetypecode)
+ {
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = SopManageMentBLL.ProcessSopMaxVersion(partcode, routecode, stepcode,filetypecode,us);
+ return Json(mes);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP鏂板]
+ /// <summary>
+ /// 绯荤粺璁剧疆,宸ヨ壓SOP鏂板
+ /// </summary>
+ /// <param name="partcode">鐗╂枡缂栫爜</param>
+ /// <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+ /// <param name="stepcode">宸ュ簭缂栫爜</param>
+ /// <param name="filename">鏂囦欢鍚嶇О</param>
+ /// <param name="filetypecode">鏂囦欢绫诲瀷缂栫爜</param>
+ /// <param name="file">涓婁紶鏂囦欢</param>
+ /// <param name="version">鐗堟湰鍙�</param>
+ /// <returns></returns>
+ [Route(template: "ProcessSopAddSeave")]
+ [HttpPost]
+ public JsonResult ProcessSopAddSeave([FromForm] string partcode, [FromForm] string routecode, [FromForm] string stepcode, [FromForm] string filename, [FromForm] string filetypecode, [FromForm] string version, IFormFile file)
+ {
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = SopManageMentBLL.ProcessSopAddSeave(partcode, routecode, stepcode, filename, filetypecode, version, file, us);
+ return Json(mes);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP鍒犻櫎]
+ /// <summary>
+ /// 绯荤粺璁剧疆,宸ヨ壓SOP鍒犻櫎
+ /// </summary>
+ /// <param name="id">鏁版嵁id</param>
+ /// <param name="partcode">鐗╂枡缂栫爜</param>
+ /// <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+ /// <param name="stepcode">宸ュ簭缂栫爜</param>
+ /// <param name="filepath">鏂囦欢璺緞</param>
+ /// <returns></returns>
+ [Route(template: "ProcessSopDeleteSeave")]
+ [HttpPost]
+ public JsonResult ProcessSopDeleteSeave(string id, string partcode,string routecode,string stepcode, string filepath)
+ {
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = SopManageMentBLL.ProcessSopDeleteSeave(id, partcode, routecode, stepcode, filepath, us);
+ return Json(mes);
+ }
+ #endregion
+ }
+}
diff --git a/VueWebCoreApi/Controllers/SystemSettingController.cs b/VueWebCoreApi/Controllers/SystemSettingController.cs
index b9bd6b7..444dcb9 100644
--- a/VueWebCoreApi/Controllers/SystemSettingController.cs
+++ b/VueWebCoreApi/Controllers/SystemSettingController.cs
@@ -1,4 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
@@ -13,7 +14,7 @@
[ApiExplorerSettings(GroupName = "绯荤粺璁剧疆")]
[ApiController]
[Route("api/[controller]")]
- //[ChannelActionFilter]
+ [ChannelActionFilter]
public class SystemSettingController : Controller
{
//瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
@@ -179,5 +180,6 @@
return Json(mes);
}
#endregion
+
}
}
diff --git a/VueWebCoreApi/Controllers/WorkOrderController.cs b/VueWebCoreApi/Controllers/WorkOrderController.cs
index fb4b432..632c879 100644
--- a/VueWebCoreApi/Controllers/WorkOrderController.cs
+++ b/VueWebCoreApi/Controllers/WorkOrderController.cs
@@ -19,7 +19,7 @@
[ApiExplorerSettings(GroupName = "宸ュ崟绠$悊")]
[ApiController]
[Route("api/[controller]")]
- [ChannelActionFilter]
+ //[ChannelActionFilter]
public class WorkOrderController : Controller
{
//瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
@@ -291,15 +291,16 @@
/// MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
/// </summary>
/// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+ /// <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
/// <param name="partcode">浜у搧缂栫爜</param>
/// <returns></returns>
[Route(template: "MesOrderNewStepContent")]
[HttpPost]
- public JsonResult MesOrderNewStepContent(string wkshopcode, string partcode)
+ public JsonResult MesOrderNewStepContent(string wkshopcode,string routecode, string partcode)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
- mes = WorkOrderBLL.MesOrderNewStepContent(wkshopcode, partcode, us);
+ mes = WorkOrderBLL.MesOrderNewStepContent(wkshopcode, routecode, partcode, us);
return Json(mes);
}
#endregion
@@ -486,7 +487,9 @@
[HttpGet]
public JsonResult MesOrderStepStart(string OperType,string SelectType, string wocode, string stepcode )
{
- mes = WorkOrderBLL.MesOrderStepStart(OperType,SelectType, wocode, stepcode);
+ var token = HttpContext.Request.Headers["Token"].ToString();
+ User us = JwtTools.Denocode(token.ToString());
+ mes = WorkOrderBLL.MesOrderStepStart(OperType,SelectType, wocode, stepcode, us);
return Json(mes);
}
#endregion
diff --git a/VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs b/VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs
index 15e038d..dd9173c 100644
--- a/VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/GeneralBasicDataBLL.cs
@@ -95,6 +95,13 @@
}
#endregion
+ #region[璁惧绫诲瀷缂栫爜鏌ユ壘璁惧淇℃伅]
+ public static ToMessage EqpTypecodeSeachEqpPermissions(string eqptypecode)
+ {
+ return GeneralBasicDataDAL.EqpTypecodeSeachEqpPermissions(eqptypecode);
+ }
+ #endregion
+
#region[浠撳簱鍩虹璧勬枡]
public static ToMessage WareHouse()
{
diff --git a/VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs b/VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs
new file mode 100644
index 0000000..f83cb60
--- /dev/null
+++ b/VueWebCoreApi/DLL/BLL/SopManageMentBLL.cs
@@ -0,0 +1,66 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.DAL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.BLL
+{
+ public class SopManageMentBLL
+ {
+ #region[绯荤粺璁剧疆,璁惧SOP鏌ヨ]
+ public static ToMessage DeviceSopSearch(string search, string check, int startNum, int endNum, string prop, string order)
+ {
+ return SopManageMentDAL.DeviceSopSearch(search, check, startNum, endNum, prop, order);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,璁惧SOP鏂板]
+ public static ToMessage DeviceSopAddSeave(string eqptypecode, string device, string filename, string filetypecode, IFormFile file, User us)
+ {
+ return SopManageMentDAL.DeviceSopAddSeave(eqptypecode, device, filename, filetypecode, file, us);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,璁惧SOP鍒犻櫎]
+ public static ToMessage DeviceSopDeleteSeave(string id, string eqpcode, string filepath, User us)
+ {
+ return SopManageMentDAL.DeviceSopDeleteSeave(id, eqpcode, filepath, us);
+ }
+ #endregion
+
+
+
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP鏌ヨ]
+ public static ToMessage ProcessSopSearch(string search, string check, int startNum, int endNum, string prop, string order)
+ {
+ return SopManageMentDAL.ProcessSopSearch(search, check, startNum, endNum, prop, order);
+ }
+ #endregion
+
+
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP涓婁紶鑾峰彇鏈�澶х増鏈彿]
+ public static ToMessage ProcessSopMaxVersion(string partcode, string routecode, string stepcode, string filetypecode, User us)
+ {
+ return SopManageMentDAL.ProcessSopMaxVersion(partcode, routecode, stepcode, filetypecode, us);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,璁惧SOP鏂板]
+ public static ToMessage ProcessSopAddSeave(string partcode, string routecode, string stepcode, string filename, string filetypecode,string version, IFormFile file, User us)
+ {
+ return SopManageMentDAL.ProcessSopAddSeave(partcode, routecode, stepcode, filename, filetypecode, version, file, us);
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,璁惧SOP鍒犻櫎]
+ public static ToMessage ProcessSopDeleteSeave(string id, string partcode,string routecode,string stepcode, string filepath, User us)
+ {
+ return SopManageMentDAL.ProcessSopDeleteSeave(id, partcode, routecode, stepcode, filepath, us);
+ }
+ #endregion
+ }
+}
diff --git a/VueWebCoreApi/DLL/BLL/SystemSettingBLL.cs b/VueWebCoreApi/DLL/BLL/SystemSettingBLL.cs
index 82a928a..84928af 100644
--- a/VueWebCoreApi/DLL/BLL/SystemSettingBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/SystemSettingBLL.cs
@@ -1,4 +1,5 @@
-锘縰sing Newtonsoft.Json.Linq;
+锘縰sing Microsoft.AspNetCore.Http;
+using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
diff --git a/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs b/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
index 6e45aaa..15e562f 100644
--- a/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
@@ -96,9 +96,9 @@
#endregion
#region[MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭痌
- public static ToMessage MesOrderNewStepContent(string wkshopcode, string partcode, User us)
+ public static ToMessage MesOrderNewStepContent(string wkshopcode,string routecode, string partcode, User us)
{
- return WorkOrderDAL.MesOrderNewStepContent(wkshopcode, partcode, us);
+ return WorkOrderDAL.MesOrderNewStepContent(wkshopcode, routecode, partcode, us);
}
#endregion
@@ -153,9 +153,9 @@
#endregion
#region [鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛]
- public static ToMessage MesOrderStepStart(string OperType, string SelectType, string wocode, string stepcode)
+ public static ToMessage MesOrderStepStart(string OperType, string SelectType, string wocode, string stepcode,User us)
{
- return WorkOrderDAL.MesOrderStepStart(OperType, SelectType, wocode, stepcode);
+ return WorkOrderDAL.MesOrderStepStart(OperType, SelectType, wocode, stepcode, us);
}
#endregion
diff --git a/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs b/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
index 336c300..9c91f76 100644
--- a/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
@@ -122,7 +122,7 @@
//鑾峰彇鍗曟嵁淇℃伅
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";
+ where A.saleOrderCode<>'' and A.status<>'CLOSED' " + search + " group by A.saleOrderCode,A.saleOrderDate order by A.saleOrderDate desc";
dt = DapperHelper.selectlist(sql, dynamicParams);
if (dt.Rows.Count > 0)
{
@@ -137,7 +137,7 @@
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
+ where E.saleOrderCode=@saleOrderCode and E.status<>'CLOSED'
group by E.wo,T.partcode,T.partname,T.partspec
) as AA
left join
@@ -212,7 +212,7 @@
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
+ where E.wo=@wo and E.status<>'CLOSED'
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);
@@ -260,7 +260,7 @@
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";
+ where A.status<>'CLOSED' " + 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)
{
diff --git a/VueWebCoreApi/DLL/DAL/BasicSettingDAL.cs b/VueWebCoreApi/DLL/DAL/BasicSettingDAL.cs
index 3f51867..5ab8f29 100644
--- a/VueWebCoreApi/DLL/DAL/BasicSettingDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/BasicSettingDAL.cs
@@ -3448,7 +3448,7 @@
where S.materiel_code=@partcode
union all
select materiel_code,step_seq,step_code,'0' as unprice,isbott,isend from TMateriel_Step
- where materiel_code+step_code
+ where materiel_code=@partcode and materiel_code+step_code
not in(select materiel_code+step_code from TPrteEqp_Stad
where materiel_code=@partcode)
) as A
@@ -3546,11 +3546,12 @@
total = 0; //鎬绘潯鏁�
sql = @"select * from (
select A.id,A.materiel_code as partcode,B.partname,B.partspec,A.route_code,C.name as route_name,
- D.stepcode,D.stepname,A.unprice
+ D.stepcode,D.stepname,A.unprice,U.username as lm_user,A.lm_date
from TPrteEqp_Stad A
left join TMateriel_Info B on A.materiel_code=B.partcode
left join TFlw_Rout C on A.route_code=C.code
left join TStep D on A.step_code=D.stepcode
+ left join TUser U on A.lm_user=U.usercode
) as AA where" + search;
}
else //宸ュ簭鐗�
@@ -3558,10 +3559,11 @@
search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
total = 0; //鎬绘潯鏁�
sql = @"select * from (
- select A.id,A.materiel_code as partcode,B.partname,B.partspec,D.stepcode,D.stepname,A.unprice
+ select A.id,A.materiel_code as partcode,B.partname,B.partspec,D.stepcode,D.stepname,A.unprice,U.username as lm_user,A.lm_date
from TPrteEqp_Stad A
left join TMateriel_Info B on A.materiel_code=B.partcode
left join TStep D on A.step_code=D.stepcode
+ left join TUser U on A.lm_user=U.usercode
) as AA where" + search;
}
var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
diff --git a/VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs b/VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs
index 004b993..26d0d40 100644
--- a/VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/GeneralBasicDataDAL.cs
@@ -364,6 +364,31 @@
}
#endregion
+ #region[璁惧绫诲瀷缂栫爜鏌ユ壘璁惧淇℃伅]
+ public static ToMessage EqpTypecodeSeachEqpPermissions(string eqptypecode)
+ {
+ var sql = "";
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ sql = @"select code,name from TEqpInfo where enable='Y' and eqptype_code=@eqptypecode";
+ dynamicParams.Add("@eqptypecode", eqptypecode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ mes.code = "200";
+ mes.message = "鏌ヨ鎴愬姛!";
+ mes.data = data;
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
#region[浠撳簱鍩虹璧勬枡]
public static ToMessage WareHouse()
{
diff --git a/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs b/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
index cbc86af..e041246 100644
--- a/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
@@ -1167,22 +1167,16 @@
lm_date = DateTime.Now.ToString()
}
});
- //褰撳墠浜у搧宸ヨ壓璺嚎瀵瑰簲宸ュ簭鏄惁宸茶缃妭鎷嶅伐浠�
- sql = @"select * from TPrteEqp_Stad where materiel_code=@partcode and route_code=@routecode";
- dynamicParams.Add("@partcode", json[0].partcode);
- dynamicParams.Add("@routecode", json[0].children[i].code);
- var data = DapperHelper.selectdata(sql, dynamicParams);
- if (data.Rows.Count<=0)
- {
- //娓呴櫎鑺傛媿宸ヤ环琛ㄥ搴旀暟鎹�
- sql = @"delete TPrteEqp_Stad where materiel_code=@partcode and route_code=@routecode";
- list.Add(new { str = sql, parm = new { partcode = json[0].partcode, routecode=json[0].children[i].code } });
- }
}
//鏍囪鐗╂枡琛ㄥ叧鑱斿伐鑹鸿矾绾挎爣璇�
sql = @"update TMateriel_Info set is_retdproc='Y',default_route=@defaultroute_code where partcode=@partcode";
list.Add(new { str = sql, parm = new { partcode = json[0].partcode, defaultroute_code = json[0].defaultroute_code } });
-
+
+ //娓呴櫎鑺傛媿宸ヤ环琛ㄥ綋鍓嶄骇鍝佸搴斿伐鑹鸿矾绾夸笉鍖呭惈姝ゆ璁剧疆鐨勫叾瀹冩暟鎹�
+ //string鍒嗗壊杞瑂tring[]
+ string[] routcode = Array.ConvertAll<string, string>(string.Join(",", json[0].children.Select(s => s.code)).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString());
+ sql = @"delete TPrteEqp_Stad where materiel_code=@partcode and route_code not in @routecode";
+ list.Add(new { str = sql, parm = new { partcode = json[0].partcode, routecode= routcode } });
}
}
else //宸ュ簭鐗�
@@ -1223,22 +1217,16 @@
lm_date = DateTime.Now.ToString()
}
});
- //褰撳墠浜у搧瀵瑰簲宸ュ簭鏄惁宸茶缃妭鎷嶅伐浠�
- sql = @"select * from TPrteEqp_Stad where materiel_code=@partcode and step_code=@stepcode";
- dynamicParams.Add("@partcode", json[0].partcode);
- dynamicParams.Add("@stepcode", json[0].children[i].code);
- var data = DapperHelper.selectdata(sql, dynamicParams);
- if (data.Rows.Count <= 0)
- {
- //娓呴櫎鑺傛媿宸ヤ环琛ㄥ搴旀暟鎹�
- sql = @"delete TPrteEqp_Stad where materiel_code=@partcode and step_code=@stepcode";
- list.Add(new { str = sql, parm = new { partcode = json[0].partcode, routecode = json[0].children[i].code } });
- }
}
//鏍囪鐗╂枡琛ㄥ叧鑱斿伐鑹鸿矾绾挎爣璇�
sql = @"update TMateriel_Info set is_retdproc='Y',default_route=@defaultroute_code where partcode=@partcode";
list.Add(new { str = sql, parm = new { partcode = json[0].partcode, defaultroute_code = json[0].defaultroute_code } });
- //娓呴櫎鑺傛媿宸ヤ环琛ㄥ搴旀暟鎹�
+
+ //娓呴櫎鑺傛媿宸ヤ环琛ㄥ綋鍓嶄骇鍝佸搴斿伐搴忎笉鍖呭惈姝ゆ璁剧疆鐨勫叾瀹冩暟鎹�
+ //string鍒嗗壊杞瑂tring[]
+ string[] stepcode = Array.ConvertAll<string, string>(string.Join(",", json[0].children.Select(s => s.code)).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString());
+ sql = @"delete TPrteEqp_Stad where materiel_code=@partcode and step_code not in @stepcode";
+ list.Add(new { str = sql, parm = new { partcode = json[0].partcode, stepcode = stepcode } });
}
}
bool aa = DapperHelper.DoTransaction(list);
@@ -1280,7 +1268,7 @@
//鑾峰彇鐗╂枡鏁版嵁
sql = @"select M.partcode,M.partname,M.partspec,M.idunit as uom_code,T.name as uom_name,
M.idunitgroup as stocktype_code,D.name as stocktype_name,
- M.idwarehouse as stck_code,S.name as stck_name
+ M.idwarehouse as stck_code,S.name as stck_name,M.default_route
from TMateriel_Info M
left join TUnit T on M.idunit=T.code
left join TUnitGroup D on M.idunitgroup=D.code
diff --git a/VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs b/VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs
new file mode 100644
index 0000000..e1fe62e
--- /dev/null
+++ b/VueWebCoreApi/DLL/DAL/SopManageMentDAL.cs
@@ -0,0 +1,463 @@
+锘縰sing Dapper;
+using Microsoft.AspNetCore.Http;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.DAL
+{
+ public class SopManageMentDAL
+ {
+ public static DataTable dt; //瀹氫箟鍏ㄥ眬鍙橀噺dt
+ public static bool res; //瀹氫箟鍏ㄥ眬鍙橀噺dt
+ public static ToMessage mes = new ToMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
+ public static string strProcName = ""; //瀹氫箟鍏ㄥ眬sql鍙橀噺
+ public static List<SqlParameter> listStr = new List<SqlParameter>(); //瀹氫箟鍏ㄥ眬鍙傛暟闆嗗悎
+ public static SqlParameter[] parameters; //瀹氫箟鍏ㄥ眬SqlParameter鍙傛暟鏁扮粍
+
+ #region[绯荤粺璁剧疆,璁惧SOP鏌ヨ]
+ public static ToMessage DeviceSopSearch(string search, string check, int startNum, int endNum, string prop, string order)
+ {
+ var dynamicParams = new DynamicParameters();
+ string sech = "";
+ try
+ {
+ if (search != "" && search != null)
+ {
+ sech += "and concat(isnull(AA.eqptypecode,''),isnull(AA.eqptypename,''),isnull(AA.eqpcode,''),isnull(AA.eqpname,''),isnull(AA.filetypecode,''),isnull(AA.filetypename,''),isnull(AA.filename,''),isnull(AA.version,''),isnull(AA.username,'')) like '%'+@search+'%' ";
+ dynamicParams.Add("@search", search);
+ }
+ if (check == "Y")
+ {
+ sech += "and AA.rn=1 ";
+ dynamicParams.Add("@rn", 1);
+ }
+
+ if (sech == "")
+ {
+ sech = "and 1=1 ";
+ }
+ sech = sech.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+ // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+ var total = 0; //鎬绘潯鏁�
+ var sql = @"select AA.id,AA.eqptypecode,AA.eqptypename,AA.eqpcode,AA.eqpname,AA.filetypecode,AA.filetypename,AA.filename,AA.version,AA.filepath,
+ AA.username,AA.lm_date,AA.rn from(
+ select top 100 A.id,A.eqptypecode,T.name as eqptypename,A.eqpcode,E.name as eqpname,A.filetypecode,
+ (case when A.filetypecode='P001' then '浣滀笟鎸囧涔�' when A.filetypecode='P002' then '妫�楠屾寚瀵间功' when A.filetypecode='P003' then '鍥剧焊' end) as filetypename,
+ A.filename,A.version,A.filepath,U.username,A.lm_date,
+ row_number() over(partition by A.eqptypecode,A.eqpcode,A.filetypecode order by replace(A.version,'V','') desc) rn
+ from TDeviceSop A
+ left join TEqpInfo E on A.eqpcode=E.code
+ left join TEqpType T on E.eqptype_code=T.code
+ left join TUser U on A.lm_user=U.usercode
+ ) as AA where " + sech + "";
+ var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+ mes.code = "200";
+ mes.message = "鏌ヨ鎴愬姛!";
+ mes.count = total;
+ mes.data = data.ToList();
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,璁惧SOP鏂板]
+ public static ToMessage DeviceSopAddSeave(string eqptypecode, string device, string filename, string filetypecode, IFormFile file, User us)
+ {
+ string sql = "";
+ var dynamicParams = new DynamicParameters();
+ List<object> list = new List<object>();
+ try
+ {
+ list.Clear();
+ if (file == null || file.Length <= 0)
+ {
+ mes.code = "300";
+ mes.message = "鏂囦欢涓嶈兘涓虹┖锛�";
+ }
+ else
+ {
+ //鑾峰彇涓婁紶鏂囦欢,缁勫悎瀛樺偍璺緞
+ string FileName = "SOP" + DateTime.Now.ToString("yyyyMMddhhmmss");
+ string filePath = "wwwroot/DeviceSopFile/" + FileName + file.FileName; //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻枃浠跺湴鍧�)
+ string filePath1 = "DeviceSopFile/" + FileName + file.FileName; //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻暟鎹〃鍦板潃)
+
+ // 淇濆瓨鏂囦欢var stream = new FileStream(filePath, FileMode.Create)
+ using (var stream = new FileStream(filePath, FileMode.Create))
+ {
+ file.CopyTo(stream);
+ }
+
+ //鑾峰彇璁惧闆嗗悎
+ string[] devicecode = Array.ConvertAll<string, string>(device.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[]
+ for (int i = 0; i < devicecode.Length; i++)
+ {
+ string version = "";
+ //鏌ヨ褰撳墠璁惧鏄惁瀛樺湪鍚屾枃浠剁被鍨嬬殑SOP鏂囦欢,瀛樺湪灏卞鍔犵増鏈彿
+ sql = @"select isnull(max(substring(version,charindex('V',version)+1,len(version)-charindex('V',version))),0)+1 as version
+ from TDeviceSop
+ where eqptypecode=@eqptypecode and eqpcode=@eqpcode and filetypecode=@filetypecode";
+ dynamicParams.Add("@eqptypecode", eqptypecode);
+ dynamicParams.Add("@eqpcode", devicecode[i].ToString());
+ dynamicParams.Add("@filetypecode", filetypecode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ version = "V" + data.Rows[0]["version"].ToString();
+ }
+ else
+ {
+ version = "V1";
+ }
+ //鍐欏叆璁惧SOP琛�
+ sql = @"insert into TDeviceSop(eqptypecode,eqpcode,filename,filetypecode,filepath,version,lm_user,lm_date)
+ values(@eqptypecode,@eqpcode,@filename,@filetypecode,@filepath,@version,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ eqptypecode = eqptypecode,
+ eqpcode = devicecode[i].ToString(),
+ filename = file.FileName,
+ filetypecode = filetypecode,
+ filepath = filePath1,
+ version = version,
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString()
+ }
+ });
+ }
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鏂板璁惧SOP", "SOP鏂囦欢:" + file.FileName + "璁惧:" + device.ToString(), us.usertype);
+ mes.code = "200";
+ mes.count = 0;
+ mes.message = "鏂板璁惧SOP鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "鏂板璁惧SOP澶辫触!";
+ mes.data = null;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,璁惧SOP鍒犻櫎]
+ public static ToMessage DeviceSopDeleteSeave(string id, string eqpcode, string filepath, User us)
+ {
+ var sql = "";
+ var dynamicParams = new DynamicParameters();
+ List<object> list = new List<object>();
+ try
+ {
+ list.Clear();
+ //鏌ヨ褰撳墠鏂囦欢鍑哄幓褰撳墠鍒犻櫎鐨�,鏄惁杩樿鍏朵粬寮曠敤
+ sql = @"select * from TDeviceSop where id<>@id and filepath=@filepath";
+ dynamicParams.Add("@id", id);
+ dynamicParams.Add("@filepath", filepath);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count <= 0)
+ {
+ // 鏋勫缓瀹屾暣鐨勬枃浠惰矾寰�
+ var filePath = Path.Combine("wwwroot", filepath);
+ // 鍒犻櫎鏂囦欢
+ System.IO.File.Delete(filePath);
+ }
+ sql = @"delete TDeviceSop where id=@id";
+ list.Add(new { str = sql, parm = new { id = id } });
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鍒犻櫎璁惧SOP", "璁惧:" + eqpcode, us.usertype);
+ 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[绯荤粺璁剧疆,宸ヨ壓SOP鏌ヨ]
+ public static ToMessage ProcessSopSearch(string search, string check, int startNum, int endNum, string prop, string order)
+ {
+ var dynamicParams = new DynamicParameters();
+ string sech = "";
+ try
+ {
+ if (search != "" && search != null)
+ {
+ sech += "and concat(isnull(AA.materielcode,''),isnull(AA.materielname,''),isnull(AA.routecode,''),isnull(AA.routename,''),isnull(AA.stepcode,''),isnull(AA.stepname,''),isnull(AA.filetypecode,''),isnull(AA.filetypename,''),isnull(AA.filename,''),isnull(AA.version,''),isnull(AA.username,'')) like '%'+@search+'%' ";
+ dynamicParams.Add("@search", search);
+ }
+ if (check == "Y")
+ {
+ sech += "and AA.rn=1 ";
+ dynamicParams.Add("@rn", 1);
+ }
+
+ if (sech == "")
+ {
+ sech = "and 1=1 ";
+ }
+ sech = sech.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+ // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+ var total = 0; //鎬绘潯鏁�
+ var sql = @"select AA.id,AA.materielcode,AA.materielname,AA.routecode,AA.routename,AA.stepcode,AA.stepname,AA.filetypecode,AA.filetypename,AA.filename,AA.version,AA.filepath,
+ AA.username,AA.lm_date,AA.rn from(
+ select top 100 A.id,A.materielcode,M.partname as materielname,A.routecode,R.name as routename,A.stepcode,S.stepname,A.filetypecode,
+ (case when A.filetypecode='P001' then '浣滀笟鎸囧涔�' when A.filetypecode='P002' then '妫�楠屾寚瀵间功' when A.filetypecode='P003' then '鍥剧焊' end) as filetypename,
+ A.filename,A.version,A.filepath,U.username,A.lm_date,
+ row_number() over(partition by A.materielcode,A.routecode,A.stepcode,A.filetypecode order by replace(A.version,'V','') desc) rn
+ from TProcessSop A
+ left join TMateriel_Info M on A.materielcode=M.partcode
+ left join TFlw_Rout R on A.routecode=R.code
+ left join TStep S on A.stepcode=S.stepcode
+ left join TUser U on A.lm_user=U.usercode
+ ) as AA where " + sech + "";
+ var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+ mes.code = "200";
+ mes.message = "鏌ヨ鎴愬姛!";
+ mes.count = total;
+ mes.data = data.ToList();
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP涓婁紶鑾峰彇鏈�澶х増鏈彿]
+ public static ToMessage ProcessSopMaxVersion(string partcode, string routecode, string stepcode, string filetypecode, User us)
+ {
+ string sql = "";
+ var dynamicParams = new DynamicParameters();
+ string sech = "";
+ try
+ {
+ dynamic dynObj = JObject.Parse(us.mesSetting);
+ bool route = dynObj.route;
+ if (route) //鎸夊伐鑹鸿矾绾挎ā寮�
+ {
+ sech += " and routecode=@routecode and stepcode=@stepcode";
+ dynamicParams.Add("@routecode", routecode);
+ dynamicParams.Add("@stepcode", stepcode);
+ }
+ else //宸ュ簭妯″紡
+ {
+ sech += " and stepcode=@stepcode";
+ dynamicParams.Add("@stepcode", stepcode);
+ }
+ //鑾峰彇SOP鏂囦欢浣滀笟鏂囦欢涓婁紶鑾峰彇鏈�澶х増鏈彿
+ sql = @"select isnull(max(substring(version,charindex('V',version)+1,len(version)-charindex('V',version))),0)+1 as file_version
+ from TProcessSop where materielcode=@materielcode and filetypecode=@filetypecode "+sech;
+ dynamicParams.Add("@materielcode", partcode);
+ dynamicParams.Add("@filetypecode", filetypecode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ mes.code = "200";
+ mes.message = "鑾峰彇鐗堟湰鍙锋垚鍔�!";
+ mes.data = "V" + data.Rows[0]["file_version"].ToString();
+ }
+ else
+ {
+ mes.code = "300";
+ 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[绯荤粺璁剧疆,宸ヨ壓SOP鏂板]
+ public static ToMessage ProcessSopAddSeave(string partcode, string routecode, string stepcode, string filename, string filetypecode, string version, IFormFile file, User us)
+ {
+ string sql = "";
+ var dynamicParams = new DynamicParameters();
+ List<object> list = new List<object>();
+ try
+ {
+ list.Clear();
+ if (file == null || file.Length <= 0)
+ {
+ mes.code = "300";
+ mes.message = "鏂囦欢涓嶈兘涓虹┖锛�";
+ }
+ else
+ {
+ //鑾峰彇涓婁紶鏂囦欢,缁勫悎瀛樺偍璺緞
+ string FileName = "SOP" + DateTime.Now.ToString("yyyyMMddhhmmss");
+ string filePath = "wwwroot/ProcessSopFile/" + FileName + file.FileName; //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻枃浠跺湴鍧�)
+ string filePath1 = "ProcessSopFile/" + FileName + file.FileName; //閫氳繃姝ゅ璞¤幏鍙栨枃浠跺悕(瀛樻暟鎹〃鍦板潃)
+
+ // 淇濆瓨鏂囦欢var stream = new FileStream(filePath, FileMode.Create)
+ using (var stream = new FileStream(filePath, FileMode.Create))
+ {
+ file.CopyTo(stream);
+ }
+ //鍐欏叆璁惧SOP琛�
+ sql = @"insert into TProcessSop(materielcode,routecode,stepcode,filetypecode,filename,filepath,version,lm_user,lm_date)
+ values(@materielcode,@routecode,@stepcode,@filetypecode,@filename,@filepath,@version,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ materielcode = partcode,
+ routecode = routecode,
+ stepcode = stepcode,
+ filetypecode = filetypecode,
+ filename = file.FileName,
+ filepath = filePath1,
+ version = version,
+ lm_user = us.usercode,
+ lm_date = DateTime.Now.ToString()
+ }
+ });
+
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鏂板宸ヨ壓SOP", "浜у搧锛�"+partcode+" SOP鏂囦欢:" + file.FileName + " 宸ヨ壓璺嚎:" + routecode ?? "" + " 宸ュ簭:" + stepcode.ToString(), us.usertype);
+ mes.code = "200";
+ mes.count = 0;
+ mes.message = "鏂板璁惧SOP鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "鏂板璁惧SOP澶辫触!";
+ mes.data = null;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[绯荤粺璁剧疆,宸ヨ壓SOP鍒犻櫎]
+ public static ToMessage ProcessSopDeleteSeave(string id, string partcode, string routecode, string stepcode, string filepath, User us)
+ {
+ var sql = "";
+ var dynamicParams = new DynamicParameters();
+ List<object> list = new List<object>();
+ try
+ {
+ list.Clear();
+ //鏌ヨ褰撳墠鏂囦欢鍑哄幓褰撳墠鍒犻櫎鐨�,鏄惁杩樿鍏朵粬寮曠敤
+ sql = @"select * from TProcessSop where id<>@id and filepath=@filepath";
+ dynamicParams.Add("@id", id);
+ dynamicParams.Add("@filepath", filepath);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count <= 0)
+ {
+ // 鏋勫缓瀹屾暣鐨勬枃浠惰矾寰�
+ var filePath = Path.Combine("wwwroot", filepath);
+ // 鍒犻櫎鏂囦欢
+ System.IO.File.Delete(filePath);
+ }
+ sql = @"delete TProcessSop where id=@id";
+ list.Add(new { str = sql, parm = new { id = id } });
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ //鍐欏叆鎿嶄綔璁板綍琛�
+ LogHelper.DbOperateLog(us.usercode, "鍒犻櫎宸ヨ壓SOP", "浜у搧:" + partcode+" SOP鏂囦欢鍦板潃锛�"+filepath+" 宸ヨ壓璺嚎:"+ routecode ?? "" + " 宸ュ簭:"+stepcode, us.usertype);
+ 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
+
+ }
+}
diff --git a/VueWebCoreApi/DLL/DAL/SystemSettingDAL.cs b/VueWebCoreApi/DLL/DAL/SystemSettingDAL.cs
index 1d9958d..44eb014 100644
--- a/VueWebCoreApi/DLL/DAL/SystemSettingDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/SystemSettingDAL.cs
@@ -1,9 +1,11 @@
锘縰sing Dapper;
+using Microsoft.AspNetCore.Http;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
+using System.IO;
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.Models;
@@ -379,7 +381,7 @@
}
});
}
- else
+ else
{
sql = @"update TSystemProcConfig set json=@json,lm_user=@lm_user,lm_date=@lm_date";
list.Add(new
@@ -397,7 +399,7 @@
if (aa)
{
//鍐欏叆鎿嶄綔璁板綍琛�
- LogHelper.DbOperateLog(us.usercode, "绯荤粺娴佺▼璁剧疆", "娴佺▼璁剧疆json:" +systemjson.ToString(), us.usertype);
+ LogHelper.DbOperateLog(us.usercode, "绯荤粺娴佺▼璁剧疆", "娴佺▼璁剧疆json:" + systemjson.ToString(), us.usertype);
mes.code = "200";
mes.count = 0;
mes.message = "娴佺▼璁剧疆鎴愬姛!";
diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index df0d84a..5682948 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -27,7 +27,7 @@
#region[ERP璁㈠崟鏌ヨ]
- public static ToMessage ErpOrderSearch(string erporderstus, string wkshopcode, string erpordercode, string saleordercode, string partcode, string partname, string partspec, int startNum,string datatype, string paydatestartdate, string paydateenddate, string creatuser, int endNum, string prop, string order)
+ public static ToMessage ErpOrderSearch(string erporderstus, string wkshopcode, string erpordercode, string saleordercode, string partcode, string partname, string partspec, int startNum, string datatype, string paydatestartdate, string paydateenddate, string creatuser, int endNum, string prop, string order)
{
var dynamicParams = new DynamicParameters();
string search = "";
@@ -129,7 +129,7 @@
#endregion
#region[ERP璁㈠崟涓嬭揪]
- public static ToMessage MarkSaveErpOrder(string erporderid, string sbid, string erpordercode, string saleordercode, string partcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate,string paystartdate,string payenddate, string clerkuser, User us)
+ public static ToMessage MarkSaveErpOrder(string erporderid, string sbid, string erpordercode, string saleordercode, string partcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string paystartdate, string payenddate, string clerkuser, User us)
{
var sql = "";
List<object> list = new List<object>();
@@ -192,7 +192,7 @@
plan_enddate = Convert.ToDateTime(payenddate),
data_sources = "ERP",
isstep = "N", //鏄惁鍏宠仈宸ュ簭
- clerkuser= clerkuser //閿�鍞鍗曚笟鍔″憳
+ clerkuser = clerkuser //閿�鍞鍗曚笟鍔″憳
}
});
sumqty = sumqty + (decimal.Parse(markqty) - sumqty);
@@ -225,7 +225,7 @@
plan_enddate = Convert.ToDateTime(payenddate),
data_sources = "ERP",
isstep = "N",//鏄惁鍏宠仈宸ュ簭
- clerkuser= clerkuser
+ clerkuser = clerkuser
}
});
}
@@ -306,7 +306,7 @@
{
string erpordercode = group.erpordercode;
int count = 1;
- foreach (var model in obj.Where(s => s.erpordercode==erpordercode).ToList())
+ foreach (var model in obj.Where(s => s.erpordercode == erpordercode).ToList())
{
//鑾峰彇褰撳墠鏈�澶у伐鍗曞彿
sql = @"select isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0) as worknumb
@@ -342,7 +342,7 @@
plan_enddate = Convert.ToDateTime(model.payenddate),
data_sources = "ERP",
isstep = "N", //鏄惁鍏宠仈宸ュ簭
- clerkuser= model.clerkuser //閿�鍞鍗曚笟鍔″憳
+ clerkuser = model.clerkuser //閿�鍞鍗曚笟鍔″憳
}
});
@@ -534,7 +534,7 @@
#region[MES宸ュ崟鏌ヨ]
- public static ToMessage MesOrderSearch(string mesorderstus, string wkshopcode, string mesordercode, string sourceorder, string saleordercode, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string datatype,string paydatestartdate,string paydateenddate, int endNum, string prop, string order)
+ public static ToMessage MesOrderSearch(string mesorderstus, string wkshopcode, string mesordercode, string sourceorder, string saleordercode, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string datatype, string paydatestartdate, string paydateenddate, int endNum, string prop, string order)
{
var dynamicParams = new DynamicParameters();
string search = "";
@@ -624,7 +624,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,
+ var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.route_code,R.name as route_name,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.data_sources,A.isstep,A.clerkuser
from TK_Wrk_Man A
left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code and A.sbid=W.sbid
@@ -633,6 +633,7 @@
left join TSecStck D on A.stck_code=D.code
left join TUser U on A.lm_user=U.usercode
left join TOrganization L on C.parent_id=L.id
+ left join TFlw_Rout R on A.route_code=R.code
where A.is_delete<>'1' " + search;
var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
mes.code = "200";
@@ -775,10 +776,9 @@
if (data_sources == "ERP") //鏁版嵁鏉ユ簮ERP
{
//鏌ヨ璁㈠崟浠诲姟鎬绘暟
- sql = @"select qty from TKimp_Ewo where id=@sourceid and wo=@sourcewo";
+ sql = @"select qty,relse_qty from TKimp_Ewo where id=@sourceid and wo=@sourcewo";
dynamicParams.Add("@sourceid", sourceid);
dynamicParams.Add("@sourcewo", sourcewo);
- dynamicParams.Add("@wocode", wocode);
var data0 = DapperHelper.selectdata(sql, dynamicParams);
//鏌ヨ褰撳墠宸ュ崟鍙慨鏀规暟閲�=璁㈠崟鎬绘暟-宸蹭笅杈惧伐鍗曟�绘暟
sql = @"select isnull(sum(plan_qty),0) as plan_qty from TK_Wrk_Man
@@ -836,16 +836,26 @@
#region[MES宸ュ崟鏂板銆佺紪杈戞彁浜
public static ToMessage AddUpdateMesOrder(string operType, WorkList json, User us)
{
- string sql = "";
+ string sql = "", route_code = "";
var dynamicParams = new DynamicParameters();
List<object> list = new List<object>();
try
{
+ dynamic dynObj = JObject.Parse(us.mesSetting);
+ bool route = dynObj.route;
+ if (route) //宸ヨ壓璺嚎鐗�
+ {
+ route_code = json.routecode;
+ }
+ else //宸ュ簭鐗�
+ {
+ route_code = null;
+ }
if (operType == "Add")
{
//鍐欏叆宸ュ崟琛�
- sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
- values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
+ sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
+ values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
list.Add(new
{
str = sql,
@@ -859,6 +869,7 @@
lm_user = us.usercode,
lm_date = DateTime.Now.ToString(),
materiel_code = json.partcode,
+ route_code = route_code,
sourceid = json.sourceid == "" ? null : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
m_po = json.sourcewo,
saleOrderDeliveryDate = json.deliverydate,
@@ -873,8 +884,8 @@
//鍐欏叆宸ュ簭浠诲姟琛�
for (int i = 0; i < json.WorkListSub.Count; i++)
{
- sql = @"insert into TK_Wrk_Step(wo_code,seq,step_code,stepprice,plan_qty,status,isbott,isend,lm_user,lm_date)
- values(@wo_code,@seq,@step_code,@stepprice,@plan_qty,@status,@isbott,@isend,@lm_user,@lm_date)";
+ sql = @"insert into TK_Wrk_Step(wo_code,seq,step_code,route_code,stepprice,plan_qty,status,isbott,isend,lm_user,lm_date)
+ values(@wo_code,@seq,@step_code,@route_code,@stepprice,@plan_qty,@status,@isbott,@isend,@lm_user,@lm_date)";
list.Add(new
{
str = sql,
@@ -883,6 +894,7 @@
wo_code = json.wocode,
seq = json.WorkListSub[i].stepseq,
step_code = json.WorkListSub[i].stepcode,
+ route_code = route_code,
stepprice = json.WorkListSub[i].stepprice,
plan_qty = json.woqty,
status = json.wostatus,
@@ -915,7 +927,7 @@
{
//淇敼宸ュ崟琛�
sql = @"update TK_Wrk_Man set wotype=@wotype,wkshp_code=@wkshp_code,plan_qty=@plan_qty,lm_user=@lm_user,lm_date=@lm_date,
- materiel_code=@materiel_code,sourceid=@sourceid,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep
+ materiel_code=@materiel_code,route_code=@route_code,sourceid=@sourceid,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep
where wo_code=@wo_code";
list.Add(new
{
@@ -927,6 +939,7 @@
wkshp_code = json.wkshopcode,
plan_qty = json.woqty,
materiel_code = json.partcode,
+ route_code = route_code,
sourceid = json.sourceid == "" ? null : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
m_po = json.sourcewo,
saleOrderDeliveryDate = json.deliverydate,
@@ -950,8 +963,8 @@
//鍐欏叆宸ュ崟宸ュ簭琛�
for (int i = 0; i < json.WorkListSub.Count; i++)
{
- sql = @"insert into TK_Wrk_Step(wo_code,seq,step_code,stepprice,plan_qty,status,isbott,isend,lm_user,lm_date)
- values(@wo_code,@seq,@step_code,@stepprice,@plan_qty,@status,@isbott,@isend,@lm_user,@lm_date)";
+ sql = @"insert into TK_Wrk_Step(wo_code,seq,step_code,route_code,stepprice,plan_qty,status,isbott,isend,lm_user,lm_date)
+ values(@wo_code,@seq,@step_code,@route_code,@stepprice,@plan_qty,@status,@isbott,@isend,@lm_user,@lm_date)";
list.Add(new
{
str = sql,
@@ -960,6 +973,7 @@
wo_code = json.wocode,
seq = json.WorkListSub[i].stepseq,
step_code = json.WorkListSub[i].stepcode,
+ route_code = route_code,
stepprice = json.WorkListSub[i].stepprice,
plan_qty = json.woqty,
status = json.wostatus,
@@ -969,6 +983,45 @@
lm_date = DateTime.Now.ToString()
}
});
+ }
+ //鍒ゆ柇婧愬ご鍗曟嵁鏄惁鏉ユ簮ERP
+ if (json.data_sources == "ERP")
+ {
+ //鍒ゆ柇宸ュ崟淇敼鏁伴噺宸�兼槸鍚︿负0
+ if (json.difference != "0")
+ {
+ string staus = "";
+ //鏌ヨ璁㈠崟鎬绘暟,宸蹭笅杈炬暟閲�
+ sql = @"select qty,relse_qty from TKimp_Ewo where id=@sourceid and wo=@sourcewo";
+ dynamicParams.Add("@sourceid", json.sourceid);
+ dynamicParams.Add("@sourcewo", json.sourcewo);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ //褰撳墠宸ュ崟鍙慨鏀规暟閲�=璁㈠崟鏁伴噺-闈炲綋鍓嶅伐鍗曟�讳笅杈惧伐鍗曟暟閲�
+ decimal qty = decimal.Parse(data0.Rows[0]["qty"].ToString());//璁㈠崟鎬绘暟
+ decimal relse_qty = decimal.Parse(data0.Rows[0]["relse_qty"].ToString());//璁㈠崟宸蹭笅杈炬�绘暟
+ relse_qty = relse_qty + decimal.Parse(json.difference);//鏂扮殑涓嬭揪鏁伴噺=鍘熷涓嬭揪鏁伴噺+宸��(姝h礋)
+ if (qty == relse_qty)
+ {
+ staus = "CREATED"; //鍏ㄩ儴涓嬭揪
+ }
+ else
+ {
+ staus = "CREATING";//閮ㄥ垎涓嬭揪
+ }
+ //鏇存柊璁㈠崟琛ㄧ姸鎬併�佸凡涓嬭揪鏁伴噺
+ sql = @"update TKimp_Ewo set status=@status,relse_qty=@relse_qty where id=@sourceid and wo=@sourcewo";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ status = staus,
+ relse_qty = relse_qty,
+ sourceid = json.sourceid,
+ sourcewo = json.sourcewo
+ }
+ });
+ }
}
bool aa = DapperHelper.DoTransaction(list);
@@ -1085,15 +1138,36 @@
#endregion
#region[MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭痌
- public static ToMessage MesOrderNewStepContent(string wkshopcode, string partcode, User us)
+ public static ToMessage MesOrderNewStepContent(string wkshopcode, string routecode, string partcode, User us)
{
var sql = "";
List<object> list = new List<object>();
var dynamicParams = new DynamicParameters();
try
{
- //MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
- sql = @"select S.wo_code,S.seq,S.step_code,S.stepprice,isbott,isend
+ dynamic dynObj = JObject.Parse(us.mesSetting);
+ bool route = dynObj.route;
+ if (route) //宸ヨ壓璺嚎鐗�
+ {
+ //MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
+ sql = @"select S.wo_code,S.seq,S.step_code,S.stepprice,isbott,isend
+ from TK_Wrk_Step S
+ inner join (
+ select top 1 A.wo_code,A.route_code from TK_Wrk_Man A
+ inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.route_code=S.route_code
+ where A.materiel_code=@partcode and A.wkshp_code=@wkshopcode and A.route_code=@routecode
+ order by A.lm_date desc
+ ) as W on S.wo_code=W.wo_code and S.route_code=W.route_code
+ left join TStep T on S.step_code=T.stepcode
+ order by S.seq";
+ dynamicParams.Add("@wkshopcode", wkshopcode);
+ dynamicParams.Add("@partcode", partcode);
+ dynamicParams.Add("@routecode", routecode);
+ }
+ else
+ {
+ //MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
+ sql = @"select S.wo_code,S.seq,S.step_code,S.stepprice,isbott,isend
from TK_Wrk_Step S
inner join (
select top 1 A.wo_code from TK_Wrk_Man A
@@ -1103,8 +1177,10 @@
) as W on S.wo_code=W.wo_code
left join TStep T on S.step_code=T.stepcode
order by S.seq";
- dynamicParams.Add("@wkshopcode", wkshopcode);
- dynamicParams.Add("@partcode", partcode);
+ dynamicParams.Add("@wkshopcode", wkshopcode);
+ dynamicParams.Add("@partcode", partcode);
+ }
+
var data = DapperHelper.selectdata(sql, dynamicParams);
mes.code = "200";
mes.count = data.Rows.Count;
@@ -1735,18 +1811,34 @@
#endregion
#region [鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛]
- public static ToMessage MesOrderStepStart(string OperType, string SelectType, string wocode, string stepcode)
+ public static ToMessage MesOrderStepStart(string OperType, string SelectType, string wocode, string stepcode, User us)
{
var dynamicParams = new DynamicParameters();
try
{
+ dynamic dynObj = JObject.Parse(us.mesSetting);
+ bool isOrder = dynObj.isOrder;
switch (OperType)
{
case "ZZ":
- mes = ScanStartReport.ZZEncodingSeach(wocode, stepcode);
+ if (isOrder) //鎸夊簭鐢熶骇
+ {
+ mes = ScanStartReport.ZZEncodingSeach(wocode, stepcode);
+ }
+ else //涓嶆寜搴忕敓浜�
+ {
+ mes = ScanStartReport.NoZZEncodingSeach(wocode, stepcode);
+ }
break;
case "WX":
- mes = ScanStartReport.WXEncodingSeach(SelectType, wocode, stepcode);
+ if (isOrder) //鎸夊簭鏀跺彂鏂�
+ {
+ mes = ScanStartReport.WXEncodingSeach(SelectType, wocode, stepcode);
+ }
+ else //涓嶆寜搴忔敹鍙戞枡
+ {
+ mes = ScanStartReport.NoWXEncodingSeach(SelectType, wocode, stepcode);
+ }
break;
default:
break;
@@ -2686,42 +2778,537 @@
var dynamicParams = new DynamicParameters();
try
{
- //鎺у埗閫昏緫锛氶閬撳伐搴忚皟鏁�-> 鏈亾宸ュ簭褰撳墠璋冩暣鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ユ�绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)>浠诲姟鏁伴噺 ==涓嶈兘澶т簬浠诲姟鏁伴噺
- //鎺у埗閫昏緫锛氶閬撳伐搴忚皟鏁�-> (鏈亾宸ュ簭褰撳墠璋冩暣鍚堟牸鏁�+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ュ悎鏍兼�绘暟)<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾) ==涓嶈兘灏忎簬涓嬮亾鎶ュ伐鎬绘暟
- //鎺у埗閫昏緫锛氭湯閬撳伐搴忚皟鏁�-> 鏈亾宸ュ簭褰撳墠璋冩暣鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ユ�绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)>涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟 ==涓嶈兘澶т簬涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟
- //鎺у埗閫昏緫锛氫腑闂村伐搴忚皟鏁�-> 鏈亾宸ュ簭褰撳墠璋冩暣鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ユ�绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)>涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟 ==涓嶈兘澶т簬涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟
- //鎺у埗閫昏緫锛氫腑闂村伐搴忚皟鏁�-> (鏈亾宸ュ簭褰撳墠璋冩暣鍚堟牸鏁�+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ュ悎鏍兼�绘暟)<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾) ==涓嶈兘灏忎簬涓嬮亾鎶ュ伐鎬绘暟
+ dynamic dynObj = JObject.Parse(us.mesSetting);
+ bool isOrder = dynObj.isOrder;
+ //鑾峰彇姝ゆ鎶ュ伐璋冩暣鎻愪氦鐨勬暟鎹�(鍚堟牸鏁伴噺銆佷笉鑹暟閲忋�佸伐搴熸暟閲忋�佹枡搴熸暟閲�)
+ decimal this_reportqty = decimal.Parse(json[0].report_qty.ToString()); //鎶ュ伐鏁伴噺(鍚堟牸)
+ decimal this_ngqty = json[0].children.Sum(item => decimal.Parse(item.ng_qty));//涓嶈壇鏁伴噺姹囨��
+ decimal this_laborbadqty = json[0].children.Sum(item => decimal.Parse(item.laborbad_qty));//宸ュ簾鏁伴噺姹囨��
+ decimal this_materielbadqty = json[0].children.Sum(item => decimal.Parse(item.materielbad_qty));//鏂欏簾鏁伴噺姹囨��
+ decimal this_ng_dvalue = json[0].children.Sum(item => decimal.Parse(item.ng_dvalue));//涓嶈壇鏁伴噺宸�兼眹鎬�
+ decimal this_laborbad_dvalue = json[0].children.Sum(item => decimal.Parse(item.laborbad_dvalue));//宸ュ簾鏁伴噺宸�兼眹鎬�
+ decimal this_materielbad_dvalue = json[0].children.Sum(item => decimal.Parse(item.materielbad_dvalue));//鏂欏簾鏁伴噺宸�兼眹鎬�
string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
- list.Clear();
- //鑾峰彇褰撳墠宸ュ簭涓婇亾宸ュ簭鍙婂睘鎬�
- sql = @"select T.stepcode,T.stepname,T.flwtype from TK_Wrk_Step A
+ if (isOrder) //鎸夊簭
+ {
+ //鎺у埗閫昏緫锛氶閬撳伐搴忚皟鏁�-> 鏈亾宸ュ簭褰撳墠璋冩暣鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ユ�绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)>浠诲姟鏁伴噺 ==涓嶈兘澶т簬浠诲姟鏁伴噺
+ //鎺у埗閫昏緫锛氶閬撳伐搴忚皟鏁�-> (鏈亾宸ュ簭褰撳墠璋冩暣鍚堟牸鏁�+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ュ悎鏍兼�绘暟)<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾) ==涓嶈兘灏忎簬涓嬮亾鎶ュ伐鎬绘暟
+ //鎺у埗閫昏緫锛氭湯閬撳伐搴忚皟鏁�-> 鏈亾宸ュ簭褰撳墠璋冩暣鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ユ�绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)>涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟 ==涓嶈兘澶т簬涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟
+ //鎺у埗閫昏緫锛氫腑闂村伐搴忚皟鏁�-> 鏈亾宸ュ簭褰撳墠璋冩暣鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ユ�绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)>涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟 ==涓嶈兘澶т簬涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟
+ //鎺у埗閫昏緫锛氫腑闂村伐搴忚皟鏁�-> (鏈亾宸ュ簭褰撳墠璋冩暣鍚堟牸鏁�+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ュ悎鏍兼�绘暟)<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾) ==涓嶈兘灏忎簬涓嬮亾鎶ュ伐鎬绘暟
+
+
+ list.Clear();
+ //鑾峰彇褰撳墠宸ュ簭涓婇亾宸ュ簭鍙婂睘鎬�
+ sql = @"select T.stepcode,T.stepname,T.flwtype 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", json[0].wo_code);
- dynamicParams.Add("@seq", json[0].step_seq);
- var pre = DapperHelper.selectdata(sql, dynamicParams);
- //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭鍙婂睘鎬�
- sql = @"select T.stepcode,T.stepname,T.flwtype from TK_Wrk_Step A
+ dynamicParams.Add("@ordercode", json[0].wo_code);
+ dynamicParams.Add("@seq", json[0].step_seq);
+ var pre = DapperHelper.selectdata(sql, dynamicParams);
+ //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭鍙婂睘鎬�
+ sql = @"select T.stepcode,T.stepname,T.flwtype 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", json[0].wo_code);
- dynamicParams.Add("@seq", json[0].step_seq);
- var next = DapperHelper.selectdata(sql, dynamicParams);
- //鍒ゆ柇褰撳墠宸ュ簭鏄嚜鍒跺伐搴忚繕鏄鍗忓伐搴�
- if (json[0].flw_type.ToString() == "Z")//鑷埗宸ュ簭
- {
- //鑾峰彇姝ゆ鎶ュ伐璋冩暣鎻愪氦鐨勬暟鎹�(鍚堟牸鏁伴噺銆佷笉鑹暟閲忋�佸伐搴熸暟閲忋�佹枡搴熸暟閲�)
- decimal this_reportqty = decimal.Parse(json[0].report_qty.ToString()); //鎶ュ伐鏁伴噺(鍚堟牸)
- decimal this_ngqty = json[0].children.Sum(item => decimal.Parse(item.ng_qty));//涓嶈壇鏁伴噺姹囨��
- decimal this_laborbadqty = json[0].children.Sum(item => decimal.Parse(item.laborbad_qty));//宸ュ簾鏁伴噺姹囨��
- decimal this_materielbadqty = json[0].children.Sum(item => decimal.Parse(item.materielbad_qty));//鏂欏簾鏁伴噺姹囨��
- decimal this_ng_dvalue = json[0].children.Sum(item => decimal.Parse(item.ng_dvalue));//涓嶈壇鏁伴噺宸�兼眹鎬�
- decimal this_laborbad_dvalue = json[0].children.Sum(item => decimal.Parse(item.laborbad_dvalue));//宸ュ簾鏁伴噺宸�兼眹鎬�
- decimal this_materielbad_dvalue = json[0].children.Sum(item => decimal.Parse(item.materielbad_dvalue));//鏂欏簾鏁伴噺宸�兼眹鎬�
- //棣栭亾宸ュ簭鐨勬姤宸�
- if (json[0].first_choke == "Y")
+ dynamicParams.Add("@ordercode", json[0].wo_code);
+ dynamicParams.Add("@seq", json[0].step_seq);
+ var next = DapperHelper.selectdata(sql, dynamicParams);
+ //鍒ゆ柇褰撳墠宸ュ簭鏄嚜鍒跺伐搴忚繕鏄鍗忓伐搴�
+ if (json[0].flw_type.ToString() == "Z")//鑷埗宸ュ簭
{
- //鏌ヨ褰撳墠棣栭亾鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+ //棣栭亾宸ュ簭鐨勬姤宸�
+ if (json[0].first_choke == "Y")
+ {
+ //鏌ヨ褰撳墠棣栭亾鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and id<>@id and step_code=@step_code";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@id", json[0].id);
+ dynamicParams.Add("@step_code", json[0].step_code);
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
+ decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�讳笉鑹暟
+ decimal notthis_laborbadqty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�诲伐搴熸暟
+ decimal notthis_materielbadqty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘枡搴熸暟
+ //鍒ゆ柇锛氬綋鍓嶅伐搴忔姤宸ヨ褰曪細鏈鎶ュ伐鏁伴噺+鏈涓嶈壇鏁伴噺+鏈宸ュ簾鏁伴噺+鏈鏂欏簾鏁伴噺+褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟>宸ュ崟浠诲姟鏁伴噺
+ decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbadqty + notthis_materielbadqty;
+ if (updatereportsumqty > decimal.Parse(json[0].task_qty.ToString()))
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠棣栭亾宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庡伐鍗曚换鍔℃暟閲忥細銆�" + json[0].task_qty.ToString() + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ //鍒ゆ柇鏄惁瀛樺湪涓嬮亾宸ュ簭鍙婂睘鎬�
+ if (next.Rows.Count > 0)
+ {
+ if (next.Rows[0]["flwtype"].ToString() == "Z")
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq+1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氭姤宸ユ�绘暟鏁伴噺+涓嶈壇鎬绘暟鏁伴噺+宸ュ簾鎬绘暟閲�+鏂欏簾鎬绘暟閲�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�+涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�+涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�+涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�
+ decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�
+ decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�
+ decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString()); //涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
+ //鍒ゆ柇锛堝綋鍓嶉潪鏈鎶ュ伐鎬诲悎鏍兼暟+鏈鎶ュ伐璋冩暣鍚堟牸鏁帮級<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟
+ if ((notthis_reportqty + this_reportqty) < last_updatereportsumqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠棣栭亾宸ュ簭淇敼鎶ュ伐鎬诲悎鏍兼暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉皬浜庝笅閬撹嚜鍒跺伐搴忔姤宸ユ�绘暟閲忥細銆�" + last_updatereportsumqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ else
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�诲彂鏂欐暟閲�
+ sql = @"select isnull(sum(fqty),0) as good_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and step_seq=@step_seq+1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氬彂鏂欐�绘暟鏁伴噺
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬绘暟閲�
+ //鍒ゆ柇锛堝綋鍓嶉潪鏈鎶ュ伐鎬诲悎鏍兼暟+鏈鎶ュ伐璋冩暣鍚堟牸鏁帮級<涓嬮亾宸ュ簭鍙戞枡鎬绘暟
+ if ((notthis_reportqty + this_reportqty) < last_reportqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠棣栭亾宸ュ簭淇敼鎶ュ伐鎬诲悎鏍兼暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉皬浜庝笅閬撳鍗忓伐搴忓彂鏂欐�绘暟閲忥細銆�" + last_reportqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ }
+
+ }
+ //鏈亾宸ュ簭鐨勬姤宸�
+ else if (json[0].last_choke == "Y")
+ {
+ //鏌ヨ褰撳墠鏈亾鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and id<>@id and step_code=@step_code";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@id", json[0].id);
+ dynamicParams.Add("@step_code", json[0].step_code);
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
+ decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
+ decimal notthis_laborbad_qty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ュ伐搴熸�绘暟
+ decimal notthis_materielbad_qty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ枡搴熸�绘暟
+ //鑾峰彇褰撳墠鏈亾宸ュ簭鎶ュ伐鎬绘暟閲忥細鏈淇敼鎶ュ伐鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鎶ュ伐鏂欏簾鏁伴噺+褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆℃枡搴熸�绘暟
+ decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbad_qty + notthis_materielbad_qty;
+
+ //鍒ゆ柇鏄惁瀛樺湪涓婇亾宸ュ簭鍙婂睘鎬�
+ if (pre.Rows.Count > 0)
+ {
+ if (pre.Rows[0]["flwtype"].ToString() == "Z")
+ {
+ //鏌ヨ褰撳墠鏈亾宸ュ簭涓婇亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq-1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓婇亾宸ュ簭鎶ュ伐鎬绘暟閲�
+ decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓婇亾宸ュ簭涓嶈壇鎬绘暟閲�
+ decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓婇亾宸ュ簭宸ュ簾鎬绘暟閲�
+ decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString()); //涓婇亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
+ //鍒ゆ柇锛氬綋鍓嶆湯閬撳伐搴忔姤宸ヨ褰曪細褰撳墠鏈亾宸ュ簭鎶ュ伐鎬绘暟閲�>涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟
+ if (updatereportsumqty > last_reportqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠鏈亾宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庝笂閬撳伐搴忔姤宸ユ�诲悎鏍兼暟閲忥細銆�" + last_reportqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ else
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓婇亾宸ュ簭锛氭�绘敹鏂欐暟閲�
+ sql = @"select isnull(sum(sqty),0) as good_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and step_seq=@step_seq-1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氭敹鏂欐�绘暟鏁伴噺
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬绘暟閲�
+ //鍒ゆ柇锛氬綋鍓嶆湯閬撳伐搴忔姤宸ヨ褰曪細褰撳墠鏈亾宸ュ簭鎶ュ伐鎬绘暟閲�>涓婇亾宸ュ簭鏀舵枡鍚堟牸鎬绘暟
+ if (updatereportsumqty > last_reportqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠鏈亾宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庝笂閬撳伐搴忔敹鏂欐�诲悎鏍兼暟閲忥細銆�" + last_reportqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ }
+ }
+ else //涓棿宸ュ簭鐨勬姤宸�
+ {
+ //鏌ヨ褰撳墠涓棿鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and id<>@id and step_code=@step_code";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@id", json[0].id);
+ dynamicParams.Add("@step_code", json[0].step_code);
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
+ decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
+ decimal notthis_laborbad_qty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ュ伐璐规�绘暟
+ decimal notthis_materielbad_qty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ枡搴熸�绘暟
+ //鑾峰彇褰撳墠涓棿宸ュ簭鎶ュ伐鎬绘暟閲忥細鏈淇敼鎶ュ伐鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鏂欏簾鎬绘暟+褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟
+ decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbad_qty + notthis_materielbad_qty;
+
+ //鍒ゆ柇鏄惁瀛樺湪涓婇亾宸ュ簭鍙婂睘鎬�
+ if (pre.Rows.Count > 0)
+ {
+ if (pre.Rows[0]["flwtype"].ToString() == "Z")
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓婇亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq-1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓婇亾宸ュ簭鎶ュ伐鎬诲悎鏍兼暟閲�
+ decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓婇亾宸ュ簭涓嶈壇鎬绘暟閲�
+ decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓婇亾宸ュ簭宸ュ簾鎬绘暟閲�
+ decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString());//涓婇亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
+ //鍒ゆ柇锛氬綋鍓嶅伐搴忔姤宸ヨ褰曪細褰撳墠宸ュ簭鎶ュ伐鎬绘暟>涓婇亾宸ュ簭鎶ュ伐鎬诲悎鏍兼暟
+ if (updatereportsumqty > last_reportqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庝笂閬撳伐搴忔姤宸ユ�诲悎鏍兼暟閲忥細銆�" + last_reportqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ else
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓婇亾宸ュ簭锛氭�绘敹鏂欐暟閲�
+ sql = @"select isnull(sum(sqty),0) as good_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and step_seq=@step_seq-1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氭敹鏂欐�绘暟鏁伴噺
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓婇亾宸ュ簭鏀舵枡鎬诲悎鏍兼暟閲�
+ //鍒ゆ柇锛氬綋鍓嶆湯閬撳伐搴忔姤宸ヨ褰曪細褰撳墠宸ュ簭鎶ュ伐鎬绘暟閲�>涓婇亾宸ュ簭鏀舵枡鎬诲悎鏍兼暟閲�
+ if (updatereportsumqty > last_reportqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庝笂閬撳伐搴忔敹鏂欐�诲悎鏍兼暟閲忥細銆�" + last_reportqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ }
+ //鍒ゆ柇鏄惁瀛樺湪涓嬮亾宸ュ簭灞炴��
+ if (next.Rows.Count > 0)
+ {
+ if (next.Rows[0]["flwtype"].ToString() == "Z")
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq+1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt1.Rows.Count > 0)
+ {
+ decimal last_reportqty = decimal.Parse(dt1.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�
+ decimal last_ngqty = decimal.Parse(dt1.Rows[0]["ng_qty"].ToString()); //涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�
+ decimal last_laborbad_qty = decimal.Parse(dt1.Rows[0]["laborbad_qty"].ToString()); //涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�
+ decimal last_materielbad_qty = decimal.Parse(dt1.Rows[0]["materielbad_qty"].ToString()); //涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
+ //鍒ゆ柇锛堝綋鍓嶉潪鏈鎶ュ伐鎬诲悎鏍兼暟+鏈鎶ュ伐璋冩暣鍚堟牸鏁帮級<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟
+ if ((notthis_reportqty + this_reportqty) < last_updatereportsumqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬诲悎鏍兼暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉皬浜庝笅閬撳伐搴忔姤宸ユ�绘暟閲忥細銆�" + last_updatereportsumqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ else
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�诲彂鏂欐暟閲�
+ sql = @"select isnull(sum(fqty),0) as good_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='F' and step_seq=@step_seq+1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氬彂鏂欐�绘暟鏁伴噺
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬诲悎鏍兼暟閲�
+ //鍒ゆ柇锛堝綋鍓嶉潪鏈鎶ュ伐鎬诲悎鏍兼暟+鏈鎶ュ伐璋冩暣鍚堟牸鏁帮級<涓嬮亾宸ュ簭鍙戞枡鎬绘暟
+ if ((notthis_reportqty + this_reportqty) < last_reportqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉ぇ浜庝笅閬撳伐搴忓彂鏂欐�绘暟閲忥細銆�" + last_reportqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ }
+ }
+ }
+ if (json[0].flw_type.ToString() == "W")//澶栧崗宸ュ簭
+ {
+ //鏌ヨ褰撳墠棣栭亾宸ュ簭闈炴娆′緵搴斿晢鏀舵枡锛氭�绘敹鏂欐暟閲�
+ sql = @"select isnull(sum(sqty),0) as sqty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and id<>@id and step_code=@step_code and wx_code<>@wx_code";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@id", json[0].id);
+ dynamicParams.Add("@step_code", json[0].step_code);
+ dynamicParams.Add("@wx_code", json[0].wxcode);
+ var dt_c = DapperHelper.selectdata(sql, dynamicParams);
+
+ //鑾峰彇褰撳墠宸ュ簭銆佷緵搴斿晢瀵瑰簲鐨勫彂鏂欐暟閲�
+ sql = @"select isnull(sum(fqty),0) as fqty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='F' and id<>@id and step_code=@step_code and wx_code=@wx_code";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@id", json[0].id);
+ dynamicParams.Add("@step_code", json[0].step_code);
+ dynamicParams.Add("@wx_code", json[0].wxcode);
+ var dt_0 = DapperHelper.selectdata(sql, dynamicParams);
+ //棣栭亾宸ュ簭鐨勬敹鏂�
+ if (json[0].first_choke == "Y")
+ {
+ //鏌ヨ褰撳墠棣栭亾宸ュ簭闈炴娆℃敹鏂欙細鎬绘敹鏂欐暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+ sql = @"select isnull(sum(sqty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and id<>@id and step_code=@step_code and wx_code=@wx_code";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@id", json[0].id);
+ dynamicParams.Add("@step_code", json[0].step_code);
+ dynamicParams.Add("@wx_code", json[0].wxcode);
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟
+ decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�讳笉鑹暟
+ decimal notthis_laborbadqty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�诲伐搴熸暟
+ decimal notthis_materielbadqty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘枡搴熸暟
+ //鍒ゆ柇锛氬綋鍓嶅伐搴忔姤宸ヨ褰曪細鏈鏀舵枡鏁伴噺+鏈涓嶈壇鏁伴噺+鏈宸ュ簾鏁伴噺+鏈鏂欏簾鏁伴噺+褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟>鍙戞枡鏁伴噺
+ decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbadqty + notthis_materielbadqty;
+ if (updatereportsumqty > decimal.Parse(dt_0.Rows[0]["fqty"].ToString()))
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠澶栧崗宸ュ簭瀵瑰簲渚涘簲鍟嗘敹鏂欐�绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庡彂鏂欐暟閲忥細銆�" + decimal.Parse(dt_0.Rows[0]["fqty"].ToString()) + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ //鍒ゆ柇鏄惁瀛樺湪涓嬮亾宸ュ簭鍙婂睘鎬�
+ if (next.Rows.Count > 0)
+ {
+ if (next.Rows[0]["flwtype"].ToString() == "Z")
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq+1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氭姤宸ユ�绘暟鏁伴噺+涓嶈壇鎬绘暟鏁伴噺+宸ュ簾鎬绘暟閲�+鏂欏簾鎬绘暟閲�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�+涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�+涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�+涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�
+ decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�
+ decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�
+ decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString()); //涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
+ //鍒ゆ柇锛堝綋鍓嶉潪鏈鏀舵枡鏁�+鏈鏀舵枡璋冩暣鏁�+闈炲綋鍓嶄緵搴斿晢鍚屽伐搴忔敹鏂欐�绘暟锛�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟
+ if ((notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) < last_updatereportsumqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠澶栧崗宸ュ簭鏀舵枡鏁伴噺锛氥��" + (notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) + "銆戜笉鑳藉皬浜庝笅閬撹嚜鍒跺伐搴忔姤宸ユ�绘暟閲忥細銆�" + last_updatereportsumqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ else
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�诲彂鏂欐暟閲�
+ sql = @"select isnull(sum(fqty),0) as good_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='F' and step_seq=@step_seq+1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氬彂鏂欐�绘暟鏁伴噺
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬绘暟閲�
+ //鍒ゆ柇锛堝綋鍓嶉潪鏈鏀舵枡鏁�+鏈鎶ュ伐璋冩暣鏀舵枡鏁帮級<涓嬮亾宸ュ簭鍙戞枡鎬绘暟
+ if ((notthis_reportqty + this_reportqty) < last_reportqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠澶栧崗宸ュ簭鏀舵枡鎬绘暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉皬浜庝笅閬撳鍗忓伐搴忓彂鏂欐�绘暟閲忥細銆�" + last_reportqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ }
+
+ }
+ //鏈亾宸ュ簭鐨勬姤宸�
+ else if (json[0].last_choke == "Y")
+ {
+ //鏌ヨ褰撳墠鏈亾鎶ュ伐宸ュ簭闈炴娆℃敹鏂欙細鎬绘敹鏂欐暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+ sql = @"select isnull(sum(sqty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and id<>@id and step_code=@step_code and wx_code=@wx_code";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@id", json[0].id);
+ dynamicParams.Add("@step_code", json[0].step_code);
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃敹鏂欐�绘暟
+ decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
+ decimal notthis_laborbad_qty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ュ伐搴熸�绘暟
+ decimal notthis_materielbad_qty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ枡搴熸�绘暟
+ //鑾峰彇褰撳墠鏈亾宸ュ簭鏀舵枡鎬绘暟閲忥細鏈淇敼鏀舵枡鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鎶ュ伐鏂欏簾鏁伴噺+褰撳墠鏈亾宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆℃枡搴熸�绘暟
+ decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbad_qty + notthis_materielbad_qty;
+ //鍒ゆ柇褰撳墠宸ュ簭渚涘簲鍟嗘敹鏂欐�绘暟>褰撳墠宸ュ簭渚涘簲鍟嗗搴斿彂鏂欐暟閲�
+ if (updatereportsumqty > decimal.Parse(dt_0.Rows[0]["fqty"].ToString()))
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠宸ュ簭渚涘簲鍟嗘敹鏂欐�绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庡伐搴忎緵搴斿晢鍙戞枡鎬绘暟閲忥細銆�" + decimal.Parse(dt_0.Rows[0]["fqty"].ToString()) + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+
+ }
+ else //涓棿宸ュ簭鐨勬姤宸�
+ {
+
+ //鏌ヨ褰撳墠棣栭亾宸ュ簭渚涘簲鍟嗛潪姝ゆ鏀舵枡锛氭�绘敹鏂欐暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+ sql = @"select isnull(sum(sqty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and id<>@id and step_code=@step_code and wx_code=@wx_code";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@id", json[0].id);
+ dynamicParams.Add("@step_code", json[0].step_code);
+ dynamicParams.Add("@wx_code", json[0].wxcode);
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟
+ decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�讳笉鑹暟
+ decimal notthis_laborbadqty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�诲伐搴熸暟
+ decimal notthis_materielbadqty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘枡搴熸暟
+ //鍒ゆ柇锛氬綋鍓嶅伐搴忔姤宸ヨ褰曪細鏈鏀舵枡鏁伴噺+鏈涓嶈壇鏁伴噺+鏈宸ュ簾鏁伴噺+鏈鏂欏簾鏁伴噺+褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟>鍙戞枡鏁伴噺
+ decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbadqty + notthis_materielbadqty;
+ if (updatereportsumqty > decimal.Parse(dt_0.Rows[0]["fqty"].ToString()))
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠澶栧崗宸ュ簭瀵瑰簲渚涘簲鍟嗘敹鏂欐�绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庡彂鏂欐暟閲忥細銆�" + decimal.Parse(dt_0.Rows[0]["fqty"].ToString()) + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ //鍒ゆ柇鏄惁瀛樺湪涓嬮亾宸ュ簭鍙婂睘鎬�
+ if (next.Rows.Count > 0)
+ {
+ if (next.Rows[0]["flwtype"].ToString() == "Z")
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
+ sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
+ from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq+1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氭姤宸ユ�绘暟鏁伴噺+涓嶈壇鎬绘暟鏁伴噺+宸ュ簾鎬绘暟閲�+鏂欏簾鎬绘暟閲�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�+涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�+涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�+涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�
+ decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�
+ decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�
+ decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString()); //涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
+ decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
+ //鍒ゆ柇锛堝綋鍓嶉潪鏈鏀舵枡鏁�+鏈鏀舵枡璋冩暣鏁�+闈炲綋鍓嶄緵搴斿晢鍚屽伐搴忔敹鏂欐�绘暟锛�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟
+ if ((notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) < last_updatereportsumqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠澶栧崗宸ュ簭鏀舵枡鏁伴噺锛氥��" + (notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) + "銆戜笉鑳藉皬浜庝笅閬撹嚜鍒跺伐搴忔姤宸ユ�绘暟閲忥細銆�" + last_updatereportsumqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ else
+ {
+ //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�诲彂鏂欐暟閲�
+ sql = @"select isnull(sum(fqty),0) as good_qty
+ from TK_Wrk_OutRecord where wo_code=@wo_code and style='F' and step_seq=@step_seq+1";
+ dynamicParams.Add("@wo_code", json[0].wo_code);
+ dynamicParams.Add("@step_seq", json[0].step_seq);
+ var dt0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt0.Rows.Count > 0)
+ {
+ //鍒ゆ柇褰撳墠宸ュ簭锛氬彂鏂欐�绘暟鏁伴噺
+ decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬绘暟閲�
+ //鍒ゆ柇锛堝綋鍓嶉潪鏈鏀舵枡鏁�+鏈鎶ュ伐璋冩暣鏀舵枡鏁�+闈炲綋鍓嶄緵搴斿晢鍚屽伐搴忔敹鏂欐�绘暟锛�<涓嬮亾宸ュ簭鍙戞枡鎬绘暟
+ if ((notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) < last_reportqty)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠澶栧崗宸ュ簭鏀舵枡鎬绘暟閲忥細銆�" + (notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) + "銆戜笉鑳藉皬浜庝笅閬撳鍗忓伐搴忓彂鏂欐�绘暟閲忥細銆�" + last_reportqty + "銆�!";
+ mes.data = null;
+ return mes;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ else //涓嶆寜搴�
+ {
+ //鎺у埗閫昏緫锛氬綋鍓嶅伐搴忔姤宸ヨ皟鏁�-> (鏈亾宸ュ簭褰撳墠璋冩暣鍚堟牸鏁�+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ュ悎鏍兼�绘暟)<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾) ==涓嶈兘灏忎簬涓嬮亾鎶ュ伐鎬绘暟
+ list.Clear();
+ //鍒ゆ柇褰撳墠宸ュ簭鏄嚜鍒跺伐搴忚繕鏄鍗忓伐搴�
+ if (json[0].flw_type.ToString() == "Z")
+ {
+
+ //鏌ヨ褰撳墠鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
from TK_Wrk_Record where wo_code=@wo_code and style='B' and id<>@id and step_code=@step_code";
dynamicParams.Add("@wo_code", json[0].wo_code);
@@ -2738,472 +3325,23 @@
{
mes.code = "300";
mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庡伐鍗曚换鍔℃暟閲忥細銆�" + json[0].task_qty.ToString() + "銆�!";
+ mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庡伐鍗曚换鍔℃暟閲忥細銆�" + json[0].task_qty.ToString() + "銆�!";
mes.data = null;
return mes;
}
- //鍒ゆ柇鏄惁瀛樺湪涓嬮亾宸ュ簭鍙婂睘鎬�
- if (next.Rows.Count > 0)
- {
- if (next.Rows[0]["flwtype"].ToString() == "Z")
- {
- //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
- sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq+1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氭姤宸ユ�绘暟鏁伴噺+涓嶈壇鎬绘暟鏁伴噺+宸ュ簾鎬绘暟閲�+鏂欏簾鎬绘暟閲�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�+涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�+涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�+涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�
- decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�
- decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�
- decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString()); //涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
- //鍒ゆ柇锛堝綋鍓嶉潪鏈鎶ュ伐鎬诲悎鏍兼暟+鏈鎶ュ伐璋冩暣鍚堟牸鏁帮級<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟
- if ((notthis_reportqty + this_reportqty) < last_updatereportsumqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭淇敼鎶ュ伐鎬诲悎鏍兼暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉皬浜庝笅閬撹嚜鍒跺伐搴忔姤宸ユ�绘暟閲忥細銆�" + last_updatereportsumqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- else
- {
- //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�诲彂鏂欐暟閲�
- sql = @"select isnull(sum(fqty),0) as good_qty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and step_seq=@step_seq+1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氬彂鏂欐�绘暟鏁伴噺
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬绘暟閲�
- //鍒ゆ柇锛堝綋鍓嶉潪鏈鎶ュ伐鎬诲悎鏍兼暟+鏈鎶ュ伐璋冩暣鍚堟牸鏁帮級<涓嬮亾宸ュ簭鍙戞枡鎬绘暟
- if ((notthis_reportqty + this_reportqty) < last_reportqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭淇敼鎶ュ伐鎬诲悎鏍兼暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉皬浜庝笅閬撳鍗忓伐搴忓彂鏂欐�绘暟閲忥細銆�" + last_reportqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- }
-
}
- //鏈亾宸ュ簭鐨勬姤宸�
- else if (json[0].last_choke == "Y")
+ if (json[0].flw_type.ToString() == "W")
{
- //鏌ヨ褰撳墠鏈亾鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
- sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_Record where wo_code=@wo_code and style='B' and id<>@id and step_code=@step_code";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@id", json[0].id);
- dynamicParams.Add("@step_code", json[0].step_code);
- var dt = DapperHelper.selectdata(sql, dynamicParams);
- decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
- decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
- decimal notthis_laborbad_qty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ュ伐搴熸�绘暟
- decimal notthis_materielbad_qty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ枡搴熸�绘暟
- //鑾峰彇褰撳墠鏈亾宸ュ簭鎶ュ伐鎬绘暟閲忥細鏈淇敼鎶ュ伐鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鎶ュ伐鏂欏簾鏁伴噺+褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆℃枡搴熸�绘暟
- decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbad_qty + notthis_materielbad_qty;
-
- //鍒ゆ柇鏄惁瀛樺湪涓婇亾宸ュ簭鍙婂睘鎬�
- if (pre.Rows.Count > 0)
- {
- if (pre.Rows[0]["flwtype"].ToString() == "Z")
- {
- //鏌ヨ褰撳墠鏈亾宸ュ簭涓婇亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
- sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq-1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓婇亾宸ュ簭鎶ュ伐鎬绘暟閲�
- decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓婇亾宸ュ簭涓嶈壇鎬绘暟閲�
- decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓婇亾宸ュ簭宸ュ簾鎬绘暟閲�
- decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString()); //涓婇亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
- //鍒ゆ柇锛氬綋鍓嶆湯閬撳伐搴忔姤宸ヨ褰曪細褰撳墠鏈亾宸ュ簭鎶ュ伐鎬绘暟閲�>涓婇亾宸ュ簭鎶ュ伐鍚堟牸鎬绘暟
- if (updatereportsumqty > last_reportqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠鏈亾宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庝笂閬撳伐搴忔姤宸ユ�诲悎鏍兼暟閲忥細銆�" + last_reportqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- else
- {
- //鏌ヨ褰撳墠宸ュ簭涓婇亾宸ュ簭锛氭�绘敹鏂欐暟閲�
- sql = @"select isnull(sum(sqty),0) as good_qty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and step_seq=@step_seq-1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氭敹鏂欐�绘暟鏁伴噺
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬绘暟閲�
- //鍒ゆ柇锛氬綋鍓嶆湯閬撳伐搴忔姤宸ヨ褰曪細褰撳墠鏈亾宸ュ簭鎶ュ伐鎬绘暟閲�>涓婇亾宸ュ簭鏀舵枡鍚堟牸鎬绘暟
- if (updatereportsumqty > last_reportqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠鏈亾宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庝笂閬撳伐搴忔敹鏂欐�诲悎鏍兼暟閲忥細銆�" + last_reportqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- }
- }
- else //涓棿宸ュ簭鐨勬姤宸�
- {
- //鏌ヨ褰撳墠涓棿鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
- sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_Record where wo_code=@wo_code and style='B' and id<>@id and step_code=@step_code";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@id", json[0].id);
- dynamicParams.Add("@step_code", json[0].step_code);
- var dt = DapperHelper.selectdata(sql, dynamicParams);
- decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
- decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
- decimal notthis_laborbad_qty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ュ伐璐规�绘暟
- decimal notthis_materielbad_qty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ枡搴熸�绘暟
- //鑾峰彇褰撳墠涓棿宸ュ簭鎶ュ伐鎬绘暟閲忥細鏈淇敼鎶ュ伐鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鏂欏簾鎬绘暟+褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟
- decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbad_qty + notthis_materielbad_qty;
-
- //鍒ゆ柇鏄惁瀛樺湪涓婇亾宸ュ簭鍙婂睘鎬�
- if (pre.Rows.Count > 0)
- {
- if (pre.Rows[0]["flwtype"].ToString() == "Z")
- {
- //鏌ヨ褰撳墠宸ュ簭涓婇亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
- sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq-1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓婇亾宸ュ簭鎶ュ伐鎬诲悎鏍兼暟閲�
- decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓婇亾宸ュ簭涓嶈壇鎬绘暟閲�
- decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓婇亾宸ュ簭宸ュ簾鎬绘暟閲�
- decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString());//涓婇亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
- //鍒ゆ柇锛氬綋鍓嶅伐搴忔姤宸ヨ褰曪細褰撳墠宸ュ簭鎶ュ伐鎬绘暟>涓婇亾宸ュ簭鎶ュ伐鎬诲悎鏍兼暟
- if (updatereportsumqty > last_reportqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庝笂閬撳伐搴忔姤宸ユ�诲悎鏍兼暟閲忥細銆�" + last_reportqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- else
- {
- //鏌ヨ褰撳墠宸ュ簭涓婇亾宸ュ簭锛氭�绘敹鏂欐暟閲�
- sql = @"select isnull(sum(sqty),0) as good_qty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and step_seq=@step_seq-1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氭敹鏂欐�绘暟鏁伴噺
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓婇亾宸ュ簭鏀舵枡鎬诲悎鏍兼暟閲�
- //鍒ゆ柇锛氬綋鍓嶆湯閬撳伐搴忔姤宸ヨ褰曪細褰撳墠宸ュ簭鎶ュ伐鎬绘暟閲�>涓婇亾宸ュ簭鏀舵枡鎬诲悎鏍兼暟閲�
- if (updatereportsumqty > last_reportqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庝笂閬撳伐搴忔敹鏂欐�诲悎鏍兼暟閲忥細銆�" + last_reportqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- }
- //鍒ゆ柇鏄惁瀛樺湪涓嬮亾宸ュ簭灞炴��
- if (next.Rows.Count > 0)
- {
- if (next.Rows[0]["flwtype"].ToString() == "Z")
- {
- //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
- sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq+1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt1 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt1.Rows.Count > 0)
- {
- decimal last_reportqty = decimal.Parse(dt1.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�
- decimal last_ngqty = decimal.Parse(dt1.Rows[0]["ng_qty"].ToString()); //涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�
- decimal last_laborbad_qty = decimal.Parse(dt1.Rows[0]["laborbad_qty"].ToString()); //涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�
- decimal last_materielbad_qty = decimal.Parse(dt1.Rows[0]["materielbad_qty"].ToString()); //涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
- //鍒ゆ柇锛堝綋鍓嶉潪鏈鎶ュ伐鎬诲悎鏍兼暟+鏈鎶ュ伐璋冩暣鍚堟牸鏁帮級<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟
- if ((notthis_reportqty + this_reportqty) < last_updatereportsumqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬诲悎鏍兼暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉皬浜庝笅閬撳伐搴忔姤宸ユ�绘暟閲忥細銆�" + last_updatereportsumqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- else
- {
- //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�诲彂鏂欐暟閲�
- sql = @"select isnull(sum(fqty),0) as good_qty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='F' and step_seq=@step_seq+1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氬彂鏂欐�绘暟鏁伴噺
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬诲悎鏍兼暟閲�
- //鍒ゆ柇锛堝綋鍓嶉潪鏈鎶ュ伐鎬诲悎鏍兼暟+鏈鎶ュ伐璋冩暣鍚堟牸鏁帮級<涓嬮亾宸ュ簭鍙戞枡鎬绘暟
- if ((notthis_reportqty + this_reportqty) < last_reportqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠宸ュ簭淇敼鎶ュ伐鎬绘暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉ぇ浜庝笅閬撳伐搴忓彂鏂欐�绘暟閲忥細銆�" + last_reportqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- }
- }
-
- ///////////////////////////////淇敼鎶ュ伐//////////////////////////////
-
- //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曞瓙琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
- sql = @"update TK_Wrk_RecordSub set report_qty=report_qty+@repair_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
- updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
- where m_id=@m_id and id=@id and style='B'";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- m_id = int.Parse(json[0].id),
- id = int.Parse(json[0].sbid),
- repair_qty = decimal.Parse(json[0].report_dvalue),
- ng_qty = this_ng_dvalue,
- laborbad_qty = this_laborbad_dvalue,
- materielbad_qty = this_materielbad_dvalue,
- //bad_money = decimal.Parse(json[i].badmoney_dvalue),
- updatereportuser = us.usercode,
- updatereportdate = date
- }
- });
- //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曚富琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
- sql = @"update TK_Wrk_Record set start_qty=start_qty+@good_qty, good_qty=good_qty+@good_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
- updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
- where wo_code=@wo_code and step_code=@step_code and id=@id and style='B'";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- good_qty = decimal.Parse(json[0].report_dvalue),
- ng_qty = this_ng_dvalue,
- laborbad_qty = this_laborbad_dvalue,
- materielbad_qty = this_materielbad_dvalue,
- wo_code = json[0].wo_code,
- step_code = json[0].step_code,
- id = int.Parse(json[0].id),
- updatereportuser = us.usercode,
- updatereportdate = date
- }
- });
- //鍥炲啓宸ュ崟宸ュ簭琛�
- sql = @"update TK_Wrk_Step set good_qty=good_qty+@good_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
- where wo_code=@wo_code and step_code=@step_code";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- good_qty = decimal.Parse(json[0].report_dvalue),
- ng_qty = this_ng_dvalue,
- laborbad_qty = this_laborbad_dvalue,
- materielbad_qty = this_materielbad_dvalue,
- wo_code = json[0].wo_code,
- step_code = json[0].step_code
- }
- });
-
- for (int i = 0; i < json[0].children.Count; i++)
- {
- //鍥炲啓涓嶈壇
- sql = @"update CSR_WorkRecord_Defect set defect_qty=defect_qty+@ng_qty,defect_pendqty=defect_pendqty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
- updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
- where wo_code=@wo_code and step_code=@step_code and id=@ng_id and record_id=@record_id and style='B'";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- ng_qty = decimal.Parse(json[0].children[i].ng_dvalue),
- laborbad_qty = decimal.Parse(json[0].children[i].laborbad_dvalue),
- materielbad_qty = decimal.Parse(json[0].children[i].materielbad_dvalue),
- wo_code = json[0].wo_code,
- step_code = json[0].step_code,
- ng_id = int.Parse(json[0].children[i].ng_id),
- record_id = json[0].id,
- updatereportuser = us.usercode,
- updatereportdate = date
- }
- });
- //鍥炲啓涓嶈壇澶勭悊
- sql = @"update CSR_WorkRecord_DefectHandle set laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
- where wo_code=@wo_code and step_code=@step_code and defect_id=@defect_id and style='B'";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- laborbad_qty = decimal.Parse(json[0].children[i].laborbad_dvalue),
- materielbad_qty = decimal.Parse(json[0].children[i].materielbad_dvalue),
- wo_code = json[0].wo_code,
- step_code = json[0].step_code,
- defect_id = int.Parse(json[0].children[i].ng_id),
- updatereportuser = us.usercode,
- updatereportdate = date
- }
- });
- }
- }
- if (json[0].flw_type.ToString() == "W")//澶栧崗宸ュ簭
- {
- //鏌ヨ褰撳墠棣栭亾宸ュ簭闈炴娆′緵搴斿晢鏀舵枡锛氭�绘敹鏂欐暟閲�
- sql = @"select isnull(sum(sqty),0) as sqty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and id<>@id and step_code=@step_code and wx_code<>@wx_code";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@id", json[0].id);
- dynamicParams.Add("@step_code", json[0].step_code);
- dynamicParams.Add("@wx_code", json[0].wxcode);
- var dt_c = DapperHelper.selectdata(sql, dynamicParams);
- //鑾峰彇姝ゆ鎶ュ伐璋冩暣鎻愪氦鐨勬暟鎹�(鏀舵枡鏁伴噺銆佷笉鑹暟閲忋�佸伐搴熸暟閲忋�佹枡搴熸暟閲�)
- decimal this_reportqty = decimal.Parse(json[0].report_qty.ToString()); //鏀舵枡鏁伴噺
- decimal this_ngqty = json[0].children.Sum(item => decimal.Parse(item.ng_qty));//涓嶈壇鏁伴噺姹囨��
- decimal this_laborbadqty = json[0].children.Sum(item => decimal.Parse(item.laborbad_qty));//宸ュ簾鏁伴噺姹囨��
- decimal this_materielbadqty = json[0].children.Sum(item => decimal.Parse(item.materielbad_qty));//鏂欏簾鏁伴噺姹囨��
- decimal this_ng_dvalue = json[0].children.Sum(item => decimal.Parse(item.ng_dvalue));//涓嶈壇鏁伴噺宸�兼眹鎬�
- decimal this_laborbad_dvalue = json[0].children.Sum(item => decimal.Parse(item.laborbad_dvalue));//宸ュ簾鏁伴噺宸�兼眹鎬�
- decimal this_materielbad_dvalue = json[0].children.Sum(item => decimal.Parse(item.materielbad_dvalue));//鏂欏簾鏁伴噺宸�兼眹鎬�
- //鑾峰彇褰撳墠宸ュ簭銆佷緵搴斿晢瀵瑰簲鐨勫彂鏂欐暟閲�
- sql = @"select isnull(sum(fqty),0) as fqty
+ //鑾峰彇褰撳墠宸ュ簭銆佷緵搴斿晢瀵瑰簲鐨勬�诲彂鏂欐暟閲�
+ sql = @"select isnull(sum(fqty),0) as fqty
from TK_Wrk_OutRecord where wo_code=@wo_code and style='F' and id<>@id and step_code=@step_code and wx_code=@wx_code";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@id", json[0].id);
- dynamicParams.Add("@step_code", json[0].step_code);
- dynamicParams.Add("@wx_code", json[0].wxcode);
- var dt_0 = DapperHelper.selectdata(sql, dynamicParams);
- //棣栭亾宸ュ簭鐨勬敹鏂�
- if (json[0].first_choke == "Y")
- {
- //鏌ヨ褰撳墠棣栭亾宸ュ簭闈炴娆℃敹鏂欙細鎬绘敹鏂欐暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
- sql = @"select isnull(sum(sqty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and id<>@id and step_code=@step_code and wx_code=@wx_code";
dynamicParams.Add("@wo_code", json[0].wo_code);
dynamicParams.Add("@id", json[0].id);
dynamicParams.Add("@step_code", json[0].step_code);
dynamicParams.Add("@wx_code", json[0].wxcode);
- var dt = DapperHelper.selectdata(sql, dynamicParams);
- decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟
- decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�讳笉鑹暟
- decimal notthis_laborbadqty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�诲伐搴熸暟
- decimal notthis_materielbadqty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘枡搴熸暟
- //鍒ゆ柇锛氬綋鍓嶅伐搴忔姤宸ヨ褰曪細鏈鏀舵枡鏁伴噺+鏈涓嶈壇鏁伴噺+鏈宸ュ簾鏁伴噺+鏈鏂欏簾鏁伴噺+褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟>鍙戞枡鏁伴噺
- decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbadqty + notthis_materielbadqty;
- if (updatereportsumqty > decimal.Parse(dt_0.Rows[0]["fqty"].ToString()))
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭瀵瑰簲渚涘簲鍟嗘敹鏂欐�绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庡彂鏂欐暟閲忥細銆�" + decimal.Parse(dt_0.Rows[0]["fqty"].ToString()) + "銆�!";
- mes.data = null;
- return mes;
- }
- //鍒ゆ柇鏄惁瀛樺湪涓嬮亾宸ュ簭鍙婂睘鎬�
- if (next.Rows.Count > 0)
- {
- if (next.Rows[0]["flwtype"].ToString() == "Z")
- {
- //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
- sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq+1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氭姤宸ユ�绘暟鏁伴噺+涓嶈壇鎬绘暟鏁伴噺+宸ュ簾鎬绘暟閲�+鏂欏簾鎬绘暟閲�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�+涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�+涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�+涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�
- decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�
- decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�
- decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString()); //涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
- //鍒ゆ柇锛堝綋鍓嶉潪鏈鏀舵枡鏁�+鏈鏀舵枡璋冩暣鏁�+闈炲綋鍓嶄緵搴斿晢鍚屽伐搴忔敹鏂欐�绘暟锛�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟
- if ((notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) < last_updatereportsumqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭鏀舵枡鏁伴噺锛氥��" + (notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) + "銆戜笉鑳藉皬浜庝笅閬撹嚜鍒跺伐搴忔姤宸ユ�绘暟閲忥細銆�" + last_updatereportsumqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- else
- {
- //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�诲彂鏂欐暟閲�
- sql = @"select isnull(sum(fqty),0) as good_qty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='F' and step_seq=@step_seq+1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氬彂鏂欐�绘暟鏁伴噺
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬绘暟閲�
- //鍒ゆ柇锛堝綋鍓嶉潪鏈鏀舵枡鏁�+鏈鎶ュ伐璋冩暣鏀舵枡鏁帮級<涓嬮亾宸ュ簭鍙戞枡鎬绘暟
- if ((notthis_reportqty + this_reportqty) < last_reportqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭鏀舵枡鎬绘暟閲忥細銆�" + (notthis_reportqty + this_reportqty) + "銆戜笉鑳藉皬浜庝笅閬撳鍗忓伐搴忓彂鏂欐�绘暟閲忥細銆�" + last_reportqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- }
+ var dt_0 = DapperHelper.selectdata(sql, dynamicParams);
- }
- //鏈亾宸ュ簭鐨勬姤宸�
- else if (json[0].last_choke == "Y")
- {
- //鏌ヨ褰撳墠鏈亾鎶ュ伐宸ュ簭闈炴娆℃敹鏂欙細鎬绘敹鏂欐暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+ //鏌ヨ褰撳墠宸ュ簭闈炴娆℃敹鏂欙細鎬绘敹鏂欐暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
sql = @"select isnull(sum(sqty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and id<>@id and step_code=@step_code and wx_code=@wx_code";
dynamicParams.Add("@wo_code", json[0].wo_code);
@@ -3214,7 +3352,7 @@
decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
decimal notthis_laborbad_qty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ュ伐搴熸�绘暟
decimal notthis_materielbad_qty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ枡搴熸�绘暟
- //鑾峰彇褰撳墠鏈亾宸ュ簭鏀舵枡鎬绘暟閲忥細鏈淇敼鏀舵枡鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鎶ュ伐鏂欏簾鏁伴噺+褰撳墠鏈亾宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠鏈亾宸ュ簭闈炴湰娆℃枡搴熸�绘暟
+ //鑾峰彇褰撳墠鏈亾宸ュ簭鏀舵枡鎬绘暟閲忥細鏈淇敼鏀舵枡鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鎶ュ伐鏂欏簾鏁伴噺+褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟
decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbad_qty + notthis_materielbad_qty;
//鍒ゆ柇褰撳墠宸ュ簭渚涘簲鍟嗘敹鏂欐�绘暟>褰撳墠宸ュ簭渚涘簲鍟嗗搴斿彂鏂欐暟閲�
if (updatereportsumqty > decimal.Parse(dt_0.Rows[0]["fqty"].ToString()))
@@ -3225,192 +3363,218 @@
mes.data = null;
return mes;
}
-
- }
- else //涓棿宸ュ簭鐨勬姤宸�
- {
-
- //鏌ヨ褰撳墠棣栭亾宸ュ簭渚涘簲鍟嗛潪姝ゆ鏀舵枡锛氭�绘敹鏂欐暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
- sql = @"select isnull(sum(sqty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='S' and id<>@id and step_code=@step_code and wx_code=@wx_code";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@id", json[0].id);
- dynamicParams.Add("@step_code", json[0].step_code);
- dynamicParams.Add("@wx_code", json[0].wxcode);
- var dt = DapperHelper.selectdata(sql, dynamicParams);
- decimal notthis_reportqty = decimal.Parse(dt.Rows[0]["good_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟
- decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�讳笉鑹暟
- decimal notthis_laborbadqty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�诲伐搴熸暟
- decimal notthis_materielbadqty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString()); //褰撳墠宸ュ簭闈炴湰娆℃姤宸ユ�绘枡搴熸暟
- //鍒ゆ柇锛氬綋鍓嶅伐搴忔姤宸ヨ褰曪細鏈鏀舵枡鏁伴噺+鏈涓嶈壇鏁伴噺+鏈宸ュ簾鏁伴噺+鏈鏂欏簾鏁伴噺+褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟>鍙戞枡鏁伴噺
- decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbadqty + notthis_materielbadqty;
- if (updatereportsumqty > decimal.Parse(dt_0.Rows[0]["fqty"].ToString()))
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭瀵瑰簲渚涘簲鍟嗘敹鏂欐�绘暟閲忥細銆�" + updatereportsumqty + "銆戜笉鑳藉ぇ浜庡彂鏂欐暟閲忥細銆�" + decimal.Parse(dt_0.Rows[0]["fqty"].ToString()) + "銆�!";
- mes.data = null;
- return mes;
- }
- //鍒ゆ柇鏄惁瀛樺湪涓嬮亾宸ュ簭鍙婂睘鎬�
- if (next.Rows.Count > 0)
- {
- if (next.Rows[0]["flwtype"].ToString() == "Z")
- {
- //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�绘姤搴熸暟閲�
- sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty
- from TK_Wrk_Record where wo_code=@wo_code and style='B' and step_seq=@step_seq+1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氭姤宸ユ�绘暟鏁伴噺+涓嶈壇鎬绘暟鏁伴噺+宸ュ簾鎬绘暟閲�+鏂欏簾鎬绘暟閲�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�+涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�+涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�+涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鎶ュ伐鎬绘暟閲�
- decimal last_ngqty = decimal.Parse(dt0.Rows[0]["ng_qty"].ToString()); //涓嬮亾宸ュ簭涓嶈壇鎬绘暟閲�
- decimal last_laborbad_qty = decimal.Parse(dt0.Rows[0]["laborbad_qty"].ToString()); //涓嬮亾宸ュ簭宸ュ簾鎬绘暟閲�
- decimal last_materielbad_qty = decimal.Parse(dt0.Rows[0]["materielbad_qty"].ToString()); //涓嬮亾宸ュ簭鏂欏簾鎬绘暟閲�
- decimal last_updatereportsumqty = last_reportqty + last_ngqty + last_laborbad_qty + last_materielbad_qty;
- //鍒ゆ柇锛堝綋鍓嶉潪鏈鏀舵枡鏁�+鏈鏀舵枡璋冩暣鏁�+闈炲綋鍓嶄緵搴斿晢鍚屽伐搴忔敹鏂欐�绘暟锛�<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟
- if ((notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) < last_updatereportsumqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭鏀舵枡鏁伴噺锛氥��" + (notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) + "銆戜笉鑳藉皬浜庝笅閬撹嚜鍒跺伐搴忔姤宸ユ�绘暟閲忥細銆�" + last_updatereportsumqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- else
- {
- //鏌ヨ褰撳墠宸ュ簭涓嬮亾宸ュ簭锛氭�诲彂鏂欐暟閲�
- sql = @"select isnull(sum(fqty),0) as good_qty
- from TK_Wrk_OutRecord where wo_code=@wo_code and style='F' and step_seq=@step_seq+1";
- dynamicParams.Add("@wo_code", json[0].wo_code);
- dynamicParams.Add("@step_seq", json[0].step_seq);
- var dt0 = DapperHelper.selectdata(sql, dynamicParams);
- if (dt0.Rows.Count > 0)
- {
- //鍒ゆ柇褰撳墠宸ュ簭锛氬彂鏂欐�绘暟鏁伴噺
- decimal last_reportqty = decimal.Parse(dt0.Rows[0]["good_qty"].ToString()); //涓嬮亾宸ュ簭鍙戞枡鎬绘暟閲�
- //鍒ゆ柇锛堝綋鍓嶉潪鏈鏀舵枡鏁�+鏈鎶ュ伐璋冩暣鏀舵枡鏁�+闈炲綋鍓嶄緵搴斿晢鍚屽伐搴忔敹鏂欐�绘暟锛�<涓嬮亾宸ュ簭鍙戞枡鎬绘暟
- if ((notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) < last_reportqty)
- {
- mes.code = "300";
- mes.count = 0;
- mes.message = "褰撳墠棣栭亾宸ュ簭鏀舵枡鎬绘暟閲忥細銆�" + (notthis_reportqty + this_reportqty + decimal.Parse(dt_c.Rows[0]["sqty"].ToString())) + "銆戜笉鑳藉皬浜庝笅閬撳鍗忓伐搴忓彂鏂欐�绘暟閲忥細銆�" + last_reportqty + "銆�!";
- mes.data = null;
- return mes;
- }
- }
- }
- }
- }
-
- ///////////////////////////////淇敼鎶ュ伐//////////////////////////////
-
- //鍥炲啓瀵瑰簲鐨勫鍗忚褰曞瓙琛ㄦ敹鏂欐暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
- sql = @"update TK_Wrk_OutRecordSub set sqty=sqty+@repair_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
- updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
- where m_id=@m_id and id=@id and style='S' and wx_code=@wx_code";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- m_id = int.Parse(json[0].id),
- id = int.Parse(json[0].sbid),
- repair_qty = decimal.Parse(json[0].report_dvalue),
- ng_qty = this_ng_dvalue,
- laborbad_qty = this_laborbad_dvalue,
- materielbad_qty = this_materielbad_dvalue,
- wx_code = json[0].wxcode,
- //bad_money = decimal.Parse(json[i].badmoney_dvalue),
- updatereportuser = us.usercode,
- updatereportdate = date
- }
- });
- //鍥炲啓瀵瑰簲鐨勬敹鏂欒褰曚富琛ㄦ敹鏂欐暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
- sql = @"update TK_Wrk_OutRecord set sqty=sqty+@good_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
- updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
- where wo_code=@wo_code and step_code=@step_code and id=@id and style='S' and wx_code=@wx_code";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- good_qty = decimal.Parse(json[0].report_dvalue),
- ng_qty = this_ng_dvalue,
- laborbad_qty = this_laborbad_dvalue,
- materielbad_qty = this_materielbad_dvalue,
- wx_code = json[0].wxcode,
- wo_code = json[0].wo_code,
- step_code = json[0].step_code,
- id = int.Parse(json[0].id),
- updatereportuser = us.usercode,
- updatereportdate = date
- }
- });
- //鍥炲啓宸ュ崟宸ュ簭琛�
- sql = @"update TK_Wrk_Step set good_qty=good_qty+@good_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
- where wo_code=@wo_code and step_code=@step_code";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- good_qty = decimal.Parse(json[0].report_dvalue),
- ng_qty = this_ng_dvalue,
- laborbad_qty = this_laborbad_dvalue,
- materielbad_qty = this_materielbad_dvalue,
- wo_code = json[0].wo_code,
- step_code = json[0].step_code
- }
- });
-
- for (int i = 0; i < json[0].children.Count; i++)
- {
- //鍥炲啓涓嶈壇
- sql = @"update CSR_WorkRecord_Defect set defect_qty=defect_qty+@ng_qty,defect_pendqty=defect_pendqty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
- updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
- where wo_code=@wo_code and step_code=@step_code and id=@ng_id and record_id=@record_id and style='S'";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- ng_qty = decimal.Parse(json[0].children[i].ng_dvalue),
- laborbad_qty = decimal.Parse(json[0].children[i].laborbad_dvalue),
- materielbad_qty = decimal.Parse(json[0].children[i].materielbad_dvalue),
- wo_code = json[0].wo_code,
- step_code = json[0].step_code,
- ng_id = int.Parse(json[0].children[i].ng_id),
- record_id = json[0].id,
- updatereportuser = us.usercode,
- updatereportdate = date
- }
- });
- //鍥炲啓涓嶈壇澶勭悊
- sql = @"update CSR_WorkRecord_DefectHandle set laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
- where wo_code=@wo_code and step_code=@step_code and defect_id=@defect_id and style='S'";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- laborbad_qty = decimal.Parse(json[0].children[i].laborbad_dvalue),
- materielbad_qty = decimal.Parse(json[0].children[i].materielbad_dvalue),
- wo_code = json[0].wo_code,
- step_code = json[0].step_code,
- defect_id = int.Parse(json[0].children[i].ng_id),
- updatereportuser = us.usercode,
- updatereportdate = date
- }
- });
}
}
+ switch (json[0].flw_type.ToString())
+ {
+ case "Z":
+ ///////////////////////////////淇敼鎶ュ伐//////////////////////////////
+
+ //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曞瓙琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+ sql = @"update TK_Wrk_RecordSub set report_qty=report_qty+@repair_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
+ updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
+ where m_id=@m_id and id=@id and style='B'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ m_id = int.Parse(json[0].id),
+ id = int.Parse(json[0].sbid),
+ repair_qty = decimal.Parse(json[0].report_dvalue),
+ ng_qty = this_ng_dvalue,
+ laborbad_qty = this_laborbad_dvalue,
+ materielbad_qty = this_materielbad_dvalue,
+ //bad_money = decimal.Parse(json[i].badmoney_dvalue),
+ updatereportuser = us.usercode,
+ updatereportdate = date
+ }
+ });
+ //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曚富琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+ sql = @"update TK_Wrk_Record set start_qty=start_qty+@good_qty, good_qty=good_qty+@good_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
+ updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
+ where wo_code=@wo_code and step_code=@step_code and id=@id and style='B'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ good_qty = decimal.Parse(json[0].report_dvalue),
+ ng_qty = this_ng_dvalue,
+ laborbad_qty = this_laborbad_dvalue,
+ materielbad_qty = this_materielbad_dvalue,
+ wo_code = json[0].wo_code,
+ step_code = json[0].step_code,
+ id = int.Parse(json[0].id),
+ updatereportuser = us.usercode,
+ updatereportdate = date
+ }
+ });
+ //鍥炲啓宸ュ崟宸ュ簭琛�
+ sql = @"update TK_Wrk_Step set good_qty=good_qty+@good_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where wo_code=@wo_code and step_code=@step_code";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ good_qty = decimal.Parse(json[0].report_dvalue),
+ ng_qty = this_ng_dvalue,
+ laborbad_qty = this_laborbad_dvalue,
+ materielbad_qty = this_materielbad_dvalue,
+ wo_code = json[0].wo_code,
+ step_code = json[0].step_code
+ }
+ });
+
+ for (int i = 0; i < json[0].children.Count; i++)
+ {
+ //鍥炲啓涓嶈壇
+ sql = @"update CSR_WorkRecord_Defect set defect_qty=defect_qty+@ng_qty,defect_pendqty=defect_pendqty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
+ updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
+ where wo_code=@wo_code and step_code=@step_code and id=@ng_id and record_id=@record_id and style='B'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ ng_qty = decimal.Parse(json[0].children[i].ng_dvalue),
+ laborbad_qty = decimal.Parse(json[0].children[i].laborbad_dvalue),
+ materielbad_qty = decimal.Parse(json[0].children[i].materielbad_dvalue),
+ wo_code = json[0].wo_code,
+ step_code = json[0].step_code,
+ ng_id = int.Parse(json[0].children[i].ng_id),
+ record_id = json[0].id,
+ updatereportuser = us.usercode,
+ updatereportdate = date
+ }
+ });
+ //鍥炲啓涓嶈壇澶勭悊
+ sql = @"update CSR_WorkRecord_DefectHandle set laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where wo_code=@wo_code and step_code=@step_code and defect_id=@defect_id and style='B'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ laborbad_qty = decimal.Parse(json[0].children[i].laborbad_dvalue),
+ materielbad_qty = decimal.Parse(json[0].children[i].materielbad_dvalue),
+ wo_code = json[0].wo_code,
+ step_code = json[0].step_code,
+ defect_id = int.Parse(json[0].children[i].ng_id),
+ updatereportuser = us.usercode,
+ updatereportdate = date
+ }
+ });
+ }
+ break;
+ case "W":
+ ///////////////////////////////淇敼鎶ュ伐//////////////////////////////
+
+ //鍥炲啓瀵瑰簲鐨勫鍗忚褰曞瓙琛ㄦ敹鏂欐暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+ sql = @"update TK_Wrk_OutRecordSub set sqty=sqty+@repair_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
+ updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
+ where m_id=@m_id and id=@id and style='S' and wx_code=@wx_code";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ m_id = int.Parse(json[0].id),
+ id = int.Parse(json[0].sbid),
+ repair_qty = decimal.Parse(json[0].report_dvalue),
+ ng_qty = this_ng_dvalue,
+ laborbad_qty = this_laborbad_dvalue,
+ materielbad_qty = this_materielbad_dvalue,
+ wx_code = json[0].wxcode,
+ //bad_money = decimal.Parse(json[i].badmoney_dvalue),
+ updatereportuser = us.usercode,
+ updatereportdate = date
+ }
+ });
+ //鍥炲啓瀵瑰簲鐨勬敹鏂欒褰曚富琛ㄦ敹鏂欐暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+ sql = @"update TK_Wrk_OutRecord set sqty=sqty+@good_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
+ updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
+ where wo_code=@wo_code and step_code=@step_code and id=@id and style='S' and wx_code=@wx_code";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ good_qty = decimal.Parse(json[0].report_dvalue),
+ ng_qty = this_ng_dvalue,
+ laborbad_qty = this_laborbad_dvalue,
+ materielbad_qty = this_materielbad_dvalue,
+ wx_code = json[0].wxcode,
+ wo_code = json[0].wo_code,
+ step_code = json[0].step_code,
+ id = int.Parse(json[0].id),
+ updatereportuser = us.usercode,
+ updatereportdate = date
+ }
+ });
+ //鍥炲啓宸ュ崟宸ュ簭琛�
+ sql = @"update TK_Wrk_Step set good_qty=good_qty+@good_qty,ng_qty=ng_qty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where wo_code=@wo_code and step_code=@step_code";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ good_qty = decimal.Parse(json[0].report_dvalue),
+ ng_qty = this_ng_dvalue,
+ laborbad_qty = this_laborbad_dvalue,
+ materielbad_qty = this_materielbad_dvalue,
+ wo_code = json[0].wo_code,
+ step_code = json[0].step_code
+ }
+ });
+
+ for (int i = 0; i < json[0].children.Count; i++)
+ {
+ //鍥炲啓涓嶈壇
+ sql = @"update CSR_WorkRecord_Defect set defect_qty=defect_qty+@ng_qty,defect_pendqty=defect_pendqty+@ng_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty,
+ updatereportuser=@updatereportuser,updatereportdate=@updatereportdate
+ where wo_code=@wo_code and step_code=@step_code and id=@ng_id and record_id=@record_id and style='S'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ ng_qty = decimal.Parse(json[0].children[i].ng_dvalue),
+ laborbad_qty = decimal.Parse(json[0].children[i].laborbad_dvalue),
+ materielbad_qty = decimal.Parse(json[0].children[i].materielbad_dvalue),
+ wo_code = json[0].wo_code,
+ step_code = json[0].step_code,
+ ng_id = int.Parse(json[0].children[i].ng_id),
+ record_id = json[0].id,
+ updatereportuser = us.usercode,
+ updatereportdate = date
+ }
+ });
+ //鍥炲啓涓嶈壇澶勭悊
+ sql = @"update CSR_WorkRecord_DefectHandle set laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+ where wo_code=@wo_code and step_code=@step_code and defect_id=@defect_id and style='S'";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ laborbad_qty = decimal.Parse(json[0].children[i].laborbad_dvalue),
+ materielbad_qty = decimal.Parse(json[0].children[i].materielbad_dvalue),
+ wo_code = json[0].wo_code,
+ step_code = json[0].step_code,
+ defect_id = int.Parse(json[0].children[i].ng_id),
+ updatereportuser = us.usercode,
+ updatereportdate = date
+ }
+ });
+ }
+ break;
+ default:
+ break;
+ }
bool aa = DapperHelper.DoTransaction(list);
if (aa)
{
diff --git a/VueWebCoreApi/Models/WorkData/WorkList.cs b/VueWebCoreApi/Models/WorkData/WorkList.cs
index 6850bda..8e0aefe 100644
--- a/VueWebCoreApi/Models/WorkData/WorkList.cs
+++ b/VueWebCoreApi/Models/WorkData/WorkList.cs
@@ -32,6 +32,10 @@
/// </summary>
public string partcode { get; set; }
/// <summary>
+ /// 宸ヨ壓璺嚎缂栫爜
+ /// </summary>
+ public string routecode { get; set; }
+ /// <summary>
/// 宸ュ崟鏁伴噺
/// </summary>
public string woqty { get; set; }
@@ -56,6 +60,10 @@
/// </summary>
public string data_sources { get; set; }
/// <summary>
+ /// 淇敼鏁伴噺宸��
+ /// </summary>
+ public string difference { get; set; }
+ /// <summary>
/// 鏄惁鍏宠仈宸ュ簭
/// </summary>
public string isstep { get; set; }
diff --git a/VueWebCoreApi/Startup.cs b/VueWebCoreApi/Startup.cs
index eb7aa03..00f51e1 100644
--- a/VueWebCoreApi/Startup.cs
+++ b/VueWebCoreApi/Startup.cs
@@ -80,6 +80,7 @@
string basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
string xmlPath = Path.Combine(basePath, "VueWebCoreApi.xml");
c.IncludeXmlComments(xmlPath, true);
+
});
#endregion
diff --git a/VueWebCoreApi/Tools/ScanStartReport.cs b/VueWebCoreApi/Tools/ScanStartReport.cs
index 779e32b..8cdd831 100644
--- a/VueWebCoreApi/Tools/ScanStartReport.cs
+++ b/VueWebCoreApi/Tools/ScanStartReport.cs
@@ -13,7 +13,7 @@
public static ToMessage mes = new ToMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
- #region[鐢熶骇寮�鎶ュ伐:鑷埗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇锛氬伐鍗�+宸ュ簭鏉$爜]
+ #region[鐢熶骇寮�鎶ュ伐:鑷埗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇锛氬伐鍗�+宸ュ簭鏉$爜,鎸夊簭鐢熶骇]
/// <summary>
/// 鎵爜淇℃伅涓哄伐鍗�+宸ュ簭鏉$爜
/// </summary>
@@ -67,7 +67,7 @@
rt.stepcode = data.Rows[0]["STEPCODE"].ToString(); //宸ュ簭缂栫爜
rt.stepname = data.Rows[0]["STEPNAME"].ToString(); //宸ュ簭鍚嶇О
rt.stepdesc = data.Rows[0]["DESCR"].ToString(); //宸ュ簭鎻忚堪
- rt.stepprice= data.Rows[0]["STEPPRICE"].ToString(); //宸ュ簭宸ヤ环
+ rt.stepprice = data.Rows[0]["STEPPRICE"].ToString(); //宸ュ簭宸ヤ环
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
@@ -133,7 +133,7 @@
{
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - good_qty - ng_qty - laborbad_qty - materielbad_qty; //鏈姤鏁伴噺=浠诲姟鏁伴噺-宸叉姤鏁伴噺-涓嶈壇鏁伴噺-宸ュ簾鏁伴噺-鏂欏簾鏁伴噺
- rt.reportqty = good_qty + ng_qty + laborbad_qty+ materielbad_qty; //宸叉姤鏁伴噺=鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+宸ュ簾鏁伴噺+鏂欏簾鏁伴噺
+ rt.reportqty = good_qty + ng_qty + laborbad_qty + materielbad_qty; //宸叉姤鏁伴噺=鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+宸ュ簾鏁伴噺+鏂欏簾鏁伴噺
mes.code = "200";
mes.count = 1;
mes.message = "鏌ユ壘鎴愬姛!";
@@ -185,7 +185,7 @@
decimal laborbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //鏈亾鎬诲伐搴熸暟閲�
decimal materielbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏈亾鎬绘枡搴熸暟閲�
//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾宸ュ簾鎬绘暟-鏈亾鏂欏簾鎬绘暟
- decimal sybqty = sgood_qty - good_qty - ng_qty - laborbad_qty- materielbad_qty;
+ decimal sybqty = sgood_qty - good_qty - ng_qty - laborbad_qty - materielbad_qty;
if (sybqty <= 0)
{
mes.code = "300";
@@ -206,7 +206,7 @@
}
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.reportqty = good_qty + ng_qty + laborbad_qty+ materielbad_qty;//宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾宸ュ簾鎬绘暟+鏈亾鏂欏簾鎬绘暟
+ rt.reportqty = good_qty + ng_qty + laborbad_qty + materielbad_qty;//宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾宸ュ簾鎬绘暟+鏈亾鏂欏簾鎬绘暟
mes.code = "200";
mes.count = 1;
mes.message = "寮圭獥鎶ュ伐鐣岄潰!";
@@ -237,7 +237,7 @@
decimal laborbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //鏈亾鎬诲伐搴熸暟閲�
decimal materielbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏈亾鎬绘枡搴熸暟閲�
//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾鎬诲伐搴熸暟閲�-鏈亾鎬绘枡搴熸暟閲�
- decimal sybqty = sqty - good_qty - ng_qty - laborbad_qty- materielbad_qty;
+ decimal sybqty = sqty - good_qty - ng_qty - laborbad_qty - materielbad_qty;
if (sybqty <= 0)
{
mes.code = "300";
@@ -258,7 +258,7 @@
}
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = sybqty; //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
- rt.reportqty = good_qty + ng_qty + laborbad_qty+materielbad_qty; //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎬诲伐搴熸暟+鏈亾鎬绘枡搴熸暟
+ rt.reportqty = good_qty + ng_qty + laborbad_qty + materielbad_qty; //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎬诲伐搴熸暟+鏈亾鎬绘枡搴熸暟
mes.code = "200";
mes.count = 1;
mes.message = "鏌ユ壘鎴愬姛!";
@@ -385,7 +385,7 @@
}
#endregion
- #region[鐢熶骇寮�鎶ュ伐:澶栧崗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇:宸ュ崟鍙�+宸ュ簭]
+ #region[鐢熶骇寮�鎶ュ伐:澶栧崗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇:宸ュ崟鍙�+宸ュ簭,鎸夊簭鏀跺彂鏂橾
/// <summary>
/// 鐢熶骇寮�鎶ュ伐:澶栧崗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇:宸ュ崟鍙�+宸ュ簭
/// </summary>
@@ -502,7 +502,7 @@
decimal ng_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
decimal laborbad_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //宸ュ簾鏁伴噺
decimal materielbad_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏂欏簾鏁伴噺
- decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty - laborbad_qty-materielbad_qty; //鍓╀綑鍙彂鏁伴噺
+ decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty - laborbad_qty - materielbad_qty; //鍓╀綑鍙彂鏁伴噺
if (kfqty <= 0)
{
mes.code = "300";
@@ -570,7 +570,7 @@
decimal laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //鏈亾宸ュ簾鏁伴噺
decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏈亾鏂欏簾鏁伴噺
//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
- decimal sybqty = sgood_qty - sqty - ng_qty - laborbad_qty- materielbad_qty;
+ decimal sybqty = sgood_qty - sqty - ng_qty - laborbad_qty - materielbad_qty;
if (sybqty <= 0)
{
mes.code = "300";
@@ -591,7 +591,7 @@
}
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = sybqty; //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
- rt.reportqty = sqty + ng_qty + laborbad_qty+ materielbad_qty; //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾宸ュ簾鏁伴噺+鏈亾鏂欏簾鏁伴噺
+ rt.reportqty = sqty + ng_qty + laborbad_qty + materielbad_qty; //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾宸ュ簾鏁伴噺+鏈亾鏂欏簾鏁伴噺
rt.startqty = sybqty; //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺
mes.code = "200";
@@ -624,7 +624,7 @@
decimal laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //鏈亾宸ュ簾鏁伴噺
decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏈亾鏂欏簾鏁伴噺
//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
- decimal sybqty = ssqty - sqty - ng_qty - laborbad_qty-materielbad_qty;
+ decimal sybqty = ssqty - sqty - ng_qty - laborbad_qty - materielbad_qty;
if (sybqty <= 0)
{
mes.code = "300";
@@ -645,7 +645,7 @@
}
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = sybqty; //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
- rt.reportqty = sqty + ng_qty + laborbad_qty+materielbad_qty; //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾宸ュ簾鏁伴噺+鏈亾鏂欏簾鏁伴噺
+ rt.reportqty = sqty + ng_qty + laborbad_qty + materielbad_qty; //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾宸ュ簾鏁伴噺+鏈亾鏂欏簾鏁伴噺
rt.startqty = sybqty; //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺
mes.code = "200";
@@ -815,7 +815,7 @@
decimal laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //鏈亾宸ュ簾鏁伴噺
decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏈亾鏂欏簾鏁伴噺
//鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
- decimal ksqty = fqty - sqty - ng_qty - laborbad_qty-materielbad_qty;
+ decimal ksqty = fqty - sqty - ng_qty - laborbad_qty - materielbad_qty;
if (ksqty <= 0)
{
mes.code = "300";
@@ -828,7 +828,7 @@
{
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = ksqty; //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
- rt.reportqty = sqty + ng_qty + laborbad_qty+materielbad_qty; //宸叉敹鏁伴噺
+ rt.reportqty = sqty + ng_qty + laborbad_qty + materielbad_qty; //宸叉敹鏁伴噺
rt.startqty = ksqty; //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
data0.Merge(data1);//灏嗘寚瀹氱殑dt鍚堝苟
@@ -938,7 +938,7 @@
decimal laborbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //鏈亾宸ュ簾鏁伴噺
decimal materielbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏈亾鏂欏簾鏁伴噺
//鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
- decimal ksqty = fqty - sqty - ng_qty - laborbad_qty- materielbad_qty;
+ decimal ksqty = fqty - sqty - ng_qty - laborbad_qty - materielbad_qty;
if (ksqty <= 0)
{
mes.code = "300";
@@ -951,7 +951,7 @@
{
rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
rt.noreportqty = ksqty; //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
- rt.reportqty = sqty + ng_qty + laborbad_qty+materielbad_qty; //宸叉敹鏁伴噺
+ rt.reportqty = sqty + ng_qty + laborbad_qty + materielbad_qty; //宸叉敹鏁伴噺
rt.startqty = ksqty; //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
data1.Merge(data2);//灏嗘寚瀹氱殑dt鍚堝苟
@@ -1046,5 +1046,456 @@
return mes;
}
#endregion
+
+
+ #region[鐢熶骇寮�鎶ュ伐:鑷埗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇锛氬伐鍗�+宸ュ簭鏉$爜,涓嶆寜搴忕敓浜
+ /// <summary>
+ /// 鎵爜淇℃伅涓哄伐鍗�+宸ュ簭鏉$爜
+ /// </summary>
+ /// <param name="ordercode">宸ュ崟缂栧彿</param>
+ /// <param name="stepcode">宸ュ簭缂栫爜</param>
+ /// <returns></returns>
+ public static ToMessage NoZZEncodingSeach(string ordercode, string stepcode)
+ {
+ var sql = "";
+ string flwtype = ""; //宸ュ簭灞炴��
+ string isbott = ""; //棣栭亾宸ュ簭
+ string isend = ""; //鏈亾宸ュ簭
+ List<object> list = new List<object>();
+ ScanStartReportData rt = new ScanStartReportData();
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ //鍒ゆ柇褰撳墠宸ュ崟鏄惁鍏抽棴
+ sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and status='CLOSED'";
+ dynamicParams.Add("@ordercode", ordercode);
+ var da0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (da0.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.stepprice,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.torg_code,L.torg_name
+ 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
+ left join TOrganization L on M.wkshp_code=L.torg_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]["torg_code"].ToString(); //杞﹂棿缂栫爜
+ rt.wkshopname = data.Rows[0]["torg_name"].ToString(); //杞﹂棿鍚嶇О
+ 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.stepprice = data.Rows[0]["STEPPRICE"].ToString(); //宸ュ簭宸ヤ环
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+
+ flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
+ isbott = data.Rows[0]["ISBOTT"].ToString();//棣栭亾宸ュ簭
+ isend = data.Rows[0]["ISEND"].ToString();//鏈亾宸ュ簭
+ rt.seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
+
+ //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
+ sql = @"select A.isbott,A.isend,T.stepcode,T.stepname,A.stepprice 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", ordercode);
+ dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt.Rows.Count > 0) //鏈変笅閬撳伐搴�
+ {
+ rt.nextstepcode = dt.Rows[0]["STEPCODE"].ToString();//涓嬮亾宸ュ簭缂栫爜
+ rt.nextstepname = dt.Rows[0]["STEPNAME"].ToString();//涓嬮亾宸ュ簭鍚嶇О
+ rt.nextstepprice = dt.Rows[0]["STEPPRICE"].ToString(); //涓嬮亾宸ュ簭宸ヤ环
+ }
+ if (isend == "Y") //褰撳墠宸ュ簭鏄湯閬撳伐搴�
+ {
+ rt.nextstepcode = "";//data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
+ rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+ rt.nextstepprice = "";// data.Rows[0]["STEPPRICE"].ToString();//褰撳墠宸ュ簭宸ヤ环
+ }
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠宸ュ簭浠诲姟涓嶅瓨鍦�!";
+ mes.data = null;
+ return mes;
+ }
+ switch (flwtype)
+ {
+ case "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", stepcode);
+ var data1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data1.Rows.Count > 0)
+ {
+ 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 laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //宸ュ簾鏁伴噺
+ decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏂欏簾鏁伴噺
+ //鍓╀綑鍙姤宸ユ暟閲�=浠诲姟鏁伴噺-(鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+宸ュ簾搴熸暟閲�+鏂欏簾鏁伴噺)
+ decimal kbqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - (good_qty + ng_qty + laborbad_qty + materielbad_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.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - good_qty - ng_qty - laborbad_qty - materielbad_qty; //鏈姤鏁伴噺=浠诲姟鏁伴噺-宸叉姤鏁伴噺-涓嶈壇鏁伴噺-宸ュ簾鏁伴噺-鏂欏簾鏁伴噺
+ rt.reportqty = good_qty + ng_qty + laborbad_qty + materielbad_qty; //宸叉姤鏁伴噺=鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+宸ュ簾鏁伴噺+鏂欏簾鏁伴噺
+ mes.code = "200";
+ mes.count = 1;
+ mes.message = "鏌ユ壘鎴愬姛!";
+ mes.data = rt;
+ }
+ }
+ else
+ {
+ rt.planqty = 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;
+ }
+ break;
+ case "W": //澶栧崗宸ュ簭
+ 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;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[鐢熶骇寮�鎶ュ伐:澶栧崗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇:宸ュ崟鍙�+宸ュ簭,鎸夊簭鏀跺彂鏂橾
+ /// <summary>
+ /// 鎵爜淇℃伅涓哄伐鍗�+宸ュ簭鏉$爜
+ /// </summary>
+ /// <param name="ordercode">宸ュ崟缂栧彿</param>
+ /// <param name="stepcode">宸ュ簭缂栫爜</param>
+ /// <returns></returns>
+ public static ToMessage NoWXEncodingSeach(string SelectType, string ordercode, string stepcode)
+ {
+ var sql = "";
+ string flwtype = ""; //宸ュ簭灞炴��
+ string isbott = ""; //棣栭亾宸ュ簭
+ string isend = ""; //鏈亾宸ュ簭
+ List<object> list = new List<object>();
+ ScanStartReportDataOut rt = new ScanStartReportDataOut();
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ //鍒ゆ柇褰撳墠宸ュ崟鏄惁鍏抽棴
+ sql = @"select * from TK_Wrk_Man where wo_code=@ordercode and status='CLOSED'";
+ dynamicParams.Add("@ordercode", ordercode);
+ var da0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (da0.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.stepprice,A.status,A.plan_qty,A.isbott,A.isend,L.torg_code,L.torg_name
+ 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
+ left join TOrganization L on M.wkshp_code=L.torg_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]["torg_code"].ToString(); //杞﹂棿缂栫爜
+ rt.wkshopname = data.Rows[0]["torg_name"].ToString(); //杞﹂棿鍚嶇О
+ 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.stepprice = data.Rows[0]["STEPPRICE"].ToString(); //宸ュ簭宸ヤ环
+ flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
+ isbott = data.Rows[0]["ISBOTT"].ToString();//棣栭亾宸ュ簭
+ isend = data.Rows[0]["ISEND"].ToString();//鏈亾宸ュ簭
+ rt.seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
+
+ //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
+ sql = @"select A.isbott,A.isend,T.stepcode,T.stepname,A.stepprice 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", ordercode);
+ dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt.Rows.Count > 0) //鏈変笅閬撳伐搴�
+ {
+ rt.nextstepcode = dt.Rows[0]["STEPCODE"].ToString();//涓嬮亾宸ュ簭缂栫爜
+ rt.nextstepname = dt.Rows[0]["STEPNAME"].ToString();//涓嬮亾宸ュ簭鍚嶇О
+ rt.nextstepprice = dt.Rows[0]["STEPPRICE"].ToString(); //涓嬮亾宸ュ簭宸ヤ环
+ }
+ if (isend == "Y") //褰撳墠宸ュ簭鏄湯閬撳伐搴�
+ {
+ rt.nextstepcode = "";// data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
+ rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+ rt.nextstepprice = ""; //data.Rows[0]["NEXTSTEPPRICE"].ToString();//涓嬮亾宸ュ簭宸ヤ环
+ }
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠鎵爜宸ュ簭浠诲姟涓嶅瓨鍦�!";
+ mes.data = null;
+ return mes;
+ }
+ switch (SelectType)
+ {
+ case "OUT": //鍙戞枡
+ switch (flwtype)
+ {
+ case "Z":
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠鏍囩涓鸿嚜鍒舵爣绛�,璇峰墠寰�鑷埗鎿嶄綔鏍囩椤垫壂鐮�!";
+ mes.data = null;
+ break;
+ case "W":
+ //1.鍒ゆ柇鏄惁鏈夊彂鏂欒褰�
+ 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 laborbad_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //宸ュ簾鏁伴噺
+ decimal materielbad_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏂欏簾鏁伴噺
+ decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty - laborbad_qty - materielbad_qty; //鍓╀綑鍙彂鏁伴噺
+ if (kfqty <= 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.noreportqty = kfqty; //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
+ rt.reportqty = fqty; //宸插彂鏁伴噺= 鍙戞枡鏁伴噺
+ rt.startqty = kfqty; //鍙戞枡鏁伴噺=鍓╀綑鍙彂鏁伴噺
+ mes.code = "200";
+ mes.count = 2;
+ mes.message = "鏌ヨ鎴愬姛!";
+ mes.data = rt;
+ }
+ }
+ else
+ {
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //鏈彂鏁伴噺=浠诲姟鏁伴噺
+ rt.reportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //宸插彂鏁伴噺=浠诲姟鏁伴噺
+ rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //鍙戞枡鏁伴噺=浠诲姟鏁伴噺
+ mes.code = "200";
+ mes.count = 2;
+ mes.message = "寮圭獥鍙戞枡鐣岄潰!";
+ mes.data = rt;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ case "IN": //鏀舵枡
+ switch (flwtype)
+ {
+ case "Z"://鑷埗
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠鏍囩涓鸿嚜鍒舵爣绛�,璇峰墠寰�鑷埗鎿嶄綔鏍囩椤垫壂鐮�!";
+ mes.data = null;
+ break;
+ case "W":
+
+ //1.鍒ゆ柇鏄惁鏈夊彂鏂欒褰�
+ 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.laborbad_qty),0) as laborbad_qty,isnull(sum(R.materielbad_qty),0) as materielbad_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 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.laborbad_qty),0) as laborbad_qty,isnull(sum(R.materielbad_qty),0) as materielbad_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 data1 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data1.Rows.Count > 0) //鏈夋敹鏂欒褰�
+ {
+ 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 laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum(); //鏈亾宸ュ簾鏁伴噺
+ decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum(); //鏈亾鏂欏簾鏁伴噺
+ //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
+ decimal ksqty = fqty - sqty - ng_qty - laborbad_qty - materielbad_qty;
+ if (ksqty <= 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏃犲彲鏀舵枡鏁伴噺!";
+ mes.data = null;
+ return mes;
+ }
+ else
+ {
+ rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+ rt.noreportqty = ksqty; //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
+ rt.reportqty = sqty + ng_qty + laborbad_qty + materielbad_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"]),
+ laborbad_qty = g.Sum(i => (decimal)i["laborbad_qty"]),
+ materielbad_qty = g.Sum(i => (decimal)i["materielbad_qty"])
+ }).ToList();
+
+ mes.code = "200";
+ mes.count = 3;
+ mes.message = "寮圭獥鏀舵枡鐣岄潰!";
+ mes.data = rt;
+ }
+
+ }
+ 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; //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
+ //
+ 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"]),
+ laborbad_qty = g.Sum(i => (decimal)i["laborbad_qty"]),
+ materielbad_qty = g.Sum(i => (decimal)i["materielbad_qty"])
+ }).ToList();
+
+ mes.code = "200";
+ mes.count = 3;
+ mes.message = "寮圭獥鏀舵枡鐣岄潰!";
+ mes.data = rt;
+ }
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏈彂鏂�,璇峰厛鍙戞枡!";
+ mes.data = null;
+ return mes;
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.message = e.Message;
+ mes.data = null;
+ return mes;
+ }
+ return mes;
+ }
+ #endregion
}
}
\ No newline at end of file
diff --git a/VueWebCoreApi/Tools/TOrganizationRecursion.cs b/VueWebCoreApi/Tools/TOrganizationRecursion.cs
index b805175..cd504a7 100644
--- a/VueWebCoreApi/Tools/TOrganizationRecursion.cs
+++ b/VueWebCoreApi/Tools/TOrganizationRecursion.cs
@@ -35,7 +35,7 @@
FOR XML PATH('')), 1, 1, '') AS torg_codelist";
dynamicParams.Add("@torg_code", torg_code);
var data = DapperHelper.selectdata(sql, dynamicParams);
- if (data.Rows.Count > 0&&data.Rows[0]["torg_codelist"].ToString()!=null)
+ if (data.Rows.Count > 0&&data.Rows[0]["torg_codelist"].ToString()!=null&& data.Rows[0]["torg_codelist"].ToString()!="")
{
mes.code = "200";
mes.count = 0;
@@ -46,7 +46,7 @@
{
mes.code = "300";
mes.count = 0;
- mes.message = "褰撳墠鐢ㄦ埛鎵�灞炵粍缁囩紪鐮併��" + torg_code + "銆戜笉瀛樺湪!";
+ mes.message = "褰撳墠鐢ㄦ埛鎵�灞炵粍缁囩紪鐮併��" + torg_code + "銆戜笉瀛樺湪鎴栦负绌�!";
mes.data = null;
}
}
diff --git a/VueWebCoreApi/VueWebCoreApi.csproj b/VueWebCoreApi/VueWebCoreApi.csproj
index d023691..ffa8872 100644
--- a/VueWebCoreApi/VueWebCoreApi.csproj
+++ b/VueWebCoreApi/VueWebCoreApi.csproj
@@ -55,6 +55,8 @@
<Folder Include="wwwroot\DeviceRecordImage\image2\" />
<Folder Include="wwwroot\newxls\" />
<Folder Include="wwwroot\MouldRecordImage\" />
+ <Folder Include="wwwroot\DeviceSopFile\" />
+ <Folder Include="wwwroot\ProcessSopFile\" />
</ItemGroup>
<ItemGroup>
--
Gitblit v1.9.3