服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-11-03 8745fb2b4824979aad955a9835decdb849fe278d
更新箱号,获取箱号
已修改8个文件
181 ■■■■■ 文件已修改
Tiger.Business.MES/BIZ/BIZ_MES_WO.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/BIZ/BizBasRule.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/Position.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.MES/Controllers/MESController.BizBaseRule.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness.MES/BIZ/IBasRule.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness.MES/BIZ/IMES_WO.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/ParameterEntity/BizBasPkgRuleParameter.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/BIZ/BIZ_MES_WO.cs
@@ -453,6 +453,97 @@
        }
        /// <summary>
        /// 更新行为中的箱号
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public async Task<ApiAction> SavePrintLabelInAct(string code)
        {
            var result = new ApiAction();
            try
            {
                var woSn = await Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q=>q.SN == code || q.FLOW_SN == code || q.OUTER_SN == code).FirstAsync();
                if (woSn == null)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"条码不存在!");
                    return result;
                }
                //取得包装列表
                var pkgList = Biz.Db.Queryable<MES_WIP_PKG>().Where(q => q.PARENT_SN == woSn.OUTER_SN && q.OPER_CODE == "SpecPackingNode").ToList();
                if (pkgList.Count == 0)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"条码不存在!");
                    return result;
                }
                List<MES_WIP_ACT> actlist = new List<MES_WIP_ACT>();
                //客户标签
                var wipAct = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.CARTON_SN == woSn.OUTER_SN && q.NODE_ID == pkgList[0].NODE_ID && !SqlFunc.IsNullOrEmpty(q.ACT_VALUE_3)).First();
                if (!wipAct.IsNullOrEmpty())
                {
                    var label = JsonConvert.DeserializeObject<BAS_LABEL_TEMP>(wipAct.ACT_VALUE_3);
                    var cardNo = label.Variables.Where(q => q.VAR_NAME == "CardQR").FirstOrDefault();
                    if (!woSn.OUTER_SN.IsNullOrEmpty() && !cardNo.IsNullOrEmpty() && !cardNo.Value.StartsWith(woSn.OUTER_SN))
                    {
                        cardNo.Value = $"{woSn.OUTER_SN}{cardNo.Value}";
                    }
                    string ACT_VALUE_3 = JsonConvert.SerializeObject(label);
                    foreach (var pkg in pkgList)
                    {
                        var actSn = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_VALUE_4 == "Customer").First();
                        if (!actSn.IsNullOrEmpty())
                        {
                            actSn.ACT_VALUE_3 = ACT_VALUE_3;
                            actlist.Add(actSn);
                        }
                    }
                }
                //入库标签
                var wipActInStore = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.SN == woSn.SN && q.NODE_ID == pkgList[0].NODE_ID && !SqlFunc.IsNullOrEmpty(q.ACT_VALUE_3) && q.ACT_VALUE_4 == "InStroe").First();
                if (!wipActInStore.IsNullOrEmpty())
                {
                    var label = JsonConvert.DeserializeObject<BAS_LABEL_TEMP>(wipActInStore.ACT_VALUE_3);
                    var cardNo = label.Variables.Where(q => q.VAR_NAME == "CardQR").FirstOrDefault();
                    if (!woSn.OUTER_SN.IsNullOrEmpty() && !cardNo.IsNullOrEmpty() && !cardNo.Value.StartsWith(woSn.OUTER_SN))
                    {
                        cardNo.Value = $"{woSn.OUTER_SN}{cardNo.Value}";
                    }
                    var xh = label.Variables.Where(q => q.VAR_NAME == "XH").FirstOrDefault();
                    if (!woSn.OUTER_SN.IsNullOrEmpty() && !xh.IsNullOrEmpty())
                    {
                        xh.Value = $"{woSn.OUTER_SN}";
                    }
                    string ACT_VALUE_3 = JsonConvert.SerializeObject(label);
                    foreach (var pkg in pkgList)
                    {
                        var actSn = Biz.Db.Queryable<MES_WIP_ACT>().Where(q => q.WIP_ID == pkg.WIP_ID && q.NODE_ID == pkg.NODE_ID && q.ACT_VALUE_4 == "InStroe").First();
                        if (!actSn.IsNullOrEmpty())
                        {
                            actSn.ACT_VALUE_3 = ACT_VALUE_3;
                            actlist.Add(actSn);
                        }
                    }
                }
                var db = Biz.Db;
                var dbTran = db.UseTran(() =>
                {
                    db.Updateable(actlist).UpdateColumns(q => new { q.ACT_VALUE_3 }).ExecuteCommand();
                });
                if (!dbTran.IsSuccess)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"更新行为日志中的箱号异常");
                }
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "更新行为日志中的箱号异常");
            }
            return result;
        }
        /// <summary>
        /// 获取重打标签信息
        /// </summary>
        /// <param name="input"></param>
@@ -470,6 +561,13 @@
                    result.LocaleMsg = new($"条码不存在!");
                    return result;
                }
                var woNode = await Biz.Db.Queryable<MES_WO_NODE>().Where(q => q.WORK_ORDER.Equals(woSn.WORK_ORDER) && q.OPER_CODE== "SpecPackingNode").FirstAsync();
                if (woNode == null)
                {
                    result.IsSuccessed = false;
                    result.LocaleMsg = new($"工艺路线节点[SpecPackingNode-装箱]不存在");
                    return result;
                }
                string printParam = "";
                var labelPrint = await Biz.Db.Queryable<LOG_LABEL_PRINT>()
                    .WhereIF(input.ReqType == 0, q => q.SN.Equals(woSn.SN) || q.SN.Equals(woSn.FLOW_SN)) //白盒标签
Tiger.Business.MES/BIZ/BizBasRule.cs
@@ -14,6 +14,7 @@
using Tiger.Model.Entitys.MES.BizMesWoBatch;
using Tiger.Model.Entitys.MES.BizMesWo;
using Tiger.Model.Entitys.MES.BizBasPkgRule;
using Tiger.Model.Entitys.MES.Position;
namespace Tiger.Business.MES
{
@@ -109,5 +110,24 @@
            }
            return result;
        }
        /// <summary>
        /// 获取箱号
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task<ApiAction> GetCardOrBoxCode(GetCodeInput input)
        {
            var result = new ApiAction();
            try
            {
                result.Data = Biz.CodeRule[input.Code]?.Generate(input.Prefix, $"{input.BatchNo}-{input.Qty}-").Data.ToString() ?? "";
            }
            catch (Exception ex)
            {
                result.CatchExceptionWithLog(ex, "获取箱号异常");
            }
            return result;
        }
    }
}
Tiger.Business.MES/Transaction/Position.cs
@@ -15,6 +15,7 @@
using Tiger.Business.MES.WorkAction;
using System.Collections;
using Tiger.IBusiness.MES.WorkAction;
using Dm.parser;
namespace Tiger.Business.MES.Transaction
{
@@ -556,6 +557,8 @@
                            {
                                case "GetSN":
                                    return CurSN;
                                case "GetItemCode":
                                    return GetLabelVarWo(lv, WorkBatch.Product.ITEM_CODE);
                                case "GetBAS_ITEM":
                                    return GetLabelVarWo(lv, WorkBatch.Product.CUST_PROD_CODE);
                                case "GetItemName":
@@ -567,9 +570,9 @@
                                case "GetPackNumber":
                                    return GetLabelVarWo(lv, WorkBatch.WO.ORDER_NO);
                                case "GetBoxQR":
                                    return GetCardOrBoxQR(GetBoxCode(lvars), curAction);
                                    return GetCardOrBoxQR(GetBoxCode(), curAction);
                                case "GetCardQR":
                                    return GetCardOrBoxQR(GetCardCode(lvars), curAction);
                                    return GetCardOrBoxQR("", curAction);
                                case "GetCardSN":
                                    List<string> minPkgList = new List<string>();
                                    var _pkaction = curAction is PackingAction ? curAction as PackingAction : null;
@@ -636,7 +639,7 @@
                                case "GetNOTES":
                                    return GetLabelVarWo(lv, WorkBatch.Product.ExtInfo?.Remark); 
                                case "GetXH":
                                    return GetCardCode(lvars);
                                    return "";
                                case "GetCardNo":
                                    return "";
                                case "GetCardTotal":
@@ -734,9 +737,8 @@
        /// <summary>
        /// 获取白盒条码
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        private string GetBoxCode(List<BAS_LABEL_VAR> lvars)
        private string GetBoxCode()
        {
            return Biz.CodeRule["WhiteBoxNo"]?.Generate("W", $"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? "";
        }
@@ -744,10 +746,8 @@
        /// <summary>
        /// 获取箱条码
        /// </summary>
        /// <param name="lvars"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        private string GetCardCode(List<BAS_LABEL_VAR> lvars)
        private string GetCardCode()
        {
            return Biz.CodeRule["CartonNo"]?.Generate("B", $"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? "";
        }
Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs
@@ -161,6 +161,22 @@
            return Ok(response);
        }
        [HttpPost]
        [Route("api/[controller]/[action]")]
        public async Task<IActionResult> SavePrintLabelInAct([FromBody] ApiAction action)
        {
            ApiAction response = new();
            try
            {
                response = response.GetResponse(await DI.Resolve<IBIZ_MES_WO>().SavePrintLabelInAct(action.Data?.ToString()));
            }
            catch (System.Exception ex)
            {
                response = response.GetResponse().CatchExceptionWithLog(ex);
            }
            return Ok(response);
        }
        /// <summary>
        /// 获取重打标签信息
        /// </summary>
Tiger.Controllers.MES/Controllers/MESController.BizBaseRule.cs
@@ -53,5 +53,26 @@
            }
            return Ok(response);
        }
        /// <summary>
        /// 获取箱号
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/[action]")]
        public async Task<IActionResult> GetCardOrBoxCode([FromBody] ApiAction<GetCodeInput> action)
        {
            ApiAction response = new();
            try
            {
                response = response.GetResponse(await DI.Resolve<IBasRule>().GetCardOrBoxCode(action.Data));
            }
            catch (System.Exception ex)
            {
                response = response.GetResponse().CatchExceptionWithLog(ex);
            }
            return Ok(response);
        }
    }
}
Tiger.IBusiness.MES/BIZ/IBasRule.cs
@@ -14,5 +14,6 @@
    {
        public Task<ApiAction> SaveBasPkgRule(BizBasPkgRuleInput input);
        public Task<ApiAction> SaveBasItemRule(BizBasItemRuleInput input);
        public Task<ApiAction> GetCardOrBoxCode(GetCodeInput input);
    }
}
Tiger.IBusiness.MES/BIZ/IMES_WO.cs
@@ -22,5 +22,6 @@
        public Task<ApiAction<QueryAble<BAS_LABEL_VAR_WO>>> GetLabelVarByWorkOrder(BizLabelVarWoInput input);
        public Task<ApiAction> GetRePrintInfo(RePrintInput input);
        public Task<ApiAction> GetShipList(string wo, string orgCode);
        public Task<ApiAction> SavePrintLabelInAct(string code);
    }
}
Tiger.Model.Net/Entitys/MES/ParameterEntity/BizBasPkgRuleParameter.cs
@@ -18,4 +18,12 @@
        public BAS_ITEM Item { get; set; }
        public List<BAS_ITEM_CUST> ItemCusts { get; set; }
    }
    public class GetCodeInput
    {
        public string Code { get; set; }
        public string Prefix { get; set; }
        public string BatchNo { get; set; }
        public string Qty { get; set; }
    }
}