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 THJController : ControllerBase
{
[HttpPost("getPage")]
public ResponseResult GetPage([FromBody] THJPageResult queryObj)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new THJService().getPage(queryObj);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("getMaxReleaseNo")]
public ResponseResult GetMaxReleaseNo()
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new THJService().getMaxReleaseNo();
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("getQSItems")]
public ResponseResult GetQSItems([FromBody] JObject data)
{
var pid = data["pid"]?.ToString();
var id = data["id"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new THJService();
var detail021 = tbBillList.getQSItems(Convert.ToDecimal(pid), Convert.ToDecimal(id));
resultInfos.tbBillList = detail021;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("saveItem")]
public ResponseResult SaveItem([FromBody] THJDto thjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new THJService().saveItem(thjDto);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("submitTHJResult")]
public ResponseResult SubmitTHJResult([FromBody] JObject data)
{
try
{
var gid = Convert.ToDecimal(data["gid"]?.ToString());
var userNo = data["userNo"]?.ToString();
if (gid <= 0)
{
return new ResponseResult
{
status = 1,
message = "检验单ID不能为空",
data = null
};
}
if (string.IsNullOrEmpty(userNo))
{
return new ResponseResult
{
status = 1,
message = "操作人不能为空",
data = null
};
}
var result = new THJService().SubmitTHJResult(gid, userNo);
if (result)
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = new { success = true, message = "提交成功" };
return new ResponseResult
{
status = 0,
message = "提交成功",
data = resultInfos
};
}
else
{
return new ResponseResult
{
status = 1,
message = "提交失败",
data = null
};
}
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("getReturnwareInfo")]
public ResponseResult GetReturnwareInfo([FromBody] JObject data)
{
try
{
var returnType = data["returnType"]?.ToString();
var returnNo = data["returnNo"]?.ToString();
if (string.IsNullOrEmpty(returnType) || string.IsNullOrEmpty(returnNo))
{
return new ResponseResult
{
status = 1,
message = "退货单别和退货单号不能为空",
data = null
};
}
dynamic resultInfos = new ExpandoObject();
var tbBillList = new THJService().getReturnwareInfo(returnType, returnNo);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("getReturnDetails")]
public ResponseResult GetReturnDetails([FromBody] JObject data)
{
try
{
var pid = data["pid"]?.ToString();
if (string.IsNullOrEmpty(pid))
{
return new ResponseResult
{
status = 1,
message = "检验单ID不能为空",
data = null
};
}
dynamic resultInfos = new ExpandoObject();
var tbBillList = new THJService().getReturnDetails(pid);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("setInspectItem")]
public ResponseResult SetInspectItem([FromBody] JObject data)
{
try
{
var gid = data["gid"]?.ToString();
var updateBy = data["updateBy"]?.ToString() ?? "系统";
if (string.IsNullOrEmpty(gid))
{
return new ResponseResult
{
status = 1,
message = "检验单ID不能为空",
data = null
};
}
dynamic resultInfos = new ExpandoObject();
var tbBillList = new THJService().setInspectItem(gid, updateBy);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 测试接口 - 验证基本功能
///
[HttpPost("testConnection")]
public ResponseResult TestConnection()
{
try
{
return new ResponseResult
{
status = 0,
message = "连接正常",
data = new { timestamp = DateTime.Now }
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 根据ID获取检验项目详情
///
[HttpPost("getThjDetail02ById")]
public ResponseResult GetThjDetail02ById([FromBody] JObject data)
{
try
{
var id = Convert.ToDecimal(data["id"]);
var result = new THJService().getThjDetail02ById(id);
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = result;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 设置检验项目详情
///
[HttpPost("SetQSItemDetail")]
public ResponseResult SetQSItemDetail([FromBody] JObject data)
{
try
{
var pid = Convert.ToDecimal(data["pid"]);
var gid = Convert.ToDecimal(data["gid"]);
var fstand = data["fstand"]?.ToString();
var fcheckResu = data["fcheckResu"]?.ToString();
var updateBy = data["updateBy"]?.ToString();
var count = Convert.ToInt32(data["count"]);
var result = new THJService().SetQSItemDetail(pid, gid, fstand, fcheckResu, updateBy, count);
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = result;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 更新检验项目详情
///
[HttpPost("UpdateQSItemDetail")]
public ResponseResult UpdateQSItemDetail([FromBody] JObject data)
{
try
{
// 安全地转换decimal参数,处理NULL值
if (!decimal.TryParse(data["id"]?.ToString(), out decimal id))
{
return new ResponseResult
{
status = 1,
message = "检验结果ID不能为空或格式不正确",
data = null
};
}
if (!decimal.TryParse(data["pid"]?.ToString(), out decimal pid))
{
return new ResponseResult
{
status = 1,
message = "检验项目ID不能为空或格式不正确",
data = null
};
}
if (!decimal.TryParse(data["gid"]?.ToString(), out decimal gid))
{
return new ResponseResult
{
status = 1,
message = "检验单ID不能为空或格式不正确",
data = null
};
}
var fstand = data["fstand"]?.ToString();
var fcheckResu = data["fcheckResu"]?.ToString();
var updateBy = data["updateBy"]?.ToString();
var result = new THJService().UpdateQSItemDetail(id, pid, gid, fstand, fcheckResu, updateBy);
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = result;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存检验项目备注
///
[HttpPost("saveRemarksPid")]
public ResponseResult SaveRemarksPid([FromBody] JObject data)
{
try
{
var pid = Convert.ToDecimal(data["pid"]);
var remarks = data["remarks"]?.ToString();
var result = new THJService().saveRemarksPid(pid, remarks);
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = result;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 获取退货单列表
///
[HttpPost("getReturnOrders")]
public ResponseResult GetReturnOrders()
{
try
{
var result = new THJService().getReturnOrders();
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = result;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存退货明细
///
[HttpPost("SaveReturnDetails")]
public ResponseResult SaveReturnDetails([FromBody] JObject data)
{
try
{
var returnDetails = data["returnDetails"]?.ToString();
var result = new THJService().SaveReturnDetails(returnDetails);
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = result;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存检验项目
///
[HttpPost("saveInspectItem")]
public ResponseResult SaveInspectItem([FromBody] JObject data)
{
try
{
var gid = data["gid"]?.ToString();
var items = data["items"]?.ToString();
var userNo = data["userNo"]?.ToString();
var result = new THJService().saveInspectItem(gid, items, userNo);
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = result;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存检验单备注(不合格描述)
///
[HttpPost("saveRemarksGid")]
public ResponseResult SaveRemarksGid([FromBody] JObject data)
{
try
{
var gid = Convert.ToDecimal(data["gid"]?.ToString());
var remarks = data["remarks"]?.ToString();
var result = new THJService().saveRemarksGid(gid, remarks);
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = result;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 通过存储过程提交检验结果
///
[HttpPost("submitTHJResultByProcedure")]
public ResponseResult SubmitTHJResultByProcedure([FromBody] JObject data)
{
try
{
var releaseNo = data["releaseNo"]?.ToString();
var userNo = data["userNo"]?.ToString();
if (string.IsNullOrEmpty(releaseNo))
{
return new ResponseResult
{
status = 1,
message = "检验单号不能为空",
data = null
};
}
if (string.IsNullOrEmpty(userNo))
{
return new ResponseResult
{
status = 1,
message = "操作人不能为空",
data = null
};
}
var result = new THJService().SubmitTHJResultByProcedure(releaseNo, userNo);
if (result.success)
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = new { success = true, message = result.message };
return new ResponseResult
{
status = 0,
message = result.message,
data = resultInfos
};
}
else
{
return new ResponseResult
{
status = 1,
message = result.message,
data = null
};
}
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
}