You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
439 lines
15 KiB
439 lines
15 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using AMESCoreStudio.WebApi;
|
|
using AMESCoreStudio.WebApi.Models.AMES;
|
|
using AMESCoreStudio.CommonTools.Result;
|
|
|
|
namespace AMESCoreStudio.WebApi.Controllers.AMES
|
|
{
|
|
/// <summary>
|
|
/// 工作群組維護
|
|
/// </summary>
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class StandardWorkTimesController : ControllerBase
|
|
{
|
|
private readonly AMESContext _context;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
public StandardWorkTimesController(AMESContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
// GET: api/StandardWorkTimes
|
|
[HttpGet]
|
|
public async Task<ActionResult<IEnumerable<StandardWorkTime>>> GetStandardWorkTime()
|
|
{
|
|
IQueryable<StandardWorkTime> q = _context.StandardWorkTimes;
|
|
|
|
q = q.OrderBy(p => p.StandardID);
|
|
|
|
var standardWorkTime = await q.ToListAsync();
|
|
|
|
foreach (var data in standardWorkTime)
|
|
{
|
|
data.LineInfo = _context.LineInfoes.Find(data.LineID);
|
|
data.Stations = _context.Stationses.Find(data.StationID);
|
|
}
|
|
|
|
return standardWorkTime;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
// GET: api/StandardWorkTimes/5
|
|
[HttpGet("{id}")]
|
|
public async Task<ActionResult<IEnumerable<StandardWorkTime>>> GetStandardWorkTime(int id)
|
|
{
|
|
IQueryable<StandardWorkTime> q = _context.StandardWorkTimes;
|
|
q = q.Where(p => p.StandardID.Equals(id));
|
|
|
|
var standardWorkTime = await q.ToListAsync();
|
|
|
|
if (standardWorkTime == null)
|
|
{
|
|
return NotFound();
|
|
}
|
|
foreach (var data in standardWorkTime)
|
|
{
|
|
data.LineInfo = _context.LineInfoes.Find(data.LineID);
|
|
data.Stations = _context.Stationses.Find(data.StationID);
|
|
}
|
|
|
|
return standardWorkTime;
|
|
}
|
|
|
|
/// <summary>
|
|
/// WHS005
|
|
/// </summary>
|
|
/// <param name="u"></param>
|
|
/// <param name="l"></param>
|
|
/// <param name="i"></param>
|
|
/// <returns></returns>
|
|
// GET: api/StandardWorkTimes/5
|
|
[HttpGet("WHS003/{u}/{l}/{i}")]
|
|
public async Task<ActionResult<IEnumerable<StandardWorkTime>>> GetStandardWorkTimeByQuery003(string u ,int l,string i)
|
|
{
|
|
IQueryable<StandardWorkTime> q = _context.StandardWorkTimes;
|
|
|
|
if (l == -99) {
|
|
if (u != "Null" && i != "Null")
|
|
{
|
|
q = q.Where(p => p.UnitNo.Equals(u) && p.ItemNo.Contains(i));
|
|
}
|
|
else if (u == "Null" && i != "Null")
|
|
{
|
|
q = q.Where(p => p.ItemNo.Contains(i));
|
|
}
|
|
else if (u != "Null" && i == "Null")
|
|
{
|
|
q = q.Where(p => p.UnitNo.Equals(u));
|
|
}
|
|
else if (u == "Null" && i == "Null")
|
|
{
|
|
q = q.Where(p => p.UnitNo.Equals(u));
|
|
}
|
|
}
|
|
else {
|
|
if (i != "Null")
|
|
q = q.Where(p => p.LineID.Equals(l) && p.ItemNo.Contains(i));
|
|
else
|
|
q = q.Where(p => p.LineID.Equals(l));
|
|
}
|
|
|
|
var standardWorkTime = await q.ToListAsync();
|
|
|
|
if (standardWorkTime == null)
|
|
{
|
|
return NotFound();
|
|
}
|
|
foreach (var data in standardWorkTime)
|
|
{
|
|
data.LineInfo = _context.LineInfoes.Find(data.LineID);
|
|
data.Stations = _context.Stationses.Find(data.StationID);
|
|
}
|
|
|
|
return standardWorkTime;
|
|
}
|
|
|
|
/// <summary>
|
|
/// WHS003AbsoluteItemNo
|
|
/// </summary>
|
|
/// <param name="UnitNo"></param>
|
|
/// <param name="LineId"></param>
|
|
/// <param name="ItemNo"></param>
|
|
/// <returns></returns>
|
|
// GET: api/WHS003AbsoluteItemNo/5
|
|
[HttpGet("WHS003AbsoluteItemNo/{UnitNo}/{LineId}/{ItemNo}")]
|
|
public async Task<ActionResult<IEnumerable<StandardWorkTime>>> GetStandardWorkTimeByAbsoluteItemNoQuery
|
|
(string UnitNo, int LineId, string ItemNo)
|
|
{
|
|
IQueryable<StandardWorkTime> q = _context.StandardWorkTimes;
|
|
|
|
if (LineId == -99)
|
|
{
|
|
if (UnitNo != "Null" && ItemNo != "Null")
|
|
{
|
|
q = q.Where(p => p.UnitNo.Equals(UnitNo) && p.ItemNo.Equals(ItemNo));
|
|
}
|
|
else if (UnitNo == "Null" && ItemNo != "Null")
|
|
{
|
|
q = q.Where(p => p.ItemNo.Equals(ItemNo));
|
|
}
|
|
else if (UnitNo != "Null" && ItemNo == "Null")
|
|
{
|
|
q = q.Where(p => p.UnitNo.Equals(UnitNo));
|
|
}
|
|
else if (UnitNo == "Null" && ItemNo == "Null")
|
|
{
|
|
q = q.Where(p => p.UnitNo.Equals(UnitNo));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (ItemNo != "Null")
|
|
q = q.Where(p => p.LineID.Equals(LineId) && p.ItemNo.Equals(ItemNo) && p.UnitNo.Equals(UnitNo));
|
|
else
|
|
q = q.Where(p => p.LineID.Equals(LineId));
|
|
}
|
|
|
|
var standardWorkTime = await q.ToListAsync();
|
|
|
|
if (standardWorkTime == null)
|
|
{
|
|
return NotFound();
|
|
}
|
|
foreach (var data in standardWorkTime)
|
|
{
|
|
data.LineInfo = _context.LineInfoes.Find(data.LineID);
|
|
data.Stations = _context.Stationses.Find(data.StationID);
|
|
}
|
|
|
|
return standardWorkTime;
|
|
}
|
|
/// <summary>
|
|
/// WHS003AddDefault
|
|
/// </summary>
|
|
/// <param name="u"></param>
|
|
/// <param name="l"></param>
|
|
/// <param name="i"></param>
|
|
/// <returns></returns>
|
|
// GET: api/StandardWorkTimes/5
|
|
[HttpGet("WHS003AddDefault/{UnitType}/{ItemNo}")]
|
|
public async Task<ActionResult<IEnumerable<StandardWorktimeDefault>>> GetStandardWorkTimeByQuery003AddDefault(int UnitType, string ItemNo)
|
|
{
|
|
IQueryable<StandardWorktimeDefault> q = _context.StandardWorktimeDefault;
|
|
|
|
q = q.Where(p => p.UnitType.Equals(UnitType)).Select(q1 => new StandardWorktimeDefault
|
|
{
|
|
ID = q1.ID,
|
|
UnitNo = q1.UnitNo,
|
|
LineID = q1.LineID,
|
|
ItemNo = ItemNo,
|
|
OPCNT = q1.OPCNT,
|
|
FirstTime = q1.FirstTime,
|
|
TotalCT = q1.TotalCT,
|
|
CT = q1.CT,
|
|
MachineCT = q1.MachineCT,
|
|
Side = q1.Side,
|
|
StationID = q1.StationID
|
|
}
|
|
);
|
|
|
|
var standardWorkTime = await q.ToListAsync();
|
|
|
|
if (standardWorkTime == null)
|
|
{
|
|
return NotFound();
|
|
}
|
|
foreach (var data in standardWorkTime)
|
|
{
|
|
data.LineInfo = _context.LineInfoes.Find(data.LineID);
|
|
data.Stations = _context.Stationses.Find(data.StationID);
|
|
}
|
|
|
|
return standardWorkTime;
|
|
}
|
|
|
|
/// <summary>
|
|
/// WHS005
|
|
/// </summary>
|
|
/// <param name="u"></param>
|
|
/// <param name="l"></param>
|
|
/// <param name="i"></param>
|
|
/// <returns></returns>
|
|
// GET: api/StandardWorkTimes/5
|
|
[HttpGet("WHS005/{u}/{l}/{i}")]
|
|
public async Task<ActionResult<IEnumerable<StandardWorkTime>>> GetStandardWorkTimeByQuery005(string u, string l, string i)
|
|
{
|
|
IQueryable<StandardWorkTime> q = _context.StandardWorkTimes;
|
|
|
|
var strA = l.Split(",");
|
|
int[] array = new int[strA.Length];
|
|
for (int t = 0; t < strA.Length; t++) {
|
|
array[t] = int.Parse(strA[t]);
|
|
}
|
|
|
|
//LINQ的 IN:
|
|
var queryResult = from p in q
|
|
where(array).Contains(p.LineID)
|
|
//where (array).Contains(p.LineID)
|
|
select p;
|
|
|
|
queryResult = queryResult.Where(l => array.Contains(l.LineID));
|
|
if (u!="Null")
|
|
queryResult = queryResult.Where(p => p.UnitNo.Equals(u));
|
|
if(i!="Null")
|
|
queryResult = queryResult.Where(p => p.ItemNo == i);
|
|
//queryResult = queryResult.Where(p => p.LineID.ToString() == l);
|
|
|
|
var standardWorkTime = await q.ToListAsync();
|
|
|
|
if (standardWorkTime == null)
|
|
{
|
|
return NotFound();
|
|
}
|
|
foreach (var data in standardWorkTime)
|
|
{
|
|
data.LineInfo = _context.LineInfoes.Find(data.LineID);
|
|
data.Stations = _context.Stationses.Find(data.StationID);
|
|
}
|
|
|
|
return standardWorkTime;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 工單料號查詢
|
|
/// </summary>
|
|
/// <param name="id">工單料號</param>
|
|
/// <returns></returns>
|
|
[HttpGet("ByItemNo/{id}")]
|
|
public async Task<ActionResult<IEnumerable<StandardWorkTime>>> GetStandardWorkTimeByItemNo(string id)
|
|
{
|
|
IQueryable<StandardWorkTime> q = _context.StandardWorkTimes.Where(w => w.ItemNo == id.Trim().ToUpper());
|
|
return await q.ToListAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <param name="standardWorkTime"></param>
|
|
/// <returns></returns>
|
|
// PUT: api/StandardWorkTimes/5
|
|
// To protect from overposting attacks, enable the specific properties you want to bind to, for
|
|
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
|
|
[HttpPut("{id}")]
|
|
public async Task<ResultModel<StandardWorkTime>> PutStandardWorkTime(int id, [FromBody] List<StandardWorkTime> standardWorkTime)
|
|
{
|
|
|
|
ResultModel<StandardWorkTime> result = new ResultModel<StandardWorkTime>();
|
|
if (id != standardWorkTime[0].StandardID)
|
|
{
|
|
result.Success = false;
|
|
result.Msg = "序號錯誤";
|
|
return result;
|
|
}
|
|
|
|
standardWorkTime[0].UpdateDate = DateTime.Now;
|
|
_context.Entry(standardWorkTime[0]).State = EntityState.Modified;
|
|
|
|
try
|
|
{
|
|
await _context.SaveChangesAsync();
|
|
}
|
|
catch (DbUpdateConcurrencyException)
|
|
{
|
|
if (!StandardWorkTimeExists(id))
|
|
{
|
|
result.Success = false;
|
|
result.Msg = "序號不存在";
|
|
return result;
|
|
}
|
|
else
|
|
{
|
|
throw;
|
|
}
|
|
}
|
|
|
|
result.Success = true;
|
|
result.Msg = "OK";
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 新增资料
|
|
/// </summary>
|
|
/// <param name="standardWorkTime"></param>
|
|
/// <returns></returns>
|
|
// POST: api/StandardWorkTimes
|
|
// To protect from overposting attacks, enable the specific properties you want to bind to, for
|
|
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
|
|
[HttpPost]
|
|
public async Task<ResultModel<StandardWorkTime>> PostStandardWorkTime([FromBody] List<StandardWorkTime> standardWorkTime)
|
|
{
|
|
ResultModel<StandardWorkTime> result = new ResultModel<StandardWorkTime>();
|
|
Helper helper = new Helper(_context);
|
|
|
|
|
|
var q = standardWorkTime.Where(p => p.StandardID.Equals(0)).Select(q1 => new StandardWorkTime
|
|
{
|
|
StandardID = q1.StandardID,
|
|
UnitNo = q1.UnitNo,
|
|
LineID = q1.LineID,
|
|
ItemNo = q1.ItemNo,
|
|
OPCNT = q1.OPCNT,
|
|
FirstTime = q1.FirstTime,
|
|
TotalCT = q1.TotalCT,
|
|
CT = q1.CT,
|
|
MachineCT = q1.MachineCT,
|
|
Side = q1.Side,
|
|
StationID = q1.StationID,
|
|
CreateUserID = q1.UpdateUserID,
|
|
UpdateUserID = q1.UpdateUserID,
|
|
CreateDate = DateTime.Now,
|
|
UpdateDate = DateTime.Now
|
|
});
|
|
if (q.Count() > 0)
|
|
{
|
|
foreach (var data in q)
|
|
{
|
|
data.StandardID = helper.GetIDKey("STANDARD_WORKTIME_ID").Result;
|
|
var sid = data.StandardID;
|
|
_context.StandardWorkTimes.Add(data);
|
|
try
|
|
{
|
|
await _context.SaveChangesAsync();
|
|
result.Success = true;
|
|
result.Msg = "OK";
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
result.Success = false;
|
|
result.Msg = e.Message;
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
// DELETE: api/StandardWorkTimes/5
|
|
[HttpDelete("{id}")]
|
|
public async Task<ResultModel<StandardWorkTime>> DeleteStandardWorkTime(int id)
|
|
{
|
|
ResultModel<StandardWorkTime> result = new ResultModel<StandardWorkTime>();
|
|
|
|
var standardWorkTime = await _context.StandardWorkTimes.FindAsync(id);
|
|
if (standardWorkTime == null)
|
|
{
|
|
result.Success = false;
|
|
result.Msg = "序號不存在";
|
|
return result;
|
|
}
|
|
|
|
_context.StandardWorkTimes.Remove(standardWorkTime);
|
|
await _context.SaveChangesAsync();
|
|
|
|
result.Success = true;
|
|
result.Msg = "OK";
|
|
return result;
|
|
//var standardWorkTime = await _context.StandardWorkTimes.Where(p => p.StandardID == id).FirstOrDefaultAsync();
|
|
//if (standardWorkTime == null)
|
|
//{
|
|
// return NotFound();
|
|
//}
|
|
//
|
|
//_context.StandardWorkTimes.Remove(standardWorkTime);
|
|
//await _context.SaveChangesAsync();
|
|
//
|
|
//return standardWorkTime;
|
|
}
|
|
|
|
private bool StandardWorkTimeExists(int id)
|
|
{
|
|
return _context.StandardWorkTimes.Any(e => e.StandardID == id);
|
|
}
|
|
}
|
|
}
|
|
|