using MES.Service.DB;
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;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Data;
using System.Dynamic;
namespace MESApplication.Controllers.QC;
[Route("api/[controller]")]
[ApiController]
public class SJController : ControllerBase
{
[HttpPost("GetMaxBillNo")]
public ResponseResult GetMaxBillNo()
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new SJService().getMaxBillNo();
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("GetPage")]
public ResponseResult GetPage([FromBody] SJPageResult queryObj)
{
try
{
dynamic resultInfos = new ExpandoObject();
var (item, totalCount) = new SJService().getPage(queryObj);
resultInfos.tbBillList = item;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos,
TotalCount = totalCount
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//SetQSItems
[HttpPost("SetQSItems")]
public ResponseResult SetQSItems([FromBody] JObject data)
{
var itemNo = data["itemNo"].ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new SJService();
var detail021 = tbBillList.SetQSItems(itemNo);
resultInfos.tbBillList = detail021;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("Save")]
public ResponseResult Save([FromBody] QsItem item)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new SJService();
var detail021 = tbBillList.Save(item);
resultInfos.tbBillList = detail021;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//SaveItem
[HttpPost("SaveItem")]
public ResponseResult SaveItem([FromBody] QsItem item)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new SJService();
var detail021 = tbBillList.SaveItem(item);
resultInfos.tbBillList = detail021;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//getQSItems
[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 SJService();
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("SetQSItemDetail")]
public ResponseResult SetQSItemDetail([FromBody] QsItemIpiItemDetail detail)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new SJService();
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("getQSItemDetail")]
public ResponseResult getQSItemDetail([FromBody] JObject data)
{
var pid = data["pid"]?.ToString();
var gid = data["gid"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new SJService();
var detail021 = tbBillList.getQSItemDetail(Convert.ToDecimal(pid),
Convert.ToDecimal(gid));
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] QsItemIpiItemDetail detail)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList = new SJService();
var detail021 = tbBillList.UpdateQSItemDetail(detail);
resultInfos.tbBillList = detail021;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//saveRemarksGid
[HttpPost("saveRemarksGid")]
public ResponseResult saveRemarksGid([FromBody] QsItem rkjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new SJService().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] QsItem rkjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new SJService().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] QsItem rkjDto)
{
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new SJService().saveRemarksById(rkjDto);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//removeSJ
[HttpPost("removeSJ")]
public ResponseResult removeSJ([FromBody] JObject data)
{
var id = data["id"]?.ToString();
try
{
dynamic resultInfos = new ExpandoObject();
var tbBillList =
new SJService().removeXJ(Convert.ToDecimal(id));
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
//IqcQaSubmit
[HttpPost("SJQaSubmit")]
public ResponseResult SJQaSubmit(LLJDto rkjDto)
{
try
{
OracleSQLHelper SQLHelper = new();
//------------------ SN扫码校验 ------------------
var sql1 =
@"select SCAN_ITEM
from ZMZ_TEST.MES_SJ_SCAN_ITEM_CK
where mid='" + rkjDto.gid + "' and sn_no is null";
var dataTable1 = SQLHelper.ExecuteQuery(sql1);
string msg = "";
for (var i = 0; i < dataTable1.Rows.Count; i++)
{
msg += "【" + dataTable1.Rows[i]["SCAN_ITEM"].ToString() + "】";
}
if (!string.IsNullOrEmpty(msg))
{
return new ResponseResult
{
status = 1,
message = msg + "未进行SN扫码确认!",
data = ""
};
}
//------------------ 图像一致性校验 ------------------
var msg1 = new SJService().YzxImgVerify(rkjDto.gid.ToString());
if (msg1[0] == "1")
{
return new ResponseResult
{
status = int.Parse(msg1[0]),
message = msg1[1],
data = ""
};
}
//------------------ 不合格图片是否上传校验 ------------------
var sql2 =
@"select A.id, A.PROJ_NAME, B.id as id2
from QS_ITEM_IPI_ITEM A
left join MES_QS_IMAGE B on 777 || A.ID = B.FID
where A.PID = '" + rkjDto.gid + @"'
and B.id is null
and IS_PASS = 0";
var dt2 = SQLHelper.ExecuteQuery(sql2);
if (dt2.Rows.Count > 0)
{
string err = "";
for (int i = 0; i < dt2.Rows.Count; i++)
{
err += "【" + dt2.Rows[i]["PROJ_NAME"].ToString() + "】";
}
return new ResponseResult
{
status = 1,
message = err + "不合格图片未上传!",
data = ""
};
}
//------------------ 必填项图片是否上传校验 ------------------
var sql3 =
@"select A.id, A.PROJ_NAME, B.id as id2
from QS_ITEM_IPI_ITEM A
left join MES_QS_IMAGE B on 777 || A.ID = B.FID
where A.PID = '" + rkjDto.gid + @"'
and B.id is null
and UP_FILE = 1";
var dt3 = SQLHelper.ExecuteQuery(sql3);
if (dt3.Rows.Count > 0)
{
string err = "";
for (int i = 0; i < dt3.Rows.Count; i++)
{
err += "【" + dt3.Rows[i]["PROJ_NAME"].ToString() + "】";
}
return new ResponseResult
{
status = 1,
message = err + "必填项图片未上传!",
data = ""
};
}
//------------------ 新增校验:检查是否存在未完成(IS_PASS is null) ------------------
var sqlPass =
@"select ID, PROJ_NAME
from QS_ITEM_IPI_ITEM
where PID = '" + rkjDto.gid + @"'
and IS_PASS is null";
var dtPass = SQLHelper.ExecuteQuery(sqlPass);
if (dtPass.Rows.Count > 0)
{
string err = "";
for (int i = 0; i < dtPass.Rows.Count; i++)
{
err += "【" + dtPass.Rows[i]["PROJ_NAME"].ToString() + "】";
}
return new ResponseResult
{
status = 1,
message = err + "项目未完成,不允许提交检验!",
data = ""
};
}
//------------------ 主业务逻辑:提交 ------------------
dynamic resultInfos = new ExpandoObject();
var tbBillList = new SJService().SJQaSubmit(rkjDto);
resultInfos.tbBillList = tbBillList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 获取一致性核对项目
///
///
///
[HttpPost("getYzxItem")]
public ResponseResult getYzxItem([FromBody] JObject data)
{
var id = data["id"]?.ToString();
try
{
var tbBillList = new SJService().getYzxBDlist(id);
return new ResponseResult
{
status = 0,
message = "OK",
data = tbBillList
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 保存一致性核对项目
///
///
///
[HttpPost("saveYzxItem")]
public ResponseResult saveYzxItem([FromBody] JObject data)
{
var id = data["id"]?.ToString();
var dataDt = data["data"]?.ToString();
var dt = JsonConvert.DeserializeObject(dataDt);
try
{
if (!dt.Columns.Contains("id"))
{
return new ResponseResult
{
status = 1,
message = "请先选择数据再保存!",
data = "请先选择数据再保存!"
};
}
new SJService().saveYzxBDlist(id, dt);
var msg = new SJService().YzxImgVerify(id);
return new ResponseResult
{
status = int.Parse(msg[0]),
message = msg[1],
data = ""
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 扫码项目获取
///
///
///
[HttpPost("GetList")]
public ResponseResult GetList([FromBody] JObject data)
{
var mid = data["mid"];
var db = SqlSugarHelper.GetInstance();
var list = db.Queryable()
.Where(x => x.MID == (long)mid)
.Select(x => new {
id = x.ID,
scanItem = x.SCAN_ITEM,
snNo = x.SN_NO
})
.ToList();
return new ResponseResult
{
status = int.Parse("0"),
message = "0",
data = list
};
}
///
/// 扫码项目保存
///
///
///
[HttpPost("SaveSn")]
public ResponseResult SaveSn([FromBody] ScanItemSaveDto dto)
{
var db = SqlSugarHelper.GetInstance();
foreach (var item in dto.Items)
{
db.Updateable()
.SetColumns(x => x.SN_NO == item.SnNo)
.Where(x => x.ID == item.Id)
.ExecuteCommand();
}
return new ResponseResult
{
status = int.Parse("0"),
message = "ok",
data = ""
};
}
public class ScanItemSaveDto
{
public decimal Mid { get; set; }
public List Items { get; set; }
}
public class ScanItemDto
{
public decimal Id { get; set; }
public string SnNo { get; set; }
}
///
/// 获取所有检验员信息
///
///
///
[HttpPost("getAllInspectors")]
public ResponseResult getAllInspectors([FromBody] JObject data)
{
try
{
var tbBillList = new SJService().getAllInspectors();
return new ResponseResult
{
status = 0,
message = "OK",
data = tbBillList
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
[HttpPost("SaveCheckBy")]
public ResponseResult SaveCheckBy([FromBody] JObject data)
{
try
{
var NewStaffName = data["NewStaffName"].ToString();
var userID = data["userID"].ToString();
var releaseNo = data["releaseNo"].ToString();
var NewStaffUserID = data["NewStaffUserID"].ToString();
var msg =
new SJService().SaveCheckBy(NewStaffUserID, userID, releaseNo);
return new ResponseResult
{
status = int.Parse(msg[0]),
message = msg[1],
data = msg[1]
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 获取首检单所有不良描述
///
///
///
[HttpPost("getQSBlmsItem")]
public ResponseResult getQSBlmsItem([FromBody] JObject data)
{
var id = data["id"]?.ToString();
try
{
var tbBillList = new SJService().getBlmsItem(id);
return new ResponseResult
{
status = 0,
message = "OK",
data = tbBillList
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
}