using AMESCoreStudio.CommonTools.Result; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System; using System.Data.Common; using System.Threading.Tasks; using AMESCoreStudio.WebApi.Extensions; using Microsoft.Extensions.Configuration; using AMESCoreStudio.WebApi.DTO.AMES; using Dapper; using AMESCoreStudio.WebApi.Models.AMES; using System.Data; using System.Linq; namespace AMESCoreStudio.WebApi.Controllers.QASRV { [Route("api/[controller]")] [ApiController] public class CheckSfisKayPartController : ControllerBase { /// /// 查詢SFIS 有效序號 KeyParts /// /// KeyParts序號 /// [Route("GetSfisKeyParts/{id}")] [HttpGet] public async Task> GetSFISKeyParts(string id) { ResultModel result = new ResultModel(); using (ESUNContext _esun_context = new ESUNContext()) { try { result.Msg = "N"; string strsql = $@" SELECT * FROM SFIS.dbo.ZPDKeyPart WHERE IsActive = 1 AND PartBarcode = @PartBarcode"; DynamicParameters p = new DynamicParameters(); p.Add("PartBarcode", id.ToUpper().Trim(), DbType.AnsiString); var q = await _esun_context.Database.DapperQueryAsync(strsql, p); if (q.Any()) result.Msg = "Y"; result.Success = true; } catch (Exception ex) { result.Msg = ex.Message; result.Success = false; } } return result; } /// /// 查詢SFIS 標準工時 /// /// 工程編號 /// 生產製程 /// 線別代號 /// 作業站名稱 /// [Route("GetWorkTime")] [HttpGet] public async Task GetWorkTime(string itemNo, string unitNo, string lineNo, string stationNo) { using (ESUNContext _esun_context = new ESUNContext()) { try { string strsql = $@" SELECT CT FROM AMES_DB.dbo.JH_STANDARD_WORKTIME A , AMES_DB.dbo.JH_LINE B , AMES_DB.dbo.JH_STATION C , AMES_DB.dbo.JH_FACTORY_UNIT D WHERE A.LINE_ID = B.LINE_ID AND A.STATION_ID = C.STATION_ID AND A.UNIT_NO = D.UNIT_NO AND A.ITEM_NO = @itemNo AND A.UNIT_NO = @unitNo AND B.LINE_NO = @lineNo AND C.STATION_NO = @stationNo "; DynamicParameters p = new DynamicParameters(); p.Add("itemNo", itemNo.Trim()); p.Add("unitNo", unitNo.Trim()); p.Add("lineNo", lineNo.Trim()); p.Add("stationNo", stationNo.Trim()); var q = await _esun_context.Database.DapperQueryAsync(strsql, p); if (q.Any()) { var first = q.FirstOrDefault(); var worktime = double.Parse(first.CT.ToString()); return Math.Round(worktime, 2); } else { return 2.1; } } catch (Exception ex) { return 1.1; } } } } }