杨张扬
2025-06-18 b32cf3fbbd4f981d9a218dc3601962395c2a0d70
api/ApiHelper.cs
@@ -167,10 +167,10 @@
                            && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0).
                            OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//查询合适的终点货位
                }
                else if (model.cgState == 4)//技术合格回库
                else if (model.cgState == 4)//技术判定回库
                {
                    cG_Detail.N_ITEM_STATE = 4;
                    cG_Detail.S_ITEM_STATE = "技术合格";
                    cG_Detail.S_ITEM_STATE = "技术判定";
                    endLoc = db.Queryable<TN_Location>().
                            Where(o => o.S_AREA_CODE == Settings.Areas[8] 
                            && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "无"
@@ -225,7 +225,7 @@
                else
                {
                    result.resultCode = 6;
                    result.resultMsg = $"物料状态只能为0合格1待检2不合格,下线即待检,3过期,4技术合格,5混合,6一级料、7二级料,如果为其他值,则不处理";
                    result.resultMsg = $"物料状态只能为0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料,如果为其他值,则不处理";
                    LogHelper.Info(result.resultMsg);
                    return result;
                }
@@ -241,7 +241,7 @@
                var typeName = (model.cgState == 0) ? "人工复检回库" : "人工复检回炉";
                //创建人工拆盘出库任务
                //创建人工复检任务
                if (WCSHelper.CreateTask(startLoc.S_CODE, endLoc.S_CODE, typeName, 3, locCnt.S_CNTR_CODE,out string taskNo,cG_Detail.S_SPE))//创建搬送任务,起点终点容器
                {
                    LocationHelper.LockLoc(startLoc.S_CODE, 2);//起点出库锁,
@@ -684,15 +684,15 @@
            LogHelper.Info("触发API:PDA满托下线入库" + JsonConvert.SerializeObject(model), "API");
            try
            {
                //if( model.RfId.Length < 16)
                //{
                //    result.resultCode = 1;
                //    result.resultMsg = $"输入的RFID,长度不够,要大于16位";
                //    LogHelper.Info(result.resultMsg);
                //    return result;
                //}
                if (model.RfId.Length < 16)
                {
                    result.resultCode = 1;
                    result.resultMsg = $"输入的RFID,长度不够,要大于16位";
                    LogHelper.Info(result.resultMsg);
                    return result;
                }
                //model.RfId = WMSHelper.ConvertHexToAscii(model.RfId);
                model.RfId = WMSHelper.ConvertHexToAscii(model.RfId.Substring(0,16));
                //该产线的满托下线位置,起点
                var startPoint = Settings.ProductionLines.FirstOrDefault(a => a.PointOut == model.StartLoc);
@@ -1021,13 +1021,13 @@
                var waitTime = SpecHelper.GetWaitTime(model.Spe);
                //优先技术合格
                //优先技术判定
                var startLoc = db.Queryable<TN_Location>().
                    LeftJoin<TN_Loc_Container>((o, i) => o.S_CODE == i.S_LOC_CODE).
                    LeftJoin<TN_CG_Detail>((o, i, s) => i.S_CNTR_CODE == s.S_CNTR_CODE).
                    Where((o, i, s) => o.N_CURRENT_NUM > 0 && o.S_AREA_CODE == Settings.Areas[1] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "无" && o.C_ENABLE == "Y"
                    && (s.S_ITEM_SPEC == model.Spe || s.S_SPE == model.Spe)//指定规格
                    && s.N_ITEM_STATE == 4 && s.S_ITEM_STATE == "技术合格"). //技术合格
                    && s.N_ITEM_STATE == 4 && s.S_ITEM_STATE == "技术判定"). //技术判定
                    First();//筛选有容器货位关系表信息,筛选有容器货品明细表信息
                if (startLoc == null)//其次合格
@@ -1924,7 +1924,7 @@
                        var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == startLocCnt.S_CNTR_CODE);
                        Task task27 = Task.Run(() =>
                        {
                            if (endLoc.S_AREA_CODE == Settings.Areas[2] && cginfo != null) //插入WMS库存明细
                            if (endLoc.S_AREA_CODE == Settings.Areas[1] && cginfo != null) //插入WMS库存明细
                            {
                                var target = new TN_InventoryM()
                                {
@@ -1942,7 +1942,7 @@
                        });
                        Task task26 = Task.Run(() =>
                        {
                            if (startLoc.S_AREA_CODE == Settings.Areas[2] && cginfo != null)
                            if (startLoc.S_AREA_CODE == Settings.Areas[1] && cginfo != null)
                            {
                                SpecHelper.DeleteInventoryM(cginfo.S_ID);
                            }