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 SixLabors.ImageSharp.Drawing;
|
using SqlSugar;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Dynamic;
|
using DbType = System.Data.DbType;
|
|
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;
|
//================= 判断检验合格生成巡检单 =========
|
var sqlPass1 = $@"
|
SELECT
|
IS_PASS
|
FROM QS_ITEM_IPI_REQ
|
WHERE ID = '{rkjDto.gid}'
|
";
|
|
var dtPass1 = SQLHelper.ExecuteQuery(sqlPass1);
|
|
var sqlPass3 = $@"select C.ID from QS_ITEM_IPI_REQ A
|
LEFT JOIN V_MES_SJ B on b.BILL_NO = A.BILL_NO
|
LEFT JOIN WOMDAA C on C.DAA001 = B.DAA001
|
WHERE A.ID = '{rkjDto.gid}'
|
";
|
|
var dtPass3 = SQLHelper.ExecuteQuery(sqlPass3);
|
|
var value4 = dtPass3.Rows[0][0];
|
int sqlPass2 = Convert.ToInt32(value4);
|
|
|
bool isPass = false;
|
|
if (dtPass1 != null && dtPass1.Rows.Count > 0)
|
{
|
var value = dtPass1.Rows[0]["IS_PASS"]?.ToString();
|
|
// 判断为合格(IS_PASS = 1)
|
if (value == "1")
|
{
|
isPass = true;
|
}
|
}
|
|
// 如果合格,执行存储过程
|
if (isPass)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
|
// ===== 输出参数 =====
|
var outFlag = new SugarParameter("P_FLAG", null,
|
DbType.Int32, ParameterDirection.Output, 10);
|
|
var outText = new SugarParameter("P_TEXT", null,
|
DbType.String, ParameterDirection.Output, 4000);
|
|
// ===== 输入参数 =====
|
var parameters = new List<SugarParameter>
|
{
|
new SugarParameter("P_ID", sqlPass2, DbType.Int64, ParameterDirection.Input),
|
new SugarParameter("P_USER", rkjDto.userNo, DbType.String, ParameterDirection.Input),
|
new SugarParameter("P_ISH", 0, DbType.Int64, ParameterDirection.Input),
|
|
// 输出参数必须带上
|
outFlag,
|
outText
|
};
|
|
// ===== 执行存储过程 =====
|
db.Ado.ExecuteCommand(
|
"BEGIN PRC_XJ_GENERATE(:P_ID, :P_USER, :P_ISH, :P_FLAG, :P_TEXT); END;",
|
parameters);
|
|
// ===== 读取输出参数并转换成 ResponseResult =====
|
var result = new ResponseResult
|
{
|
status = outFlag.Value?.ToString() == "1" ? 1 : 0, // 0 表示成功,1 表示失败
|
message = outText.Value?.ToString()
|
};
|
|
return result;
|
}
|
return new ResponseResult
|
{
|
status = 0,
|
message = "OK",
|
data = resultInfos
|
};
|
}
|
|
catch (Exception ex)
|
{
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
/// 获取一致性核对项目
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
|
/// <summary>
|
/// 保存一致性核对项目
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
[HttpPost("saveYzxItem")]
|
public ResponseResult saveYzxItem([FromBody] JObject data)
|
{
|
var id = data["id"]?.ToString();
|
var dataDt = data["data"]?.ToString();
|
var dt = JsonConvert.DeserializeObject<DataTable>(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);
|
}
|
}
|
/// <summary>
|
/// 扫码项目获取
|
/// </summary>
|
/// <param name="mid"></param>
|
/// <returns></returns>
|
[HttpPost("GetList")]
|
public ResponseResult GetList([FromBody] JObject data)
|
{
|
var mid = data["mid"];
|
var db = SqlSugarHelper.GetInstance();
|
var list = db.Queryable<MES_SJ_SCAN_ITEM_CK>()
|
.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
|
};
|
|
}
|
/// <summary>
|
/// 扫码项目保存
|
/// </summary>
|
/// <param name="dto"></param>
|
/// <returns></returns>
|
[HttpPost("SaveSn")]
|
public ResponseResult SaveSn([FromBody] ScanItemSaveDto dto)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
foreach (var item in dto.Items)
|
{
|
db.Updateable<MES_SJ_SCAN_ITEM_CK>()
|
.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<ScanItemDto> Items { get; set; }
|
}
|
|
public class ScanItemDto
|
{
|
public decimal Id { get; set; }
|
public string SnNo { get; set; }
|
}
|
|
/// <summary>
|
/// 获取所有检验员信息
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
|
/// <summary>
|
/// 获取首检单所有不良描述
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
|
}
|