| | |
| | | using MES.Service.Dto.service; |
| | | 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; |
| | | |
| | |
| | | |
| | | |
| | | [HttpPost("GetPage")] |
| | | public ResponseResult GetPage([FromBody] SJPageResult queryObj) |
| | | public ResponseResult GetPage([FromBody] SJPageResult2 queryObj) |
| | | { |
| | | try |
| | | { |
| | | dynamic resultInfos = new ExpandoObject(); |
| | | var tbBillList = |
| | | new SJService().getPage(queryObj); |
| | | resultInfos.tbBillList = tbBillList; |
| | | var (item, totalCount) = new SJService().getPage(queryObj); |
| | | resultInfos.tbBillList = item; |
| | | return new ResponseResult |
| | | { |
| | | status = 0, |
| | | message = "OK", |
| | | data = resultInfos |
| | | data = resultInfos, |
| | | TotalCount = totalCount |
| | | }; |
| | | } |
| | | 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 sqlpass6 = $@"update QS_ITEM_IPI_REQ set FSUBMIT1 = 1 where ID = '{rkjDto.gid}' "; |
| | | var dtPass7 = SQLHelper.ExecuteQuery(sqlpass6); |
| | | |
| | | |
| | | |
| | | |
| | | 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; |
| | | } |
| | | else |
| | | { |
| | | var sqlpass4 = $@"update QS_ITEM_IPI_REQ set FSUBMIT = 0 where ID = '{rkjDto.gid}' "; |
| | | |
| | | var dtPass5 = SQLHelper.ExecuteQuery(sqlpass4); |
| | | } |
| | | } |
| | | |
| | | // 如果合格,执行存储过程 |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | } |