From 925394b1b7f61a2c2a15fdaa0ecd0763214ccda1 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 30 五月 2023 18:01:29 +0800
Subject: [PATCH] 增加App报工、工序检验功能
---
VueWebApi/Controllers/ProductionManagementController.cs | 309 +++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 272 insertions(+), 37 deletions(-)
diff --git a/VueWebApi/Controllers/ProductionManagementController.cs b/VueWebApi/Controllers/ProductionManagementController.cs
index 85e20b7..19b4f61 100644
--- a/VueWebApi/Controllers/ProductionManagementController.cs
+++ b/VueWebApi/Controllers/ProductionManagementController.cs
@@ -8,6 +8,7 @@
using System.Net.Http;
using System.Web;
using System.Web.Http;
+using System.Web.Script.Serialization;
using VueWebApi.DLL.BLL;
using VueWebApi.Models;
using VueWebApi.Tools;
@@ -16,7 +17,7 @@
{
[RoutePrefix(prefix: "api/ProductionManagement")]
[ControllerGroup("鐢熶骇绠$悊", "鍦ㄧ嚎鎺ュ彛")]
- //[ChannelActionFilter]
+ [ChannelActionFilter]
public class ProductionManagementController : ApiController
{
//瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
@@ -132,11 +133,38 @@
/// <returns></returns>
[Route(template: "MesOrderSearch")]
[HttpGet]
- public HttpResponseMessage MesOrderSearch(string mesorderstus = null, string mesordercode = null,string sourceorder=null,string ordertype=null, string partcode = null, string partname = null, string partspec = null, string creatuser = null, string createdate = null, int page = 0, int rows = 0, string prop = null, string order = null)
+ public HttpResponseMessage MesOrderSearch(int page, int rows, string prop, string order,string mesorderstus = null, string mesordercode = null,string sourceorder=null,string ordertype=null, string partcode = null, string partname = null, string partspec = null, string creatuser = null, string createdate = null)
{
int startNum = rows * (page - 1) + 1; //璧峰璁板綍rowNum
int endNum = rows * page; //缁撴潫璁板綍 rowNum
mes = ProductionManagementBLL.MesOrderSearch(mesorderstus, mesordercode, sourceorder, ordertype, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+ #region[MES鎶ュ簾琛ュ崟宸ュ崟鏌ヨ]
+ /// <summary>
+ /// MES鎶ュ簾琛ュ崟宸ュ崟鏌ヨ
+ /// </summary>
+ /// <param name="mesordercode">宸ュ崟缂栧彿</param>
+ /// <param name="sourceorder">婧愬崟鍗曞彿</param>
+ /// <param name="partcode">浜у搧缂栫爜</param>
+ /// <param name="partname">浜у搧鍚嶇О</param>
+ /// <param name="partspec">浜у搧瑙勬牸</param>
+ /// <param name="creatuser">鍒涘缓浜哄憳</param>
+ /// <param name="createdate">鍒涘缓鏃堕棿</param>
+ /// <param name="page">椤电爜</param>
+ /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+ /// <param name="prop">鎺掑簭瀛楁</param>
+ /// <param name="order">鎺掑簭瑙勫垯</param>
+ /// <returns></returns>
+ [Route(template: "MesBadOrderSearch")]
+ [HttpGet]
+ public HttpResponseMessage MesBadOrderSearch(int page, int rows, string prop, string order, string mesordercode = null, string sourceorder = null, string partcode = null, string partname = null, string partspec = null, string creatuser = null, string createdate = null)
+ {
+ int startNum = rows * (page - 1) + 1; //璧峰璁板綍rowNum
+ int endNum = rows * page; //缁撴潫璁板綍 rowNum
+ mes = ProductionManagementBLL.MesBadOrderSearch(mesordercode, sourceorder, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
return TJson.toJson(mes);
}
#endregion
@@ -183,6 +211,37 @@
public HttpResponseMessage SelectRouteStep(string routecode)
{
mes = ProductionManagementBLL.SelectRouteStep(routecode);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+ #region[宸ュ崟娲惧彂閫夋嫨宸ヨ壓璺嚎鎴栭�夋嫨鐢熶骇杞﹂棿鏃跺垽鏂粦瀹氭潯浠禲
+ /// <summary>
+ /// 宸ュ崟娲惧彂閫夋嫨宸ヨ壓璺嚎鎴栭�夋嫨鐢熶骇杞﹂棿鏃跺垽鏂粦瀹氭潯浠�
+ /// </summary>
+ /// <param name="partcode">浜у搧缂栫爜</param>
+ /// <param name="routecode">宸ヨ壓璺嚎缂栫爜</param>
+ /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+ /// <returns></returns>
+ [Route(template: "SelectRouteOrWkshop")]
+ [HttpGet]
+ public HttpResponseMessage SelectRouteOrWkshop(string partcode, string routecode, string wkshopcode)
+ {
+ mes = ProductionManagementBLL.SelectRouteOrWkshop(partcode, routecode, wkshopcode);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+ #region[MES宸ュ崟鏂板銆佽幏鍙栧伐鍗曞彿]
+ /// <summary>
+ /// MES宸ュ崟鏂板銆佽幏鍙栧伐鍗曞彿
+ /// </summary>
+ /// <returns></returns>
+ [Route(template: "AddMesOrderCodeSearch")]
+ [HttpPost]
+ public HttpResponseMessage AddMesOrderCodeSearch()
+ {
+ mes = ProductionManagementBLL.AddMesOrderCodeSearch();
return TJson.toJson(mes);
}
#endregion
@@ -570,40 +629,28 @@
}
#endregion
- #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
+
+ #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
/// <summary>
- /// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+ /// 宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
/// </summary>
- /// <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
+ /// <param name="orderstepqrcode">鎵弿宸ュ簭浜岀淮鐮佷俊鎭�</param>
+ /// <param name="checktype">妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃) EndCheck(瀹屽伐妫�)</param>
/// <returns></returns>
[Route(template: "MesOrderStepCheckSearch")]
[HttpGet]
- public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode)
+ public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
{
- mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode);
+ mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
return TJson.toJson(mes);
}
#endregion
- #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁]
+ #region[宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩甝
/// <summary>
- /// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁
+ /// 鍏ュ巶妫�楠�,宸ュ簭妫�楠屾牴鎹�夋嫨鐨勬楠屾柟妗堟煡鎵炬楠岄」鐩�
/// </summary>
- /// <returns></returns>
- [Route(template: "MesOrderStepCheckSelect")]
- [HttpGet]
- public HttpResponseMessage MesOrderStepCheckSelect()
- {
- mes = ProductionManagementBLL.MesOrderStepCheckSelect();
- return TJson.toJson(mes);
- }
- #endregion
-
- #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛╙
- /// <summary>
- /// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛�
- /// </summary>
- /// <param name="checkstandcode">妫�楠屾爣鍑嗙紪鐮�</param>
+ /// <param name="checkstandcode">妫�楠屾柟妗堢紪鐮�</param>
/// <returns></returns>
[Route(template: "MesOrderStepCheckItemList")]
[HttpGet]
@@ -614,29 +661,29 @@
}
#endregion
- #region[鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛榏
+ #region[宸ュ簭妫�楠�,鎻愪氦]
/// <summary>
- /// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛�
+ /// 宸ュ簭妫�楠�,鎻愪氦
/// </summary>
- /// <param name="obj">鎻愪氦淇℃伅</param>
/// <returns></returns>
[Route(template: "SaveMesOrderStepCheckItem")]
[HttpPost]
public HttpResponseMessage SaveMesOrderStepCheckItem([FromBody] JObject obj)
{
- string mesordercode = obj["mesordercode"].ToString(); //宸ュ崟缂栧彿
+ string wocode = obj["wocode"].ToString(); //宸ュ崟缂栧彿
string partcode = obj["partcode"].ToString(); //浜у搧缂栫爜
string stepcode = obj["stepcode"].ToString(); //宸ュ簭缂栫爜
- string checkstanedcode = obj["checkstanedcode"].ToString(); //妫�楠屾爣鍑嗙紪鐮�
- string checkusercode = obj["checkusercode"].ToString(); //妫�楠屼汉鍛樼紪鐮�
- string checktypecode = obj["checktypecode"].ToString(); //妫�楠岀被鍨嬬紪鐮�
- string checkresult = obj["checkresult"].ToString(); //妫�楠岀粨鏋�
- string checkdescr = obj["checkdescr"].ToString(); //妫�楠屾弿杩�
- string checkqty = obj["checkqty"].ToString(); //妫�楠屾暟閲�
- string data = obj["data"].ToString();
- List<StepCheck> json = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StepCheck>>(data);
+ string checkstandcode = obj["checkstandcode"].ToString(); //璐ㄦ鏂规缂栫爜
+ string check_type = obj["check_type"].ToString(); //妫�楠屾柟寮廎irstCheck锛堥妫�锛� PatroCheck(宸℃) EndCheck(瀹屽伐妫�)
+ string sampmethod = obj["sampmethod"].ToString(); //鎶芥鏂瑰紡锛氬浐瀹氭娊妫�(FIXED) 姣斾緥鎶芥(SCARE)
+ string qualitystatus = obj["qualitystatus"].ToString(); //璐ㄩ噺鐘舵��(鍚堟牸銆佷笉鍚堟牸)
+ string labqty = obj["good_qty"].ToString(); //宸ュ簭浠诲姟鍚堟牸鏁伴噺
+ string sampleqty = obj["sampleqty"].ToString(); //鏍锋湰鏁伴噺
+ string goodqty = obj["goodqty"].ToString(); //鍚堟牸鏁伴噺
+ string ngqty = obj["ngqty"].ToString();//涓嶅悎鏍兼暟閲�
+ string checkitemcont = obj["checkitemcont"].ToString(); //妫�楠岄」鐩暟鎹�
var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
- mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(mesordercode, partcode, stepcode, checkstanedcode, checkusercode, checktypecode, checkresult, checkdescr, checkqty, username,json);
+ mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
return TJson.toJson(mes);
}
#endregion
@@ -705,5 +752,193 @@
}
#endregion
+
+ #region[浜ц兘瑙勫垝鏌ヨ]
+ /// <summary>
+ /// 浜ц兘瑙勫垝鏌ヨ
+ /// </summary>
+ /// <param name="page">椤电爜</param>
+ /// <param name="rows">椤垫暟</param>
+ /// <param name="prop">鎺掑簭瀛楁</param>
+ /// <param name="order">鎺掑簭瑙勫垯</param>
+ /// <param name="workshop">杞﹂棿缂栫爜</param>
+ /// <param name="devicetype">鐢熶骇鍗曞厓</param>
+ /// <param name="stustype">鏈夋晥鐘舵��</param>
+ /// <returns></returns>
+ [Route(template: "CapacityPlanningSearch")]
+ [HttpGet]
+ public HttpResponseMessage CapacityPlanningSearch(int page, int rows, string prop, string order,string workshop = null, string devicetype = null, string stustype = null)
+ {
+ int startNum = rows * (page - 1) + 1; //璧峰璁板綍rowNum
+ int endNum = rows * page; //缁撴潫璁板綍 rowNum
+ mes = ProductionManagementBLL.CapacityPlanningSearch(workshop, devicetype, stustype, startNum, endNum, prop, order);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+ #region[浜ц兘瑙勫垝榛樿鏂规淇濆瓨鎻愪氦]
+ /// <summary>
+ /// 浜ц兘瑙勫垝榛樿鏂规淇濆瓨鎻愪氦
+ /// </summary>
+ /// <param name="captplanid">浜ц兘瑙勫垝(鐢熶骇璧勬簮)id</param>
+ /// <param name="wkshopcode">杞﹂棿缂栫爜</param>
+ /// <param name="capunitcode">鐢熶骇鍗曞厓缂栫爜</param>
+ /// <param name="capsetupcode">榛樿鏂规缂栫爜</param>
+ /// <param name="captplantype">璧勬簮绫诲瀷</param>
+ /// <returns></returns>
+ [Route(template: "CapacityPlanSubmit")]
+ [HttpPost]
+ public HttpResponseMessage CapacityPlanSubmit(string wkshopcode, string capunitcode,string captplanid=null,string capsetupcode=null,string captplantype=null)
+ {
+ string type = ""; //鎻愪氦绫诲瀷
+ if (captplanid == "" || captplanid == null)
+ {
+ type = "Add";
+ }
+ else
+ {
+ type = "Update";
+ }
+ var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+ mes = ProductionManagementBLL.CapacityPlanSubmit(type,captplanid,wkshopcode,capunitcode,capsetupcode, captplantype,username);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+ #region[浜ц兘瑙勫垝鐐瑰嚮鏃ュ巻缁勪欢鏌ユ壘宸插叧鑱旂殑鏃ユ湡鏂规]
+ /// <summary>
+ /// 浜ц兘瑙勫垝鐐瑰嚮鏃ュ巻缁勪欢鏌ユ壘宸插叧鑱旂殑鏃ユ湡鏂规
+ /// </summary>
+ /// <param name="captplanid">浜ц兘瑙勫垝(鐢熶骇璧勬簮)id</param>
+ /// <returns></returns>
+ [Route(template: "CapacityPlanningCalendar")]
+ [HttpGet]
+ public HttpResponseMessage CapacityPlanningCalendar(string captplanid)
+ {
+ mes = ProductionManagementBLL.CapacityPlanningCalendar(captplanid);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+ #region[浜ц兘瑙勫垝鏃ュ巻鍙屽嚮鏃跺甫鍑哄搴旂殑鏂规]
+ /// <summary>
+ /// 浜ц兘瑙勫垝鏃ュ巻鍙屽嚮鏃跺甫鍑哄搴旂殑鏂规
+ /// </summary>
+ /// <param name="captplanid">浜ц兘瑙勫垝(鐢熶骇璧勬簮)id</param>
+ /// <param name="datetime">鍙屽嚮閫変腑鐨勬棩鏈�</param>
+ /// <returns></returns>
+ [Route(template: "CapacityPlanningOnclickSelect")]
+ [HttpGet]
+ public HttpResponseMessage CapacityPlanningOnclickSelect(string captplanid,string datetime)
+ {
+ mes = ProductionManagementBLL.CapacityPlanningOnclickSelect(captplanid, datetime);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+ #region[浜ц兘瑙勫垝宸ヤ綔鏃ュ巻閫夋嫨鎻愪氦]
+ /// <summary>
+ /// 浜ц兘瑙勫垝宸ヤ綔鏃ュ巻閫夋嫨鎻愪氦
+ /// </summary>
+ /// <returns></returns>
+ [Route(template: "CapacityPlanningGivePlanSubmit")]
+ [HttpPost]
+ public HttpResponseMessage CapacityPlanningGivePlanSubmit()
+ {
+ string wkshopcode = HttpContext.Current.Request["wkshopcode"].ToString();//杞﹂棿缂栫爜
+ string capunitcode = HttpContext.Current.Request["capunitcode"].ToString();//鐢熶骇鍗曞厓缂栫爜
+ string captplanid = HttpContext.Current.Request["captplanid"].ToString(); //浜ц兘瑙勫垝(鐢熶骇璧勬簮)鍒楄〃id
+ string capsetupcode = HttpContext.Current.Request["capsetupcode"].ToString(); //榛樿鏂规缂栫爜
+ string captplantype = HttpContext.Current.Request["captplantype"].ToString(); //璧勬簮绫诲瀷
+ string worklist = HttpContext.Current.Request["worklist"].ToString(); //宸ヤ綔鏃ュ巻鏁版嵁闆�
+ JavaScriptSerializer Serializer = new JavaScriptSerializer();
+ List<CapaPlan> objs = Serializer.Deserialize<List<CapaPlan>>(worklist);
+ string type = ""; //鎻愪氦绫诲瀷
+ if (captplanid == "" || captplanid == null)
+ {
+ type = "Add";
+ }
+ else
+ {
+ type = "Update";
+ }
+ var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+ mes = ProductionManagementBLL.CapacityPlanningGivePlanSubmit(captplanid, wkshopcode, capunitcode, capsetupcode, captplantype, objs,type, username);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+
+ #region[鑷姩鎺掔▼宸ュ崟鏌ヨ]
+ /// <summary>
+ /// 鑷姩鎺掔▼宸ュ崟鏌ヨ
+ /// </summary>
+ /// <param name="page">椤电爜</param>
+ /// <param name="rows">姣忛〉鏉℃暟</param>
+ /// <param name="prop">鎺掑簭瀛楁</param>
+ /// <param name="order">鎺掑簭瑙勫垯</param>
+ /// <param name="workshop">杞﹂棿缂栫爜</param>
+ /// <param name="wocode">鐢熶骇宸ュ崟鍙�</param>
+ /// <param name="partcode">鐗╂枡缂栫爜</param>
+ /// <param name="partname">鐗╂枡鍚嶇О</param>
+ /// <returns></returns>
+ [Route(template: "AdvancedSchedulingSearch")]
+ [HttpGet]
+ public HttpResponseMessage AdvancedSchedulingSearch(int page, int rows, string prop, string order, string workshop = null, string wocode = null, string partcode = null,string partname=null)
+ {
+ int startNum = rows * (page - 1) + 1; //璧峰璁板綍rowNum
+ int endNum = rows * page; //缁撴潫璁板綍 rowNum
+ mes = ProductionManagementBLL.AdvancedSchedulingSearch(workshop, wocode, partcode, partname, startNum, endNum, prop, order);
+ return TJson.toJson(mes);
+ }
+ #endregion
+
+ #region[楂樼骇鎺掔▼鐐瑰嚮宸ュ崟浠诲姟甯﹀嚭鐡堕宸ュ簭璁惧銆佸凡鎺掔▼浠诲姟鏁版嵁]
+ /// <summary>
+ /// 楂樼骇鎺掔▼鐐瑰嚮宸ュ崟浠诲姟甯﹀嚭鐡堕宸ュ簭璁惧銆佸凡鎺掔▼浠诲姟鏁版嵁
+ /// </summary>
+ /// <param name="wocode">宸ュ崟缂栧彿</param>
+ /// <param name="wkshpcode">杞﹂棿缂栫爜</param>
+ /// <param name="partcode">鐗╂枡缂栫爜</param>
+ /// <param name="botproccode">鐡堕宸ュ簭缂栫爜(棣栭亾宸ュ簭)</param>
+ /// <param name="startdate">寮�濮嬫棩鏈�</param>
+ /// <param name="enddate">缁撴潫鏃ユ湡</param>
+ /// <returns></returns>
+ [Route(template: "OnclickAdvancedSchedulingDevice")]
+ [HttpGet]
+ public HttpResponseMessage OnclickAdvancedSchedulingDevice(string wocode,string wkshpcode,string partcode,string botproccode,string startdate,string enddate)
+ {
+ List<AdvancedSchedulingDevice> list = new List<AdvancedSchedulingDevice>();
+ List<AdvancedSchedAlready> list1 = new List<AdvancedSchedAlready>();
+ list = ProductionManagementBLL.OnclickAdvancedSchedulingDevice(wocode, wkshpcode, partcode, startdate, enddate, ref mes); //鎺掍骇璁惧淇℃伅
+ DataTable dt = ProductionManagementBLL.AlreadyScheduling(wocode, wkshpcode, partcode, botproccode, startdate, enddate); //璁惧宸叉帓绋嬩俊鎭�
+
+ Dictionary<object, object> dList = new Dictionary<object, object>();
+ dList.Add("rus", mes);
+ dList.Add("rows", list);
+ dList.Add("Cont", dt);
+ return TJson.toJson(dList);
+ }
+ #endregion
+
+ #region[鎺掔▼鏁版嵁鎻愪氦]
+ /// <summary>
+ /// 鎺掔▼鏁版嵁鎻愪氦
+ /// </summary>
+ /// <returns></returns>
+ [Route(template: "SubmitAlreadyScheduling")]
+ [HttpPost]
+ public HttpResponseMessage SubmitAlreadyScheduling()
+ {
+ var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+ string wocode = HttpContext.Current.Request["wocode"].ToString();//宸ュ崟缂栧彿
+ string botprocecode = HttpContext.Current.Request["botprocecode"].ToString(); //鐡堕宸ュ簭缂栫爜
+ string json = HttpContext.Current.Request["json"].ToString(); //鎺掔▼鎻愪氦鏁版嵁
+ JavaScriptSerializer Serializer = new JavaScriptSerializer();
+ List<AlreadyScheduling> objs = Serializer.Deserialize<List<AlreadyScheduling>>(json);
+ mes = ProductionManagementBLL.SubmitAlreadyScheduling(username, wocode, botprocecode, objs);
+ return TJson.toJson(mes);
+ }
+ #endregion
}
}
--
Gitblit v1.9.3