hao
2025-05-30 23a34e600fb4522aec09ad39b8a8ec2e008dcd51
退换料品质确认测试
已添加8个文件
291 ■■■■■ 文件已修改
.vs/slnx.sqlite 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/service/DocNoRequest.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/service/DocRequest.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/service/ReviewItem.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/Dto/service/ReviewRequest.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/service/QC/RetMatService.cs 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MES.Service/util/DataTableExtension.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StandardInterface/MESApplication/Controllers/QC/RetMatController.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/slnx.sqlite
Binary files differ
StandardInterface/MES.Service/Dto/service/DocNoRequest.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MES.Service.Dto.service
{
    public class DocNoRequest
    {
        public string DocNo { get; set; }
    }
}
StandardInterface/MES.Service/Dto/service/DocRequest.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MES.Service.Dto.service
{
    public class DocRequest
    {
        public string DocNo { get; set; }
        public string User { get; set; } // å¯é€‰ï¼Œä»… SaveReview ç”¨åˆ°
        public List<ReviewItem> Items { get; set; } // å¯é€‰ï¼Œä»… SaveReview ç”¨åˆ°
    }
}
StandardInterface/MES.Service/Dto/service/ReviewItem.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MES.Service.Dto.service
{
    public class ReviewItem
    {
        public string Material { get; set; }
        public string Reason { get; set; }
        public int ItemId { get; set; }
    }
}
StandardInterface/MES.Service/Dto/service/ReviewRequest.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MES.Service.Dto.service
{
    public class ReviewRequest
    {
        public string DocNo { get; set; }
        public string User { get; set; }
        public List<ReviewItem> Items { get; set; }
    }
}
StandardInterface/MES.Service/service/QC/RetMatService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
using MES.Service.DB;
using MES.Service.Dto.service;
using MES.Service.util;
using Newtonsoft.Json;
using SqlSugar;
using System.Data;
namespace MES.Service.service.QC
{
    public class RetMatService
    {
        public List<dynamic> GetAllDocs()
        {
            var db = SqlSugarHelper.GetInstance();
            string sql = @"
                SELECT THL_NO
                FROM MES_ITEM_THL
               -- WHERE JY_BS = 0 AND THL012 = 1
            ";
            var table = db.Ado.GetDataTable(sql);
            return table.ToDynamic();
        }
        public List<dynamic> GetHeader(string docNo)
        {
            var db = SqlSugarHelper.GetInstance();
            string sql = @"
                SELECT
                    a.THL001 AS moNo,
                    a.THL004 AS type,
                    s.ITEM_NO AS productCode,
                    d.DEPARTMENTNAME AS deptName,
                    TO_CHAR(a.THL011, 'yyyy-mm-dd hh24:mi:ss') AS createTime
                FROM MES_ITEM_THL a
                LEFT JOIN MES_ITEMS s ON a.ITEM_ID = s.ID
                LEFT JOIN WOMDAA a0 ON a.THL001 = a0.DAA001
                LEFT JOIN SYS_DEPARTMENT d ON a0.daa013 = d.ID
                WHERE a.THL_NO = :docNo
            ";
            var table = db.Ado.GetDataTable(sql, new SugarParameter("docNo", docNo));
            return table.ToDynamic();
        }
        public List<dynamic> GetDetailList(string docNo)
        {
            var db = SqlSugarHelper.GetInstance();
            string sql = @"
            SELECT
                s.ITEM_NO AS material,
                s.ITEM_MODEL AS spec,
                a.THLD005 AS qty,
                a.THLD014 AS reason,
                s.ID AS item_id
            FROM MES_ITEM_THL_DETAIL a
            LEFT JOIN MES_ITEM_THL b ON a.THLMID = b.ID
            LEFT JOIN MES_ITEMS s ON a.ITEM_ID = s.ID
            WHERE b.THL_NO = :docNo
        ";
            return db.Ado.GetDataTable(sql, new SugarParameter("docNo", docNo)).ToDynamic();
        }
        public void UpdateHeader(string docNo, string user)
        {
            var db = SqlSugarHelper.GetInstance();
            string sql = @"
                UPDATE MES_ITEM_THL
                SET JY_BS = 1,
                    JY_USER = :user,
                    JY_TIME = SYSDATE
                WHERE THL_NO = :docNo
            ";
            db.Ado.ExecuteCommand(sql,
                new SugarParameter("docNo", docNo),
                new SugarParameter("user", user)
            );
        }
/*        public void SaveReviewItem(string docNo, string itemNo, string reason)
        {
            var db = SqlSugarHelper.GetInstance();
            string sql = @"
                UPDATE MES_ITEM_THL_DETAIL
                SET THLD014 = :reason
                WHERE THLMID = (
                    SELECT ID FROM MES_ITEM_THL WHERE THL_NO = :docNo
                )
                AND ITEM_ID = (
                    SELECT ID FROM MES_ITEMS WHERE ITEM_NO = :itemNo
                )
            ";
            db.Ado.ExecuteCommand(sql,
                new SugarParameter("docNo", docNo),
                new SugarParameter("itemNo", itemNo),
                new SugarParameter("reason", reason)
            );
        }*/
        public void SaveReview(string docNo, string user, List<ReviewItem> items)
        {
            var db = SqlSugarHelper.GetInstance();
            string json = JsonConvert.SerializeObject(items); // åºåˆ—化为 JSON å­—符串
            foreach (ReviewItem item in items)
            {
                var parameters = new List<SugarParameter>
{
    new SugarParameter("pi_NO", docNo, System.Data.DbType.String),
    new SugarParameter("pi_user", user, System.Data.DbType.String),
    new SugarParameter("pi_item_ID", item.ItemId, System.Data.DbType.Decimal),
    new SugarParameter("pi_reason", item.Reason, System.Data.DbType.String)
};
                db.Ado.UseStoredProcedure()
                .ExecuteCommand("PRC_RET_MAT_AUDIT_ALL", parameters);
            }
        }
    }
}
StandardInterface/MES.Service/util/DataTableExtension.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Dynamic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MES.Service.util
{
    public static class DataTableExtension
    {
        public static List<dynamic> ToDynamic(this DataTable dt)
        {
            var list = new List<dynamic>();
            foreach (DataRow row in dt.Rows)
            {
                dynamic obj = new ExpandoObject();
                var dict = (IDictionary<string, object>)obj;
                foreach (DataColumn col in dt.Columns)
                    dict[col.ColumnName] = row[col];
                list.Add(obj);
            }
            return list;
        }
    }
}
StandardInterface/MESApplication/Controllers/QC/RetMatController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
using Microsoft.AspNetCore.Mvc;
using MES.Service.Dto.service;
using MES.Service.service.QC;
using MES.Service.util;
namespace MESApplication.Controllers.QC;
[Route("api/[controller]")]
[ApiController]
public class RetMatController : ControllerBase
{
    private readonly RetMatService _service = new();
    [HttpPost("GetAllDocs")]
    public ResponseResult GetAllDocs()
    {
        try
        {
            var result = _service.GetAllDocs();
            return new ResponseResult { status = 0, message = "OK", data = result };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("GetHeader")]
    public ResponseResult GetHeader([FromBody] DocNoRequest req)
    {
        try
        {
            var result = _service.GetHeader(req.DocNo).FirstOrDefault();
            return new ResponseResult { status = 0, message = "OK", data = result };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("GetList")]
    public ResponseResult GetList([FromBody] DocNoRequest req)
    {
        try
        {
            var result = _service.GetDetailList(req.DocNo);
            return new ResponseResult { status = 0, message = "OK", data = result };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    [HttpPost("SaveReview")]
    public ResponseResult SaveReview([FromBody] ReviewRequest req)
    {
        try
        {
            _service.SaveReview(req.DocNo, req.User, req.Items);
            return new ResponseResult { status = 0, message = "审核成功" };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}