53c7de340f55ab0c917a03d54d883b4a8082f42d..d016d7ff02586fb9535baef4916cd339e18c7867
17 小时以前 cdk
增加新称重后端
d016d7 对比 | 目录
17 小时以前 cdk
供应商分数获取调整
383397 对比 | 目录
17 小时以前 cdk
获取BOM参数调整
02b26b 对比 | 目录
已修改5个文件
180 ■■■■■ 文件已修改
Controllers/Wom/WomdaaController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesSuppSc.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/ErpBOMManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesSuppScManager.cs 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Wom/WomdaaManager.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Wom/WomdaaController.cs
@@ -559,6 +559,27 @@
        }
    }
    //新称重页面,暂时不用
    [HttpPost("GetWeightByXt_new")]
    public ResponseResult GetWeightByXt_new(dynamic query)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.GetWeightByXt_new(query);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    /// 现场收料获取可选工单信息
entity/MesSuppSc.cs
@@ -22,3 +22,26 @@
}
[SugarTable("MES_SUPPSCORE_DETAIL")]
public class MesSuppScDetail
{
    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
    public Guid ID { get; set; }
    // 外键关联主表 MES_SUPPSCORE.ID
    [SugarColumn(ColumnName = "PID")]
    public Guid PID { get; set; }
    // 项目一级(xm1)
    [SugarColumn(ColumnName = "XM1")]
    public string? XM1 { get; set; }
    // 项目二级(xm2)
    [SugarColumn(ColumnName = "XM2")]
    public string? XM2 { get; set; }
    // 得分(dykhdf)
    [SugarColumn(ColumnName = "DYKHDF")]
    public decimal? DYKHDF { get; set; }
}
service/ErpBOMManager.cs
@@ -61,7 +61,7 @@
        //查询字段集合,即返回哪些数据,不能为空,根据不同业务单据填写不同的字段名,以下仅为示例
        //string fieldKeys = "FCod,FFileId,FRelevantObject";
        //string FilterString = "FID='-2146304'";
        string fieldKeys = "FITEMPPROPERTY ,FMATERIALID  ,FITEMNAME ,FTreeEntity_FENTRYID ,FCHILDITEMNAME ,FNUMERATOR , FDENOMINATOR";
        string fieldKeys = "FITEMPPROPERTY ,FMATERIALID  ,FITEMNAME ,FMATERIALIDCHILD ,FCHILDITEMNAME ,FNUMERATOR , FDENOMINATOR";
        var filterString = new[]
                            {
                                new
service/Warehouse/MesSuppScManager.cs
@@ -1,5 +1,4 @@

using Kingdee.CDP.WebApi.SDK;
using Kingdee.CDP.WebApi.SDK;
using MES.Service.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
@@ -11,6 +10,7 @@
using Newtonsoft.Json.Linq;
using SqlSugar;
using System.Text;
using System.Net.Http;
namespace MES.Service.service.Warehouse;
@@ -20,7 +20,7 @@
    private const string SourceUrl = "https://qixizhaopin.modaniot.com:8443/wetchat/ToGSMesServlet?password=gsmes";
    /// <summary>
    /// 从指定网址读取 JSON 数据并保存到 MES_SUPPSCORE 表
    /// 从指定网址读取 JSON 数据并保存到 MES_SUPPSCORE(主)和 MES_SUPPSCORE_DETAIL(子)表
    /// </summary>
    public bool FetchAndSaveFromUrl()
    {
@@ -28,7 +28,6 @@
        try
        {
            using var http = new HttpClient();
            // 可根据需要设置超时
            http.Timeout = TimeSpan.FromSeconds(30);
            json = http.GetStringAsync(SourceUrl).Result;
        }
@@ -54,35 +53,81 @@
        if (data == null || data.Count == 0)
            throw new Exception("JSON 中未包含 data 或 data 为空");
        var list = new List<MesSuppSc>();
        var mains = new List<MesSuppSc>();
        var details = new List<MesSuppScDetail>();
        foreach (var item in data)
        {
            var rq = item["rq"]?.ToString();
            var gysmc = item["gysmc"]?.ToString();
            var zf = item["zf"]?.ToString();
            var xmdfStr = item["xmdf"]?.ToString();
            decimal? zfDec = null;
            if (!string.IsNullOrWhiteSpace(zf) && decimal.TryParse(zf, out var tmp))
                zfDec = tmp;
            list.Add(new MesSuppSc
            var mainId = Guid.NewGuid();
            mains.Add(new MesSuppSc
            {
                ID = Guid.NewGuid(),
                SuppDate = rq,
                ID = mainId,
                SuppDate = null, // 若 JSON 包含日期字段,可在此填充
                SuppName = gysmc,
                SuppNum = zfDec
            });
            // 解析子表 xmdf 字符串(xmdf 本身是一个 JSON 字符串)
            if (!string.IsNullOrWhiteSpace(xmdfStr))
            {
                try
                {
                    var subArr = JArray.Parse(xmdfStr);
                    foreach (var sub in subArr)
                    {
                        var xm1 = sub["xm1"]?.ToString();
                        var xm2 = sub["xm2"]?.ToString();
                        var dykhdf = sub["dykhdf"]?.ToString();
                        decimal? score = null;
                        if (!string.IsNullOrWhiteSpace(dykhdf) && decimal.TryParse(dykhdf, out var s))
                            score = s;
                        details.Add(new MesSuppScDetail
                        {
                            ID = Guid.NewGuid(),
                            PID = mainId,
                            XM1 = xm1,
                            XM2 = xm2,
                            DYKHDF = score
                        });
                    }
                }
                catch (Exception ex)
                {
                    // 忽略单条解析错误,但记录异常信息
                    Console.WriteLine($"解析 xmdf 失败(供应商 {gysmc}): {ex.Message}");
                }
            }
        }
        // 写入数据库:先清空表再插入(按原逻辑)
        // 写入数据库:事务内先删除旧数据再插入新数据
        var result = UseTransaction(db =>
        {
            // 注意:这里使用传入的 db(SqlSugarScope)执行原子操作
            // 先清子表,再清主表
            db.Deleteable<MesSuppScDetail>().ExecuteCommand();
            db.Deleteable<MesSuppSc>().ExecuteCommand();
            var inserted = db.Insertable(list).ExecuteCommand();
            return inserted > 0 ? 1 : 0;
            var mainInserted = 0;
            if (mains.Count > 0)
                mainInserted = db.Insertable(mains).ExecuteCommand();
            var detailInserted = 0;
            if (details.Count > 0)
                detailInserted = db.Insertable(details).ExecuteCommand();
            return (mainInserted + detailInserted) > 0 ? 1 : 0;
        }) > 0;
        return result;
    }
}
service/Wom/WomdaaManager.cs
@@ -1002,6 +1002,69 @@
        }
    }
    //新称重页面,暂时不用
    public dynamic GetWeightByXt_new(dynamic query)
    {
        if (query == null) throw new ArgumentNullException(nameof(query), "参数对象不能为null");
        // 参数校验
        if (string.IsNullOrEmpty(query.userName?.ToString()))
            throw new ArgumentException("用户名不允许为空", nameof(query.userName));
        if (string.IsNullOrEmpty(query.LsBar?.ToString()))
            throw new ArgumentException("卡板条码不允许为空", nameof(query.LsBar));
        var _strMsg = "";
        var _status = -1;
        var _weight = "0";
        using (var conn = new SqlConnection(DbHelperSQL.strConn))
        {
            using (var cmd = new SqlCommand("prc_pda_Xbar_chenzhong_new", conn))
            {
                try
                {
                    conn.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlParameter[] parameters =
                    {
                        new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName },
                        new("@pi_ls_barcode", SqlDbType.NVarChar, 100) { Value = query.LsBar },
                        new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output },
                        new("@po_outStatus", SqlDbType.Int) { Direction = ParameterDirection.Output },
                        new("@po_outWeight", SqlDbType.NVarChar, 100) { Direction = ParameterDirection.Output }
                    };
                    cmd.Parameters.AddRange(parameters);
                    cmd.ExecuteNonQuery();
                    _strMsg = parameters[2].Value?.ToString() ?? "";
                    _status = Convert.ToInt32(parameters[3].Value ?? -1);
                    _weight = parameters[4].Value?.ToString() ?? "0";
                    if (_status <= 0) throw new Exception(_strMsg);
                    return new
                    {
                        message = _strMsg,
                        status = _status,
                        weight = _weight,
                        barCode = query.Bar
                    };
                }
                catch (Exception ex)
                {
                    throw new Exception($"产品称重失败:{ex.Message}");
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }
    public dynamic GetXcslDaa(dynamic unity,dynamic RequestInfo)
    {