using System.Dynamic;
using MES.Service.Dto.service;
using MES.Service.Modes;
using MES.Service.service.QC;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace MESApplication.Controllers.QC;
[Route("api/[controller]")]
[ApiController]
public class XJController : ControllerBase
{
[HttpPost("getAll")]
public ResponseResult getAll([FromBody] JObject data)
{
var modify1Flag = Convert.ToInt32(data["modify1Flag"].ToString());
try
{
dynamic resultInfos = new ExpandoObject();
// var tbBillList =
// new XJService().getAll(modify1Flag);
// resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//getMaxReleaseNo
[HttpPost("getMaxReleaseNo")]
public ResponseResult getMaxReleaseNo()
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().getMaxReleaseNo();
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//getLine
[HttpPost("getLineAll")]
public ResponseResult getLineAll()
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().getLineAll();
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 获取工单
///
[HttpPost("getDaa001")]
public ResponseResult getDaa001([FromBody] JObject data)
{
var daa020 = data["daa020"].ToString();
var item = data["item"].ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().getDaa001(daa020, item);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 根据产线获取物料编码 lineNo
///
///
[HttpPost("getBoardItem")]
public ResponseResult getBoardItem([FromBody] JObject data)
{
var lineNo = data["lineNo"].ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().getBoardItem(lineNo);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//getItem
[HttpPost("getItem")]
public ResponseResult getItem([FromBody] JObject data)
{
var daa001 = data["daa001"].ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().getItem(daa001);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//setJYItem
[HttpPost("setJYItem")]
public ResponseResult setJYItem([FromBody] JObject data)
{
var itemNo = data["itemNo"].ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().setJYItem(itemNo);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//save
[HttpPost("save")]
public ResponseResult save([FromBody] XJDto xjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().save(xjDto);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("saveItem")]
public ResponseResult saveItem([FromBody] XJDto xjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().saveItem(xjDto);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//getPage
[HttpPost("getPage")]
public ResponseResult getPage([FromBody] XJPageResult queryObj)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().getPage(queryObj);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//getJYItem
[HttpPost("getJYItem")]
public ResponseResult getJYItem([FromBody] JObject data)
{
var pid = data["pid"]?.ToString();
var id = data["id"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().getJYItem(Convert.ToDecimal(pid),
Convert.ToDecimal(id));
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//getXjDetail02ById
[HttpPost("getXjDetail02ById")]
public ResponseResult getXjDetail02ById([FromBody] JObject data)
{
var id = data["id"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().getXjDetail02ById(Convert.ToDecimal(id));
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("SetQSItemDetail")]
public ResponseResult SetQSItemDetail([FromBody] QsQaItemXj02 detail)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new XJService();
var detail021 = tbBillList.SetQSItemDetail(detail);
resultInfos.tbBillList = detail021;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("UpdateQSItemDetail")]
public ResponseResult UpdateQSItemDetail(
[FromBody] QsQaItemXj02 detail)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new XJService();
var detail021 = tbBillList.UpdateQSItemDetail(detail);
resultInfos.tbBillList = detail021;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//getQSWorkno 初始化获取单据号
[HttpPost("getQSWorkno")]
public ResponseResult getQSWorkno([FromBody] JObject data)
{
var pid = data["pid"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new XJService();
var detail021 = tbBillList.getQSWorkno(Convert.ToDecimal(pid));
resultInfos.tbBillList = detail021;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//SaveItem
[HttpPost("SaveWorkNo")]
public ResponseResult SaveWorkNo([FromBody] XJDto data)
{
try
{
// 将单个数据转换为列表
// var dataList = new List { data.Worknos };
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().SaveWorkNo(data.worknos);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//removeXJ
[HttpPost("removeXJ")]
public ResponseResult removeXJ([FromBody] JObject data)
{
var id = data["id"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().removeXJ(Convert.ToDecimal(id));
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//saveRemarksGid
[HttpPost("saveRemarksGid")]
public ResponseResult saveRemarksGid([FromBody] XJDto rkjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().saveRemarksGid(rkjDto);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//saveRemarksPid
[HttpPost("saveRemarksPid")]
public ResponseResult saveRemarksPid([FromBody] XJDto rkjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().saveRemarksPid(rkjDto);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//saveRemarksById
[HttpPost("saveRemarksById")]
public ResponseResult saveRemarksById([FromBody] XJDto rkjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new XJService().saveRemarksById(rkjDto);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//FTPLIST
[HttpPost("ftpList")]
public async Task getFtpList([FromBody] JObject data)
{
var itemno = data["itemno"]?.ToString();
if (itemno == null || itemno == "") return new ResponseResult
{
status = 1,
message = "未找到该产品的文件信息",
data = "未找到该产品的文件信息"
};
var ftpAddress = "ftp://192.168.1.223:21";
var username = "administrator";
var password = "Rdyl8888";
var remotePath = "PQC/XJ/" + itemno;
try
{
dynamic resultInfos = new ExpandoObject();
var ftpFiles = new SJService().GetFtpFileList(ftpAddress, username, password, remotePath);
resultInfos.tbBillList = ftpFiles;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("download")]
public async Task DownloadFile([FromBody] JObject data)
{
var fileName = data["fileName"]?.ToString();
var itemno = data["itemno"]?.ToString();
var ftpAddress = "ftp://192.168.1.223:21";
var username = "administrator";
var password = "Rdyl8888";
var remotePath = "PQC/XJ/" + itemno;
try
{
byte[] fileData = new SJService().DownloadFtpFile(ftpAddress, username, password, $"{remotePath}/{fileName}"); // 拼接完整路径
// 生成临时访问 URL(示例逻辑)
var tempFileId = Guid.NewGuid().ToString();
// 将文件缓存到临时目录(实际项目需考虑清理机制)
var tempPath = Path.Combine(Path.GetTempPath(), tempFileId);
System.IO.File.WriteAllBytes(tempPath, fileData);
// 返回可直接访问的 URL
var baseUrl = $"{Request.Scheme}://{Request.Host}";
return Ok(new ResponseResult
{
status = 0,
message = "OK",
data = new
{
url = $"{baseUrl}/api/XJ/downloadTemp?fileId={tempFileId}&fileName={fileName}",
mimeType = GetMimeType(fileName)
}
});
}
catch (Exception ex)
{
return BadRequest(ResponseResult.ResponseError(ex));
}
}
private string GetMimeType(string fileName)
{
string mimeType = "application/octet-stream";
if (fileName.EndsWith(".jpg") || fileName.EndsWith(".jpeg"))
{
mimeType = "image/jpeg";
}
else if (fileName.EndsWith(".png"))
{
mimeType = "image/png";
}
else if (fileName.EndsWith(".gif"))
{
mimeType = "image/gif";
}
else if (fileName.EndsWith(".pdf"))
{
mimeType = "application/pdf";
}
else if (fileName.EndsWith(".doc") || fileName.EndsWith(".docx"))
{
mimeType = "application/msword";
}
else if (fileName.EndsWith(".xls") || fileName.EndsWith(".xlsx"))
{
mimeType = "application/vnd.ms-excel";
}
return mimeType;
}
[HttpGet("downloadTemp")]
public IActionResult DownloadTemp(string fileId, string fileName)
{
var tempPath = Path.Combine(Path.GetTempPath(), fileId);
if (!System.IO.File.Exists(tempPath))
{
return NotFound();
}
var fileBytes = System.IO.File.ReadAllBytes(tempPath);
return File(fileBytes, GetMimeType(fileName), fileName);
}
}