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(); } }