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 CqjController : ControllerBase
{
///
/// 获取超期检验列表(分页)
///
/// 查询参数
/// 分页数据
[HttpPost("getPage")]
public ResponseResult getPage([FromBody] XJPageResult queryObj)
{
try
{
dynamic resultInfos = new ExpandoObject();
var (item, totalCount) = new CqjService().GetPage(queryObj);
resultInfos.tbBillList = item;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos,
TotalCount = totalCount
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 调用存储过程,获取检验项目
///
/// 包含itemNo、quantity、releaseNo
/// 执行结果
[HttpPost("setJYItem")]
public ResponseResult setJYItem([FromBody] JObject data)
{
var itemNo = Convert.ToDecimal(data["itemNo"].ToString());
var quantity = Convert.ToDecimal(data["quantity"].ToString());
var releaseNo = data["releaseNo"].ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var result = new CqjService().SetItems(itemNo, quantity, releaseNo);
resultInfos.tbBillList = result;
// 根据存储过程返回结果判断是否成功
var resultCode = result[0];
var resultMessage = result[1];
if (resultCode == "0")
{
return new ResponseResult
{
status = 0,
message = resultMessage,
data = resultInfos
};
}
else
{
return new ResponseResult
{
status = 1,
message = resultMessage,
data = resultInfos
};
}
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 获取检验项目列表
///
/// 包含releaseNo、id
/// 检验项目列表
[HttpPost("getJYItem")]
public ResponseResult getJYItem([FromBody] JObject data)
{
var id = data["id"]?.ToString();
var releaseNo = data["releaseNo"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new CqjService().GetItems(releaseNo,
string.IsNullOrEmpty(id) ? null : Convert.ToDecimal(id));
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 删除超期检验单
///
/// 包含releaseNo
/// 执行结果
[HttpPost("removeCqj")]
public ResponseResult removeCqj([FromBody] JObject data)
{
var releaseNo = data["releaseNo"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new CqjService().RemoveCqj(releaseNo);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存不良描述到主表
///
/// 包含gid、releaseNo、fngDesc
/// 执行结果
[HttpPost("saveRemarksGid")]
public ResponseResult saveRemarksGid([FromBody] JObject data)
{
var gid = Convert.ToDecimal(data["gid"].ToString());
var releaseNo = data["releaseNo"]?.ToString();
var fngDesc = data["fngDesc"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new CqjService().SaveRemarksGid(gid, releaseNo, fngDesc);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存备注到主表
///
/// 包含gid、releaseNo、lotNo1
/// 执行结果
[HttpPost("saveLotNo1")]
public ResponseResult saveLotNo1([FromBody] JObject data)
{
var gid = Convert.ToDecimal(data["gid"].ToString());
var releaseNo = data["releaseNo"]?.ToString();
var lotNo1 = data["lotNo1"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new CqjService().SaveLotNo1(gid, releaseNo, lotNo1);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存不良描述到子表
///
/// 包含pid、funit
/// 执行结果
[HttpPost("saveRemarksPid")]
public ResponseResult saveRemarksPid([FromBody] JObject data)
{
var pid = Convert.ToDecimal(data["pid"].ToString());
var funit = data["funit"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new CqjService().SaveRemarksPid(pid, funit);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存备注到子表
///
/// 包含pid、meom
/// 执行结果
[HttpPost("saveMeom")]
public ResponseResult saveMeom([FromBody] JObject data)
{
var pid = Convert.ToDecimal(data["pid"].ToString());
var meom = data["meom"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new CqjService().SaveMeom(pid, meom);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 新增/查询检验详情记录
///
/// 包含mainId、releaseNo、fstand、fcheckResu、LastupdateBy、count(新增时)或id、releaseNo(查询时)
/// 执行结果
[HttpPost("SetQSItemDetail")]
public ResponseResult SetQSItemDetail([FromBody] JObject data)
{
try
{
dynamic resultInfos = new ExpandoObject();
// 判断是新增还是查询
if (data.ContainsKey("fcheckResu") && data["fcheckResu"] != null)
{
// 新增操作 - 按照LLJ模式,使用对象接收参数
var detail = new MesCqItemsDetectDetail12
{
MainId = Convert.ToDecimal(data["mainId"].ToString()),
ReleaseNo = data["releaseNo"]?.ToString(),
Fstand = data["fstand"]?.ToString(),
FcheckResu = data["fcheckResu"]?.ToString(),
LastupdateBy = data["LastupdateBy"]?.ToString(), // 使用LastupdateBy而不createBy
count = data.ContainsKey("count") && data["count"] != null
? Convert.ToInt32(data["count"].ToString())
: 1 // 默认为1
};
var tbBillList = new CqjService().SetQSItemDetail(detail);
resultInfos.tbBillList = tbBillList;
}
else
{
// 查询操作
var id = Convert.ToDecimal(data["id"].ToString());
var releaseNo = data["releaseNo"]?.ToString();
var tbBillList = new CqjService().GetQSItemDetail(id, releaseNo);
resultInfos.tbBillList = tbBillList;
}
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 更新检验详情记录
///
/// 包含id、mainId、releaseNo、fstand、fcheckResu、updateBy
/// 执行结果
[HttpPost("UpdateQSItemDetail")]
public ResponseResult UpdateQSItemDetail([FromBody] JObject data)
{
var id = Convert.ToDecimal(data["id"].ToString());
var mainId = Convert.ToDecimal(data["mainId"].ToString());
var releaseNo = data["releaseNo"]?.ToString();
var fstand = data["fstand"]?.ToString();
var fcheckResu = data["fcheckResu"]?.ToString();
var updateBy = data["updateBy"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new CqjService().UpdateQSItemDetail(id, mainId, releaseNo, fstand, fcheckResu, updateBy);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 检验提交
///
/// 包含userNo、releaseNo
/// 执行结果
[HttpPost("submitInspection")]
public ResponseResult submitInspection([FromBody] JObject data)
{
var userNo = data["userNo"]?.ToString();
var releaseNo = data["releaseNo"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var result = new CqjService().SubmitInspection(userNo, releaseNo);
resultInfos.tbBillList = result;
// 根据存储过程返回结果判断是否成功
var resultCode = result[0];
var resultMessage = result[1];
if (resultCode == "0")
{
return new ResponseResult
{
status = 0,
message = resultMessage,
data = resultInfos
};
}
else
{
return new ResponseResult
{
status = 1,
message = resultMessage,
data = resultInfos
};
}
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 处理OPTIONS请求(用于跨域预检)
///
[HttpOptions("{**any}")]
public IActionResult HandleOptions()
{
return Ok();
}
}