1.报工增加按序和不按序报工操作,工序调整增加按序和不按序报工调整
2.增加SOP管理:设备SOP管理、工艺SOP管理功能
| | |
| | | [Description("Appæºè½åæ")] |
| | | Appæºè½åæ = 21, |
| | | [Description("Appå®ç¯ç®¡ç")] |
| | | Appå®ç¯ç®¡ç = 22 |
| | | Appå®ç¯ç®¡ç = 22, |
| | | [Description("SOP管ç")] |
| | | SOP管ç = 23 |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | #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> |
| | | /// ä»åºåºç¡èµæ |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using 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 |
| | | } |
| | | } |
| | |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | [ApiExplorerSettings(GroupName = "ç³»ç»è®¾ç½®")] |
| | | [ApiController] |
| | | [Route("api/[controller]")] |
| | | //[ChannelActionFilter] |
| | | [ChannelActionFilter] |
| | | public class SystemSettingController : Controller |
| | | { |
| | | //å®ä¹å
¨å±ä¿¡æ¯è¿ååé |
| | |
| | | return Json(mes); |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | } |
| | |
| | | [ApiExplorerSettings(GroupName = "å·¥å管ç")] |
| | | [ApiController] |
| | | [Route("api/[controller]")] |
| | | [ChannelActionFilter] |
| | | //[ChannelActionFilter] |
| | | public class WorkOrderController : Controller |
| | | { |
| | | //å®ä¹å
¨å±ä¿¡æ¯è¿ååé |
| | |
| | | /// 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 |
| | |
| | | [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 |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[设å¤ç±»åç¼ç æ¥æ¾è®¾å¤ä¿¡æ¯] |
| | | public static ToMessage EqpTypecodeSeachEqpPermissions(string eqptypecode) |
| | | { |
| | | return GeneralBasicDataDAL.EqpTypecodeSeachEqpPermissions(eqptypecode); |
| | | } |
| | | #endregion |
| | | |
| | | #region[ä»åºåºç¡èµæ] |
| | | public static ToMessage WareHouse() |
| | | { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using 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 |
| | | } |
| | | } |
| | |
| | | using Newtonsoft.Json.Linq; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | |
| | | #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 |
| | | |
| | |
| | | #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 |
| | | |
| | |
| | | //è·ååæ®ä¿¡æ¯ |
| | | 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) |
| | | { |
| | |
| | | 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 |
| | |
| | | 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); |
| | |
| | | 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) |
| | | { |
| | |
| | | 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 |
| | |
| | | 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 //å·¥åºç |
| | |
| | | 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); |
| | |
| | | } |
| | | #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() |
| | | { |
| | |
| | | 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åå²è½¬string[] |
| | | 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 //å·¥åºç |
| | |
| | | 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åå²è½¬string[] |
| | | 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); |
| | |
| | | //è·åç©ææ°æ® |
| | | 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 |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using 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åå²è½¬string[] |
| | | 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 |
| | | |
| | | } |
| | | } |
| | |
| | | using 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; |
| | |
| | | } |
| | | // --------------æ¥è¯¢æå®æ°æ®-------------- |
| | | 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 |
| | |
| | | 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"; |
| | |
| | | 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 |
| | |
| | | #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, |
| | |
| | | lm_user = us.usercode, |
| | | lm_date = DateTime.Now.ToString(), |
| | | materiel_code = json.partcode, |
| | | route_code = route_code, |
| | | sourceid = json.sourceid == "" ? null : json.sourceid, //æ æºåæ¶èµå¼NULL |
| | | m_po = json.sourcewo, |
| | | saleOrderDeliveryDate = json.deliverydate, |
| | |
| | | //åå
¥å·¥åºä»»å¡è¡¨ |
| | | 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, |
| | |
| | | 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, |
| | |
| | | { |
| | | //ä¿®æ¹å·¥å表 |
| | | 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 |
| | | { |
| | |
| | | wkshp_code = json.wkshopcode, |
| | | plan_qty = json.woqty, |
| | | materiel_code = json.partcode, |
| | | route_code = route_code, |
| | | sourceid = json.sourceid == "" ? null : json.sourceid, //æ æºåæ¶èµå¼NULL |
| | | m_po = json.sourcewo, |
| | | saleOrderDeliveryDate = json.deliverydate, |
| | |
| | | //åå
¥å·¥åå·¥åºè¡¨ |
| | | 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, |
| | |
| | | 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, |
| | |
| | | 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);//æ°çä¸è¾¾æ°é=åå§ä¸è¾¾æ°é+å·®å¼(æ£è´) |
| | | 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); |
| | |
| | | #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 |
| | | { |
| | | 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 |
| | |
| | | order by S.seq"; |
| | | dynamicParams.Add("@wkshopcode", wkshopcode); |
| | | dynamicParams.Add("@partcode", partcode); |
| | | } |
| | | |
| | | var data = DapperHelper.selectdata(sql, dynamicParams); |
| | | mes.code = "200"; |
| | | mes.count = data.Rows.Count; |
| | |
| | | #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": |
| | | if (isOrder) //æåºç产 |
| | | { |
| | | mes = ScanStartReport.ZZEncodingSeach(wocode, stepcode); |
| | | } |
| | | else //䏿åºç产 |
| | | { |
| | | mes = ScanStartReport.NoZZEncodingSeach(wocode, stepcode); |
| | | } |
| | | break; |
| | | case "WX": |
| | | if (isOrder) //æåºæ¶åæ |
| | | { |
| | | mes = ScanStartReport.WXEncodingSeach(SelectType, wocode, stepcode); |
| | | } |
| | | else //ä¸æåºæ¶åæ |
| | | { |
| | | mes = ScanStartReport.NoWXEncodingSeach(SelectType, wocode, stepcode); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | 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(); //è·åç³»ç»æ¶é´ |
| | | if (isOrder) //æåº |
| | | { |
| | | //æ§å¶é»è¾ï¼é¦éå·¥åºè°æ´-> æ¬éå·¥åºå½åè°æ´æ»æ°(åæ ¼+ä¸è¯+æ¥åº)+æ¬éå·¥åºéå½åæ¥å·¥æ»æ°(åæ ¼+ä¸è¯+æ¥åº)>任塿°é ==ä¸è½å¤§äºä»»å¡æ°é |
| | | //æ§å¶é»è¾ï¼é¦éå·¥åºè°æ´-> (æ¬éå·¥åºå½åè°æ´åæ ¼æ°+æ¬éå·¥åºéå½åæ¥å·¥åæ ¼æ»æ°)<ä¸éå·¥åºæ¥å·¥æ»æ°(åæ ¼+ä¸è¯+æ¥åº) ==ä¸è½å°äºä¸éæ¥å·¥æ»æ° |
| | | //æ§å¶é»è¾ï¼æ«éå·¥åºè°æ´-> æ¬éå·¥åºå½åè°æ´æ»æ°(åæ ¼+ä¸è¯+æ¥åº)+æ¬éå·¥åºéå½åæ¥å·¥æ»æ°(åæ ¼+ä¸è¯+æ¥åº)>ä¸éå·¥åºæ¥å·¥åæ ¼æ»æ° ==ä¸è½å¤§äºä¸éå·¥åºæ¥å·¥åæ ¼æ»æ° |
| | | //æ§å¶é»è¾ï¼ä¸é´å·¥åºè°æ´-> æ¬éå·¥åºå½åè°æ´æ»æ°(åæ ¼+ä¸è¯+æ¥åº)+æ¬éå·¥åºéå½åæ¥å·¥æ»æ°(åæ ¼+ä¸è¯+æ¥åº)>ä¸éå·¥åºæ¥å·¥åæ ¼æ»æ° ==ä¸è½å¤§äºä¸éå·¥åºæ¥å·¥åæ ¼æ»æ° |
| | | //æ§å¶é»è¾ï¼ä¸é´å·¥åºè°æ´-> (æ¬éå·¥åºå½åè°æ´åæ ¼æ°+æ¬éå·¥åºéå½åæ¥å·¥åæ ¼æ»æ°)<ä¸éå·¥åºæ¥å·¥æ»æ°(åæ ¼+ä¸è¯+æ¥åº) ==ä¸è½å°äºä¸éæ¥å·¥æ»æ° |
| | | string date = DateTime.Now.ToString(); //è·åç³»ç»æ¶é´ |
| | | |
| | | |
| | | list.Clear(); |
| | | //è·åå½åå·¥åºä¸éå·¥åºå屿§ |
| | | sql = @"select T.stepcode,T.stepname,T.flwtype from TK_Wrk_Step A |
| | |
| | | //夿å½åå·¥åºæ¯èªå¶å·¥åºè¿æ¯å¤åå·¥åº |
| | | 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") |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | 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); |
| | | 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 (json[0].flw_type.ToString() == "W") |
| | | { |
| | | //è·åå½åå·¥åºãä¾åºå对åºçæ»åææ°é |
| | | 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); |
| | | |
| | | //æ¥è¯¢å½åå·¥åºéæ¤æ¬¡æ¶æï¼æ»æ¶ææ°éãæ»ä¸è¯æ°éãæ»å·¥åºæ°éãæ»æåºæ°é |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | |
| | | switch (json[0].flw_type.ToString()) |
| | | { |
| | | case "Z": |
| | | ///////////////////////////////ä¿®æ¹æ¥å·¥////////////////////////////// |
| | | |
| | | //åå对åºçæ¥å·¥è®°å½åè¡¨åæ ¼æ°éãä¸è¯æ°éãæ¥åºæ°é |
| | |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | 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 |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | break; |
| | | case "W": |
| | | ///////////////////////////////ä¿®æ¹æ¥å·¥////////////////////////////// |
| | | |
| | | //åå对åºçå¤åè®°å½åè¡¨æ¶ææ°éãä¸è¯æ°éãæ¥åºæ°é |
| | |
| | | } |
| | | }); |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | bool aa = DapperHelper.DoTransaction(list); |
| | | if (aa) |
| | | { |
| | |
| | | /// </summary> |
| | | public string partcode { get; set; } |
| | | /// <summary> |
| | | /// å·¥èºè·¯çº¿ç¼ç |
| | | /// </summary> |
| | | public string routecode { get; set; } |
| | | /// <summary> |
| | | /// 工忰é |
| | | /// </summary> |
| | | public string woqty { get; set; } |
| | |
| | | /// </summary> |
| | | public string data_sources { get; set; } |
| | | /// <summary> |
| | | /// ä¿®æ¹æ°éå·®å¼ |
| | | /// </summary> |
| | | public string difference { get; set; } |
| | | /// <summary> |
| | | /// æ¯å¦å
³èå·¥åº |
| | | /// </summary> |
| | | public string isstep { get; set; } |
| | |
| | | string basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location); |
| | | string xmlPath = Path.Combine(basePath, "VueWebCoreApi.xml"); |
| | | c.IncludeXmlComments(xmlPath, true); |
| | | |
| | | }); |
| | | #endregion |
| | | |
| | |
| | | public static ToMessage mes = new ToMessage(); //å®ä¹å
¨å±è¿åä¿¡æ¯å¯¹è±¡ |
| | | |
| | | |
| | | #region[çäº§å¼æ¥å·¥:èªå¶å·¥åºä»»å¡å¼æ¥å·¥å¤æï¼å·¥å+å·¥åºæ¡ç ] |
| | | #region[çäº§å¼æ¥å·¥:èªå¶å·¥åºä»»å¡å¼æ¥å·¥å¤æï¼å·¥å+å·¥åºæ¡ç ,æåºç产] |
| | | /// <summary> |
| | | /// æ«ç ä¿¡æ¯ä¸ºå·¥å+å·¥åºæ¡ç |
| | | /// </summary> |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region[çäº§å¼æ¥å·¥:å¤åå·¥åºä»»å¡å¼æ¥å·¥å¤æ:å·¥åå·+å·¥åº] |
| | | #region[çäº§å¼æ¥å·¥:å¤åå·¥åºä»»å¡å¼æ¥å·¥å¤æ:å·¥åå·+å·¥åº,æåºæ¶åæ] |
| | | /// <summary> |
| | | /// çäº§å¼æ¥å·¥:å¤åå·¥åºä»»å¡å¼æ¥å·¥å¤æ:å·¥åå·+å·¥åº |
| | | /// </summary> |
| | |
| | | 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 |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | { |
| | | mes.code = "300"; |
| | | mes.count = 0; |
| | | mes.message = "å½åç¨æ·æå±ç»ç»ç¼ç ã" + torg_code + "ãä¸åå¨!"; |
| | | mes.message = "å½åç¨æ·æå±ç»ç»ç¼ç ã" + torg_code + "ãä¸åå¨æä¸ºç©º!"; |
| | | mes.data = null; |
| | | } |
| | | } |
| | |
| | | <Folder Include="wwwroot\DeviceRecordImage\image2\" /> |
| | | <Folder Include="wwwroot\newxls\" /> |
| | | <Folder Include="wwwroot\MouldRecordImage\" /> |
| | | <Folder Include="wwwroot\DeviceSopFile\" /> |
| | | <Folder Include="wwwroot\ProcessSopFile\" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |