diff --git a/AMESCoreStudio.Web/Controllers/FQCController.cs b/AMESCoreStudio.Web/Controllers/FQCController.cs
index 3c7b0f55..ef0c64a6 100644
--- a/AMESCoreStudio.Web/Controllers/FQCController.cs
+++ b/AMESCoreStudio.Web/Controllers/FQCController.cs
@@ -838,18 +838,24 @@ namespace AMESCoreStudio.Web.Controllers
var result_WipFQC = await _fqcApi.GetWipFqcItemByWipNo(model.WipNo);
if (result_WipFQC.Count == 0)
{
- ////工單無設定檢驗工項時 在抓料號綁定檢驗工項
- //var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(model.ItemNo);
- //if (result_MaterialFQC.Count != 0)
- //{
- // model.qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList();
- //}
-
- // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目
- var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(model.ItemNo);
- if (result_FqcItem.Count != 0)
+ // 2024/02/01 切換判斷
+ if (model.CreateDate < new DateTime(2024, 2, 1))
{
- model.qcItemDtos = result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList();
+ //工單無設定檢驗工項時 在抓料號綁定檢驗工項
+ var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(model.ItemNo);
+ if (result_MaterialFQC.Count != 0)
+ {
+ model.qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList();
+ }
+ }
+ else
+ {
+ // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目
+ var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(model.ItemNo);
+ if (result_FqcItem.Count != 0)
+ {
+ model.qcItemDtos = result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList();
+ }
}
}
else
@@ -962,11 +968,24 @@ namespace AMESCoreStudio.Web.Controllers
var result_WipFQC = await _fqcApi.GetWipFqcItemByWipNo(model.WipNo);
if (result_WipFQC.Count == 0)
{
- //工單無設定檢驗工項時 在抓料號綁定檢驗工項
- var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(model.ItemNo);
- if (result_MaterialFQC.Count != 0)
+ // 2024/02/01 切換判斷
+ if (model.CreateDate < new DateTime(2024, 2, 1))
{
- model.qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList();
+ //工單無設定檢驗工項時 在抓料號綁定檢驗工項
+ var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(model.ItemNo);
+ if (result_MaterialFQC.Count != 0)
+ {
+ model.qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList();
+ }
+ }
+ else
+ {
+ // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目
+ var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(model.ItemNo);
+ if (result_FqcItem.Count != 0)
+ {
+ model.qcItemDtos = result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList();
+ }
}
}
else
@@ -987,12 +1006,13 @@ namespace AMESCoreStudio.Web.Controllers
/// 確認是否可以開立FQC檢驗單
///
/// 入庫單號碼
- /// 序號
+ /// 工單號碼
+ /// 序號
///
[HttpPost]
- public async Task CheckFqcIssue(string inhouseNo, int seqID = 0)
+ public async Task CheckFqcIssue(string inhouseNo, string wipNo, int seqID = 0)
{
- var result = await _fqcApi.CheckFqcIssue(inhouseNo, seqID);
+ var result = await _fqcApi.CheckFqcIssue(inhouseNo, wipNo, seqID);
return Json(new Result() { success = result.Success, msg = result.Msg, data = null });
}
@@ -1317,11 +1337,24 @@ namespace AMESCoreStudio.Web.Controllers
var qcItemDtos = new List();
if (result_WipFQC.Count == 0)
{
- //工單無設定檢驗工項時 在抓料號綁定檢驗工項
- var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(fqcItem.ItemNo);
- if (result_MaterialFQC.Count != 0)
+ // 2024/02/01 切換判斷
+ if (model.CreateDate < new DateTime(2024, 2, 1))
+ {
+ //工單無設定檢驗工項時 在抓料號綁定檢驗工項
+ var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(fqcItem.ItemNo);
+ if (result_MaterialFQC.Count != 0)
+ {
+ qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList();
+ }
+ }
+ else
{
- qcItemDtos = result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList();
+ // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目
+ var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(fqcItem.ItemNo);
+ if (result_FqcItem.Count != 0)
+ {
+ qcItemDtos = result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList();
+ }
}
}
else
@@ -1351,8 +1384,6 @@ namespace AMESCoreStudio.Web.Controllers
if (model.QaResult == "P" && string.IsNullOrWhiteSpace(model.SpecialPo))
{
return Json(new { data = "請輸入特採單號", success = false });
- //ModelState.AddModelError("error", "請輸入特採單號");
- //return View("FQC007B", model);
}
}
@@ -1365,16 +1396,12 @@ namespace AMESCoreStudio.Web.Controllers
if (fqcItem.PassQty + fqcItem.FailQty != fqcItem.InhouseQty && model.QaResult == "P")
{
return Json(new { data = "抽樣數量不足,不可判定允收", success = false });
- //ModelState.AddModelError("error", "抽樣數量不足,不可判定允收");
- //return View("FQC007B", model);
}
}
//當抽驗數量 小於 抽樣數量就離開
else if (fqcItem.QcQty > fqcItem.PassQty + fqcItem.FailQty && model.QaResult == "P")
{
return Json(new { data = "抽樣數量不足,不可判定允收", success = false });
- //ModelState.AddModelError("error", "抽樣數量不足,不可判定允收");
- //return View("FQC007B", model);
}
}
}
@@ -1400,6 +1427,9 @@ namespace AMESCoreStudio.Web.Controllers
result = await _fqcApi.PutFqcResultMaster(JsonConvert.SerializeObject(fqcResultMaster));
if (result.Success)
{
+ // 抽驗時,判斷檢驗項目是否有建立
+ await _fqcApi.PostWipFqcItemByWipNo(fqcItem.WipNo);
+
// 允收且不是無序號供單需要FQC過站
if (model.QaResult == "P" && fqcItem.InspectionStatus != "D")
result = await _fqcApi.PassingByFQC(model.InhouseNo, model.SeqID, GetLogInUserID());
@@ -1637,9 +1667,27 @@ namespace AMESCoreStudio.Web.Controllers
}
[HttpGet]
- public async Task FQC007AItemQuery(string wipNo, string itemNo)
+ public async Task FQC007AItemQuery(string wipNo, string itemNo ,DateTime createDate)
{
- var result = await _fqcApi.GetQcItemQuery(0, 0, 0, itemNo, wipNo);
+ // 2024/02/01 切換判斷
+ var result = new ResultModel();
+ if (createDate < new DateTime(2024, 2, 1))
+ {
+ result = await _fqcApi.GetQcItemQuery(0, 0, 0, itemNo, wipNo);
+ }
+ else
+ {
+ var item = await _pcsApi.GetMaterialItemByItemNO(itemNo);
+ if (item != null)
+ {
+ var fqcGroupId = await _fqcApi.GetFqcItemGroupMaterialByItemId(item.ItemID);
+ if (fqcGroupId.Any())
+ {
+ result = await _fqcApi.GetQcItemQuery(0, 0, 0, wipNo: wipNo,
+ fqcItemGroupId: fqcGroupId.FirstOrDefault().GroupId);
+ }
+ }
+ }
return Json(new Table() { code = 0, data = result.Data, count = result.DataTotal });
}
@@ -1918,7 +1966,7 @@ namespace AMESCoreStudio.Web.Controllers
#endregion
#region FQC010 報表
- public async Task FQC010_PDF(string inhouseNo, int seqID)
+ public IActionResult FQC010_PDF(string inhouseNo, int seqID)
{
string mimeType = "";
int extension = 1;
@@ -1928,7 +1976,7 @@ namespace AMESCoreStudio.Web.Controllers
return File(result.MainStream, "application/pdf");
}
- public async Task FQC010_Excel(string inhouseNo, int seqID)
+ public IActionResult FQC010_Excel(string inhouseNo, int seqID)
{
string mimeType = "";
int extension = 1;
@@ -2010,10 +2058,11 @@ namespace AMESCoreStudio.Web.Controllers
var result_WipFQC = await _fqcApi.GetWipFqcItemByWipNo(FqcQuery.WipNo);
if (result_WipFQC.Count == 0)
{
- //工單無設定檢驗工項時 在抓料號綁定檢驗工項
- var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(FqcQuery.ItemNo);
- if (result_MaterialFQC.Count != 0)
+ // 2024/02/01 切換判斷
+ if (FqcQuery.CreateDate < new DateTime(2024, 2, 1))
{
+ //工單無設定檢驗工項時 在抓料號綁定檢驗工項
+ var result_MaterialFQC = await _fqcApi.GetMaterialFqcItemsByitemNo(FqcQuery.ItemNo);
// 檢驗工項
foreach (var item in result_QcItem.Data.Where(w => result_MaterialFQC.Select(s => s.QcItemID).Contains(w.ItemID)).ToList())
{
@@ -2025,6 +2074,20 @@ namespace AMESCoreStudio.Web.Controllers
});
}
}
+ else
+ {
+ // 改抓FQC設定群組內綁定的料號取 FQC設定群組項目
+ var result_FqcItem = await _fqcApi.GetFqcItemByItemNo(FqcQuery.ItemNo);
+ foreach (var item in result_QcItem.Data.Where(w => result_FqcItem.Select(s => s.QcItemId).Contains(w.ItemID)).ToList())
+ {
+ FQC010Master.Detail1.Add(new FQC010Detail1
+ {
+ ItemID = item.ItemID.ToString(),
+ ItemName = item.ItemNameEN,
+ ItemType = item.ItemTypeName
+ });
+ }
+ }
}
else
{
diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs b/AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs
index 8720867e..6192f13b 100644
--- a/AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs
+++ b/AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs
@@ -412,7 +412,6 @@ namespace AMESCoreStudio.Web
[WebApiClient.Attributes.HttpGet("api/FqcResultDetail/{id}")]
ITask> GetFqcResultDetail(int id);
-
///
/// 用id取檢驗單結果
///
@@ -545,11 +544,17 @@ namespace AMESCoreStudio.Web
/// 確認FQC抽驗時,箱號是否已經跑到FQC流程
///
/// 入庫單號
+ /// 工單號碼
/// 順序
///
[WebApiClient.Attributes.HttpGet("api/FqcInhouseMaster/CheckFqcIssue")]
- ITask> CheckFqcIssue(string inhouseNo, int seqID);
+ ITask> CheckFqcIssue(string inhouseNo, string wipNo , int seqID);
+ ///
+ /// WipFqcItemByWipNo 新增工單綁定檢驗工項,抽驗時判斷沒有資料就新增預設
+ ///
+ [WebApiClient.Attributes.HttpPost("api/WipFqcItem/ByWipNo/{wipNo}")]
+ ITask> PostWipFqcItemByWipNo(string wipNo);
#endregion
#region FQC008 FQC查詢
diff --git a/AMESCoreStudio.Web/Views/FQC/FQC007.cshtml b/AMESCoreStudio.Web/Views/FQC/FQC007.cshtml
index 0c8c242d..28030057 100644
--- a/AMESCoreStudio.Web/Views/FQC/FQC007.cshtml
+++ b/AMESCoreStudio.Web/Views/FQC/FQC007.cshtml
@@ -691,7 +691,7 @@
area: ['700px', '500px'],
fixed: false, //不固定
maxmin: true,
- content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo',
+ content: '/FQC/FQC007A?wipNo=@Model.WipNo&itemNo=@Model.ItemNo&createDate=@Model.CreateDate',
end: function () {
window.location.reload();
}
diff --git a/AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml b/AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml
index 84ba9017..35ea46f9 100644
--- a/AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml
+++ b/AMESCoreStudio.Web/Views/FQC/FQC007A.cshtml
@@ -48,7 +48,7 @@
defaultToolbar: ['filter', 'print', 'exports'],
cols: tableCols,
response: { msgName: 'msg' },
- where: { itemNo: '@Model.ItemNo', wipNo: '@Model.WipNo' },
+ where: { itemNo: '@Model.ItemNo', wipNo: '@Model.WipNo', createDate:'@Model.CreateDate' },
done: function (res, curr, count) {
//迴圈所有資料,找出對應關係,設定checkbox選中狀態
for (var i = 0; i < res.data.length; i++) {
diff --git a/AMESCoreStudio.Web/Views/FQC/FQC008.cshtml b/AMESCoreStudio.Web/Views/FQC/FQC008.cshtml
index 5247937c..e7c55bbf 100644
--- a/AMESCoreStudio.Web/Views/FQC/FQC008.cshtml
+++ b/AMESCoreStudio.Web/Views/FQC/FQC008.cshtml
@@ -253,8 +253,8 @@
aa = '修改'
}
else {
- aa = '檢視\
- PDF Excel'
+ aa = '檢視\
+ PDF Excel'
}
return aa;
}
@@ -276,7 +276,7 @@
$.ajax({
url: "@Url.Action("CheckFqcIssue", "FQC")",
type: "POST",
- data: { "inhouseNo": obj.data.inhouseNo, "seqID": obj.data.seqID },
+ data: { "inhouseNo": obj.data.inhouseNo, "wipNo": obj.data.wipNo , "seqID": obj.data.seqID },
success: function (result) {
if (result.success) {
if (obj.data.inhouseNo) {
@@ -300,6 +300,17 @@
}
+ function view(obj) {
+ if (obj.data.inhouseNo) {
+ hg.open('FQC抽驗作業', '/FQC/FQC007?inhouseNo=' + obj.data.inhouseNo + '&seqID=' + obj.data.seqID, '', '', true);
+
+ var tempwindow = window.open('_blank'); // 先打開頁面
+ tempwindow.location = 'https://sms.avalue.com.tw/SMS/SUP/SFIS_SMS001.aspx?MODEL_NO=' + obj.data.modelNo;
+ var tempwindow1 = window.open('_blank'); // 先打開頁面
+ tempwindow1.location = 'http://qazone.avalue.com.tw/qazone/sfislinktocfqr.aspx?QF=2&QA_PRDID=' + obj.data.itemNo;
+ }
+ }
+
function PDF(obj) {
if (obj.data.inhouseNo) {
hg.open('PDF', '/FQC/FQC010_PDF?inhouseNo=' + obj.data.inhouseNo + '&seqID=' + obj.data.seqID, '', '', true);
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs
index 404df3c0..d4413d5d 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs
@@ -306,7 +306,8 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
Note = q2.Note,
InspectionStatus = q2.InspectionStatus,
Description = q4.Description,
- LocationNo = q1.LocationNo
+ LocationNo = q1.LocationNo,
+ CreateDate = q1.CreateDate
};
var query = await q.Distinct().ToListAsync();
@@ -374,14 +375,24 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
/// 確認FQC開立抽驗時,是否資料與流程都完成
///
/// 入庫單號碼
+ /// 工單號碼
/// 序號
///
[HttpGet("CheckFqcIssue")]
- public async Task> CheckFqcIssue(string inhouseNo, int seqid = 1)
+ public async Task> CheckFqcIssue(string inhouseNo, string wipNo, int seqid = 1)
{
- ResultModel result = new ResultModel { Success = true };
- var CheckFqcNextProcess = await GetCheckFqcNextProcess(inhouseNo , seqid);
-
+ ResultModel result = new ResultModel { Success = true };
+ var wip = await _context.WipInfos.Where(w => w.WipNO.Trim().ToUpper() == wipNo.Trim().ToUpper()).FirstOrDefaultAsync();
+
+ // 無序號工單不需要判斷
+ if (wip != null)
+ {
+ if (wip.WipType == "N")
+ return result;
+ }
+
+ var CheckFqcNextProcess = await GetCheckFqcNextProcess(inhouseNo, seqid);
+
if (CheckFqcNextProcess.Any())
{
result.Success = false;
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/QcItemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/QcItemController.cs
index 5572d9c1..78b52aba 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/QcItemController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/QcItemController.cs
@@ -102,6 +102,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
if (wipFqcItem.Where(w => w.QcItemID == item.ItemID).Any())
item.check = true;
}
+ result.Data.Select(s => s.ItemTypeName =
+ System.Enum.IsDefined(typeof(EnumFQC.EnumQCItem_Type), s.ItemType ?? "") ?
+ EnumFQC.GetDisplayName((EnumFQC.EnumQCItem_Type)System.Enum.Parse(typeof(EnumFQC.EnumQCItem_Type), s.ItemType)) : "")
+ .ToList();
+
+ return result;
}
}
@@ -111,14 +117,10 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
var itemID = _context.MaterialItems.Where(w => w.ItemNo == itemNo).FirstOrDefault();
if (itemID != null)
{
- var q1 = from q2 in _context.FqcItems
- join q3 in _context.FqcItemGroupMaterials on q2.GroupId equals q3.GroupId
- where q3.ItemId == itemID.ItemID
- select q2;
-
+ var marterialFQCItems = _context.MaterialFqcItems.Where(w => w.ItemID == itemID.ItemID);
foreach (var item in result.Data)
{
- if (q1.Where(w => w.QcItemId == item.ItemID).Any())
+ if (marterialFQCItems.Where(w => w.QcItemID == item.ItemID).Any())
item.check = true;
}
}
diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WipFqcItemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WipFqcItemController.cs
index 3fe31a14..154d675e 100644
--- a/AMESCoreStudio.WebApi/Controllers/AMES/WipFqcItemController.cs
+++ b/AMESCoreStudio.WebApi/Controllers/AMES/WipFqcItemController.cs
@@ -8,6 +8,8 @@ using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
+using Dapper;
+using AMESCoreStudio.WebApi.Extensions;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
@@ -113,6 +115,59 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return result;
}
+ ///
+ /// 判斷工單號碼是否有資料,沒有在取FQC群組建立資料
+ ///
+ /// 工單號碼
+ ///
+ [HttpPost("ByWipNo/{wipNo}")]
+ public async Task> PostWipFqcItemByWipNo(string wipNo)
+ {
+ var wipFqcItem = await _context.WipFqcItems.Where(w => w.WipNo == wipNo).AnyAsync();
+ ResultModel result = new ResultModel { Success = true };
+ // 沒有資料 再由FQC_ITEM新增
+ if (!wipFqcItem)
+ {
+ var querySql = @" SELECT DISTINCT A.WIP_NO AS WipNo ,
+ A.ITEM_NO AS ItemNo ,
+ F.QC_GROUP_ID AS QcGroupID ,
+ F.QC_ITEM_ID AS QcItemID
+ FROM JHAMES.WIP_ATT A
+ INNER JOIN JHAMES.MATERIAL_ITEM M ON A.ITEM_NO = M.ITEM_NO-- 料號對應檔
+ INNER JOIN JHAMES.FQC_ITEM_GROUP_MATERIAL FM ON FM.ITEM_ID = M.ITEM_ID--料號ID對應FQC群組
+ INNER JOIN JHAMES.FQC_ITEM F ON F.GROUP_ID = FM.GROUP_ID-- FQC群組對應綁定項目
+ WHERE A.WIP_NO = :WipNo ";
+
+ DynamicParameters p = new DynamicParameters();
+ p.Add("WipNo", wipNo);
+ var query = await _context.Database.DapperQueryAsync(querySql, p);
+
+ if (query.Any())
+ {
+ Helper helper = new Helper(_context);
+ foreach (var item in query)
+ {
+ item.WipFqcitemID = helper.GetIDKey("WIP_FQCITEM_ID").Result;
+ _context.WipFqcItems.Add(item);
+ }
+
+ try
+ {
+ await _context.SaveChangesAsync();
+ result.Success = true;
+ result.Msg = "OK";
+ }
+ catch (Exception ex)
+ {
+ result.Success = false;
+ result.Msg = ex.InnerException.Message;
+ }
+ return result;
+ }
+ }
+ return result;
+ }
+
// DELETE: api/WipFqcItem/5
[HttpDelete("{id}")]
public async Task> DeleteWipFqcItem(int id)
diff --git a/AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs b/AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs
index 85777e3c..1b885659 100644
--- a/AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs
+++ b/AMESCoreStudio.WebApi/DTO/AMES/FqcDto.cs
@@ -375,7 +375,15 @@ namespace AMESCoreStudio.WebApi.DTO.AMES
[DataMember]
[StringLength(5)]
public string LocationNo { get; set; }
-
+
+ ///
+ /// 入庫單開單時間
+ ///
+ [NotMapped]
+ [DataMember]
+ [Display(Name = "入庫單開單時間")]
+ public DateTime CreateDate { get; set; }
+
public List fqcDetails { get; set; }