杨前锦
2025-06-19 d42ad8b01195def2a9309930e14f90ff13ad47b1
HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/wms/ContainerHelper.cs
@@ -1,4 +1,5 @@
using HH.WCS.Mobox3.YNJT_PT.models.other;
using HH.WCS.Mobox3.YNJT_PT.models;
using HH.WCS.Mobox3.YNJT_PT.models.other;
using HH.WCS.Mobox3.YNJT_PT.util;
using System;
using System.Collections.Generic;
@@ -17,20 +18,7 @@
            var date = DateTime.Now.ToString("yyMMdd");
            return $"TP{date}{id.ToString().PadLeft(4, '0')}";
        }
        /// <summary>
        /// 根据容器类型、目的地、状态查询容器
        /// </summary>
        /// <param name="dest"></param>
        /// <param name="cntrType"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        internal static List<Container> GetCntrListByPurpose(string dest, string cntrType, int state) {
            //1.0 查货位容器表
            var db = new SqlHelper<object>().GetInstance();
            var list = db.Queryable<Container>().Where(a => a.S_DEST == dest && a.S_TYPE == cntrType && a.N_B_STATE == state).ToList();
            return list;
        }
        /// <summary>
        /// TN_ContainerHelper.test("4L天然水箱装6入", 50, "335ml东方树叶15入", 30);
        /// </summary>
@@ -144,112 +132,53 @@
        }
        /// <summary>
        /// 根据容器来源和状态获取托盘
        /// 添加容器物料信息
        /// </summary>
        /// <param name="src"></param>
        /// <param name="state"></param>
        /// <returns></returns>
        internal static List<Container> GetCntr(string dest, int state, string cntrType = "") {
        public static bool addCntrItemRel( string cntrCode,GreenTireInformation info)
        {
            bool res = false;
            var db = new SqlHelper<object>().GetInstance();
            if (cntrType == "") {
                return db.Queryable<Container>().Where(a => a.S_DEST == dest && a.N_B_STATE == state).ToList();
            }
            else {
                return db.Queryable<Container>().Where(a => a.S_DEST == dest && a.N_B_STATE == state && a.S_TYPE == cntrType).ToList();
            }
        }
        internal static bool UpdateCntr(List<string> cntrs, string dest, int state) {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            var models = db.Queryable<Container>().Where(a => cntrs.Contains(a.S_CODE)).ToList();
            if (models.Count > 0) {
                models.ForEach(a => {
                    a.S_DEST = dest; a.N_B_STATE = state;
                    db.Updateable(a).UpdateColumns(it => new { it.S_DEST, it.N_B_STATE }).ExecuteCommand();
                });
                res = true;
            }
            return res;
        }
        internal static bool UpdateCntrDest(List<string> cntrs, string dest) {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            var models = db.Queryable<Container>().Where(a => cntrs.Contains(a.S_CODE)).ToList();
            if (models.Count > 0) {
                models.ForEach(a => {
                    a.S_DEST = dest;
                    db.Updateable(a).UpdateColumns(it => new { it.S_DEST }).ExecuteCommand();
                });
                res = true;
            }
            return res;
        }
        /// <summary>
        /// 更新托盘来源
        /// </summary>
        /// <param name="cntr"></param>
        /// <param name="src"></param>
        /// <returns></returns>
        internal static bool UpdateCntrSrc(string cntr, string src) {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            var model = db.Queryable<Container>().Where(a => a.S_CODE == cntr).First();
            if (model != null) {
                model.S_SRC = src;
                model.T_MODIFY = DateTime.Now;
                res = db.Updateable(model).UpdateColumns(it => new { it.S_SRC, it.T_MODIFY }).ExecuteCommand() > 0;
            }
            return res;
        }
        internal static bool UpdateCntrState(List<string> cntrs, int state) {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            var models = db.Queryable<Container>().Where(a => cntrs.Contains(a.S_CODE)).ToList();
            if (models.Count > 0) {
                models.ForEach(a => {
                    a.N_B_STATE = state;
                    db.Updateable(a).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand();
                });
                res = true;
            }
            return res;
        }
            var container = ContainerHelper.GetCntr(cntrCode);
            if (container != null)
            {
                try
                {
                    db.BeginTran();
                    db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntrCode).ExecuteCommand();
        internal static bool UpdateCntr(List<string> cntrs, string src, string dest, int state) {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            var models = db.Queryable<Container>().Where(a => cntrs.Contains(a.S_CODE)).ToList();
            if (models.Count > 0) {
                models.ForEach(a => {
                    a.S_DEST = dest; a.N_B_STATE = state; a.S_SRC = src;
                    db.Updateable(a).UpdateColumns(it => new { it.S_DEST, it.N_B_STATE, it.S_SRC }).ExecuteCommand();
                });
                    CntrItemRel cntrItemRel = new CntrItemRel()
                    {
                        S_CG_ID = info.BARCODE,
                        S_CNTR_CODE = cntrCode,
                        S_ITEM_CODE = info.ITEMCODE,
                        S_CELL_NO = info.TIRECODE,
                        F_QTY = info.QTY,
                        S_MCN = info.MCN,
                        S_OPR = info.OPR,
                        S_OPR02 = info.OPR02,
                        S_OPR03 = info.OPR03,
                        S_OPR04 = info.OPR04,
                        S_WINDUP = info.WINDUP,
                        S_TXNDATE = info.TXNDATE,
                        S_DATE_SHIFT = info.DATE_SHIFT,
                        S_EFFECTIVE_TIME = info.S_EFFECTIVE_TIME,
                        S_EXPIRATION_TIME = info.S_EXPIRATION_TIME,
                        N_URGENT_FLAG = info.N_URGENT_FLAG,
                    };
                    db.Insertable(cntrItemRel).ExecuteCommand();
                    container.N_DETAIL_COUNT = 1;
                    db.Updateable(container).ExecuteCommand();
                    db.CommitTran();
                res = true;
            }
                catch (Exception ex)
                {
                    db.RollbackTran();
                }
            }
            return res;
        }
        public static bool ClearCntrInfo(string cntr) {
            var db = new SqlHelper<object>().GetInstance();
            var model = db.Queryable<Container>().Where(a => a.S_CODE == cntr).First();
            if (model != null) {
                model.S_SRC = "";
                model.S_DEST = "";
                model.N_B_STATE = 0;
                model.T_MODIFY = DateTime.Now;
            }
            db.Updateable(model).UpdateColumns(it => new { it.S_SRC, it.S_DEST, it.N_B_STATE, it.T_MODIFY }).ExecuteCommand();
            return db.Deleteable<CntrItemRel>().Where(a => a.S_CNTR_CODE.Trim() == cntr.Trim()).ExecuteCommand() > 0;
        }
        internal static List<Container> GetCntrBySrc(string src, int state, string cntrType = "") {
            var db = new SqlHelper<object>().GetInstance();
            if (cntrType == "") {
                return db.Queryable<Container>().Where(a => a.S_SRC == src && a.N_B_STATE == state).ToList();
            }
            else {
                return db.Queryable<Container>().Where(a => a.S_SRC == src && a.N_B_STATE == state && a.S_TYPE == cntrType).ToList();
            }
        }
       
    }