Browse Source

1. 新增FQC008查詢畫面

2. 修改NG_INFO 欄位 RuleStationID => StationID 相關程式
PTD
Ray 3 years ago
parent
commit
9bcbf940bf
  1. 27
      AMESCoreStudio.Web/Controllers/FQCController.cs
  2. 4
      AMESCoreStudio.Web/Controllers/PCSController.cs
  3. 19
      AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs
  4. 22
      AMESCoreStudio.Web/ViewModels/FQC/FQC008ViewModel.cs
  5. 52
      AMESCoreStudio.Web/Views/FQC/FQC008.cshtml
  6. 85
      AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs
  7. 6
      AMESCoreStudio.WebApi/Controllers/AMES/NgInfoController.cs
  8. 104
      AMESCoreStudio.WebApi/DTO/AMES/FqcInhouseMasterDto.cs
  9. 8
      AMESCoreStudio.WebApi/Models/AMES/NgInfo.cs
  10. 2
      AMESCoreStudio.WebApi/Models/AMESContext.cs

27
AMESCoreStudio.Web/Controllers/FQCController.cs

@ -570,19 +570,20 @@ namespace AMESCoreStudio.Web.Controllers
return View();
}
//public async Task<IActionResult> PCS030QueryAsync(string barcodeNo, string wipNo
// , string boxNo, string inhouseNo, string date_str, string date_end)
//{
// return IResultModel<string>();
// //IResultModel<WipSopDto> result = await _pcsApi.GetWipSopQuery(itemNo: itemNo, unitNo: unitNo
// //, fileName: fileName, state: state, date_str: date_str, date_end: date_end);
// //
// //if (result.Data.Count() != 0)
// //{
// // return Json(new Table() { code = 0, msg = "", data = result.Data, count = 0 });
// //}
// //return Json(new Table() { count = 0, data = null });
//}
public async Task<IActionResult> FQC008QueryAsync(string barcodeNo, string wipNo
, string boxNo, string inhouseNo, string date_str, string date_end
, string status, int page = 1, int limit = 10)
{
IResultModel<FqcInhouseMasterDto> result = await _fqcApi.GetFqcInhouseMasterQuery(barcodeNo: barcodeNo, wipNo: wipNo
, boxNo: boxNo, inhouseNo: inhouseNo, date_str: date_str, date_end: date_end
, status: status , page: page, limit: limit);
if (result.Data.Count() != 0)
{
return Json(new Table() { code = 0, msg = "", data = result.Data, count = result.DataTotal });
}
return Json(new Table() { count = 0, data = null });
}
#endregion
}
}

4
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -2325,7 +2325,7 @@ namespace AMESCoreStudio.Web.Controllers
ReasonNo = NGNo,
ProgramNo = "N/A",
MachineNo = "N/A",
RuleStationId = model.RuleStation,
StationId = model.Station,
WipId = model.WipID
};
var resultNgInfo = await _pcsApi.PostNgInfo(JsonConvert.SerializeObject(ngInfo));
@ -2419,7 +2419,7 @@ namespace AMESCoreStudio.Web.Controllers
ReasonNo = NGNo,
ProgramNo = "N/A",
MachineNo = "N/A",
RuleStationId = model.RuleStation,
StationId = model.Station,
WipId = model.WipID
};
var resultNgInfo = await _pcsApi.PostNgInfo(JsonConvert.SerializeObject(ngInfo));

19
AMESCoreStudio.Web/HttpApis/AMES/IFQC.cs

@ -268,8 +268,23 @@ namespace AMESCoreStudio.Web
#endregion
#region FQC008 FQC查詢
//[WebApiClient.Attributes.HttpGet("api/StatusType/{id}")]
//ITask<ResultModel<StatusType>> GetStatusTypeQuery(int page = 1, int limit = 10);
/// <summary>
/// FQC查詢
/// </summary>
/// <param name="barcodeNo">內部序號</param>
/// <param name="wipNo">工單號碼</param>
/// <param name="boxNo">外箱號碼</param>
/// <param name="inhouseNo">入庫單號碼</param>
/// <param name="date_str">入庫時間起</param>
/// <param name="date_end">入庫時間迄</param>
/// <param name="status">抽驗結果</param>
/// <param name="page">頁數</param>
/// <param name="limit">筆數</param>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/FqcInhouseMaster/FqcInhouseMasterQuery")]
ITask<ResultModel<FqcInhouseMasterDto>> GetFqcInhouseMasterQuery(string barcodeNo = null, string wipNo = null
, string boxNo = null, string inhouseNo = null, string date_str = null, string date_end = null
, string status = null, int page = 1, int limit = 10);
#endregion
}

22
AMESCoreStudio.Web/ViewModels/FQC/FQC008ViewModel.cs

@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.WebApi.Models.BAS;
using AMESCoreStudio.WebApi.DTO.AMES;
namespace AMESCoreStudio.Web.ViewModels
{
public class FQC008ViewModel
{
public NgInfo ngInfo { get; set; }
public NgComponent ngComponent { get; set; }
public RepairRecord repairRecord { get; set; }
public NgRepair ngRepair { get; set; }
}
}

52
AMESCoreStudio.Web/Views/FQC/FQC008.cshtml

@ -130,33 +130,55 @@
var tableCols = [[
{
field: 'itemNo',
field: 'inhouseNo',
width: 150,
title: '入庫單號',
sort: true
},
{
field: 'unitName',
field: 'seqID',
title: '順序',
sort: true
},
{
field: 'wipNo',
title: '工單號碼',
width: 200,
sort: true
},
{
field: 'fileName',
title: '狀態',
field: 'itemNo',
title: '料號',
sort: true
},
{
field: 'right',
width: 80,
title: '操作',
align: 'center',
fixed: 'right',
templet: function (d) {
return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-read" lay-event="show">預覽</button>'
}
}]
];
field: 'createDate',
title: '入庫時間',
sort: true,
emplet: '<div>{{ layui.util.toDateString(d.createDate, "yyyy/MM/dd") }}</div>'
},
{
field: 'serialNo',
title: '箱號',
sort: true
},
{
field: 'statusName',
title: '檢驗狀態',
sort: true
}
//,
//{
// field: 'right',
// width: 80,
// title: '操作',
// align: 'center',
// fixed: 'right',
// templet: function (d) {
// return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-read" lay-event="show">預覽</button>'
// }
//}
]];
//通过行tool编辑,lay-event="show"
function show(obj) {
layui.use('layer', function () {

85
AMESCoreStudio.WebApi/Controllers/AMES/FqcInhouseMasterController.cs

@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.WebApi.DTO.AMES;
using AMESCoreStudio.CommonTools.Result;
namespace AMESCoreStudio.WebApi.Controllers.AMES
@ -46,6 +47,90 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return fqcInhouseMaster;
}
/// <summary>
/// FQC查詢 by Table
/// </summary>
/// <param name="barcodeNo">內部序號</param>
/// <param name="wipNo">工單號碼</param>
/// <param name="boxNo">外箱號碼</param>
/// <param name="inhouseNo">入庫單號碼</param>
/// <param name="date_str">入庫時間起</param>
/// <param name="date_end">入庫時間迄</param>
/// <param name="status">抽驗結果</param>
/// <param name="page">頁數</param>
/// <param name="limit">筆數</param>
/// <returns></returns>
[HttpGet("FqcInhouseMasterQuery")]
public async Task<ResultModel<FqcInhouseMasterDto>> GetFqcInhouseMasterQuery(string barcodeNo, string wipNo, string boxNo
, string inhouseNo, string date_str, string date_end, string status, int page = 1, int limit = 10)
{
IQueryable<FqcInhouseMasterDto> q = from q1 in _context.FqcInhouseMasters
join q2 in _context.FqcInhouseDetails on new { q1.InhouseNo, q1.SeqID } equals new { q2.InhouseNo, q2.SeqID }
select new FqcInhouseMasterDto
{
InhouseNo = q1.InhouseNo,
SeqID = q1.SeqID,
WipNo = q1.WipNo,
ItemNo = q1.ItemNo,
ModelNo = q1.ModelNo,
SerialNo = q2.SerialNo,
StatusName = q1.Status,
ProTypeName = q1.ProType,
CreateDate = q1.CreateDate
};
//q1.Status == "P" ? "允收" : q1.Status == "R" ? "批退" : "未驗收完成",
//IQueryable <FqcInhouseDetail> q1 = _context.FqcInhouseDetails;
if (!string.IsNullOrWhiteSpace(inhouseNo))
q = q.Where(w => w.InhouseNo == inhouseNo);
if (!string.IsNullOrWhiteSpace(wipNo))
q = q.Where(w => w.WipNo == wipNo);
if (!string.IsNullOrWhiteSpace(status))
q = q.Where(w => w.StatusName == status);
// 優先用內部序號取出包裝序號
if (!string.IsNullOrWhiteSpace(barcodeNo))
{
BarcodeInfoesController barcodeInfoesController = new BarcodeInfoesController(_context);
var q1 = await barcodeInfoesController.GetBarcodeInfoesByNo(barcodeNo);
if (q1.Value.Count() != 0)
{
boxNo = q1.Value.FirstOrDefault().BoxNo;
}
}
if (!string.IsNullOrWhiteSpace(boxNo))
{
q = q.Where(w => w.SerialNo == boxNo);
}
if (DateTime.TryParse(date_str, out _))
{
q = q.Where(w => w.CreateDate >= DateTime.Parse(date_str));
}
if (DateTime.TryParse(date_end, out _))
{
q = q.Where(w => w.CreateDate <= DateTime.Parse(date_end));
}
ResultModel<FqcInhouseMasterDto> result = new ResultModel<FqcInhouseMasterDto>();
// 紀錄筆數
result.DataTotal = q.Count();
// Table 頁數
if (page > 0)
{
q = q.Skip((page - 1) * limit).Take(limit);
}
result.Data = await q.ToListAsync();
result.Data = result.Data.Select(s => { s.StatusName = s.StatusName == "P" ? "允收" : s.StatusName == "R" ? "批退" : "未驗收完成"; return s; })
.ToList();
return result;
}
/// <summary>
/// 更新入庫單
/// </summary>

6
AMESCoreStudio.WebApi/Controllers/AMES/NgInfoController.cs

@ -43,7 +43,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
data.Barcode = _context.BarcodeInfoes.Find(data.BarcodeID);
data.Wip = _context.WipInfos.Find(data.WipId);
data.Station = _context.Stationses.Find(data.RuleStationId);
//data.Station = _context.Stationses.Find(data.RuleStationId);
//data.User = _context.UserInfoes.Find(data.OperatorID);
//data.OperatorName = _context.UserInfoes.Find(data.OperatorID).UserName;
}
@ -72,7 +72,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
data.Barcode = _context.BarcodeInfoes.Find(data.BarcodeID);
data.Wip = _context.WipInfos.Find(data.WipId);
data.Station = _context.Stationses.Find(data.RuleStationId);
//data.Station = _context.Stationses.Find(data.RuleStationId);
//data.User = _context.UserInfoes.Find(data.OperatorID);
//data.OperatorName = _context.UserInfoes.Find(data.OperatorID).UserName;
}
@ -116,7 +116,7 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
{
data.Barcode = _context.BarcodeInfoes.Find(data.BarcodeID);
data.Wip = _context.WipInfos.Find(data.WipId);
data.Station = _context.Stationses.Find(data.RuleStationId);
//data.Station = _context.Stationses.Find(data.RuleStationId);
//data.User = _context.UserInfoes.Find(data.OperatorID);
//data.OperatorName = _context.UserInfoes.Find(data.OperatorID).UserName;
}

104
AMESCoreStudio.WebApi/DTO/AMES/FqcInhouseMasterDto.cs

@ -0,0 +1,104 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using System.Runtime.Serialization;
#nullable disable
namespace AMESCoreStudio.WebApi.DTO.AMES
{
/// <summary>
/// 入庫單資料檔 Dto
/// </summary>
public partial class FqcInhouseMasterDto
{
/// <summary>
/// 入庫單號碼
/// </summary>
[DataMember]
public string InhouseNo { get; set; }
/// <summary>
/// 順序ID
/// </summary>
[Key]
[DataMember]
public int SeqID { get; set; } = 1;
/// <summary>
/// 工單號碼
/// </summary>
[DataMember]
[Display(Name = "工單號碼")]
public string WipNo { get; set; }
/// <summary>
/// 料號
/// </summary>
[DataMember]
[Display(Name = "料號")]
public string ItemNo { get; set; }
/// <summary>
/// 品名/機種
/// </summary>
[DataMember]
[Display(Name = "品名/機種")]
public string ModelNo { get; set; }
/// <summary>
/// 箱號/條碼
/// </summary>
[DataMember]
[Display(Name = "箱號/條碼")]
public string SerialNo { get; set; }
/// <summary>
/// 抽驗狀態 P-PASS(允收);R-REJECT(批退); A-初始狀態
/// </summary>
[DataMember]
[Display(Name = "抽驗狀態")]
public string StatusName { get; set; } = "A";
/// <summary>
/// 產品類別 STANDARD(標準品),Order(訂單)
/// </summary>
[DataMember]
[Display(Name = "產品類別")]
public string ProTypeName { get; set; }
/// <summary>
/// 建立UserID
/// </summary>
[Column("CREATE_USERID")]
[DataMember]
public int CreateUserID { get; set; } = 0;
/// <summary>
/// 建立日期
/// </summary>
[Column("CREATE_DATE")]
[DataMember]
public DateTime CreateDate { get; set; } = DateTime.Now;
/// <summary>
/// 更新UserID
/// </summary>
[Column("UPDATE_USERID")]
[DataMember]
public int UpdateUserID { get; set; } = 0;
/// <summary>
/// 更新日期
/// </summary>
[Column("UPDATE_DATE")]
[DataMember]
public DateTime? UpdateDate { get; set; } = DateTime.Now;
}
}

8
AMESCoreStudio.WebApi/Models/AMES/NgInfo.cs

@ -122,12 +122,12 @@ namespace AMESCoreStudio.WebApi.Models.AMES
public int BarcodeID { get; set; }
/// <summary>
/// 流程站別ID
/// 作業站ID
/// </summary>
[Column("RULE_STATION_ID")]
[Display(Name = "流程站別ID")]
[Column("STATION_ID")]
[Display(Name = "作業站ID")]
[DataMember]
public int RuleStationId { get; set; }
public int StationId { get; set; }
/// <summary>
/// 工單ID

2
AMESCoreStudio.WebApi/Models/AMESContext.cs

@ -90,7 +90,7 @@ namespace AMESCoreStudio.WebApi
modelBuilder.Entity<NgInfo>().HasOne(r => r.Barcode).WithMany().HasForeignKey(r => r.BarcodeID).IsRequired();
modelBuilder.Entity<NgInfo>().HasOne(r => r.Wip).WithMany().HasForeignKey(r => r.WipId).IsRequired();
modelBuilder.Entity<NgInfo>().HasOne(r => r.Station).WithMany().HasForeignKey(r => r.RuleStationId).IsRequired();
//modelBuilder.Entity<NgInfo>().HasOne(r => r.Station).WithMany().HasForeignKey(r => r.RuleStationId).IsRequired();
//modelBuilder.Entity<NgInfo>().HasOne(r => r.User).WithMany().HasForeignKey(r => r.OperatorID).IsRequired();
}

Loading…
Cancel
Save