zhao
2021-06-24 02ca96debc6056275d58e55d97f7885a195542d0
HH.WMS.BLL/External/WmsApiBaseBLL.cs
@@ -2,6 +2,7 @@
using HH.WMS.BLL.Basic;
using HH.WMS.BLL.InStock;
using HH.WMS.BLL.Interface;
using HH.WMS.BLL.Pda;
using HH.WMS.BLL.SysMgr;
using HH.WMS.Common;
using HH.WMS.Common.Algorithm;
@@ -19,6 +20,7 @@
using HH.WMS.Entitys.Common;
using HH.WMS.Entitys.Dto;
using HH.WMS.Entitys.Entitys;
using HH.WMS.Entitys.Entitys.Mes;
using HH.WMS.Entitys.External;
using Newtonsoft.Json;
using System;
@@ -1510,15 +1512,10 @@
            #endregion
            string tno = executeStatePara.transportTask.CN_S_TASK_NO;
            string tno = executeStatePara.transportTask.CN_S_TASK_NO.Trim();
            if (tno.IndexOf('_') > 0)
            {
                string TopNo = tno.Substring(0, tno.IndexOf("_"));
                string navNo = tno.Substring(tno.IndexOf("_") + 1);
                if (navNo == "2")
                {
                    tno = TopNo;
                }
                tno = tno.Split('_')[0];
            }
            // 获取主任务
            var task = BLLCreator.CreateDapper<TN_WM_TASKEntity>().GetSingleEntity(new
@@ -1544,7 +1541,97 @@
                if (taskNo.IndexOf('_') > 0)
                {
                    string fatherNo = taskNo.Substring(0, taskNo.IndexOf("_"));
                    string hzNo = taskNo.Substring(taskNo.IndexOf("_") + 1);
                    string childNo = taskNo.Substring(taskNo.IndexOf("_") + 1);
                    #region 海潮中策
                    // 半成品满托入库流程
                    if (task.CN_S_EXT1 == BusinessTypeConstants.BCP_MTRK)
                    {
                        // 空托出库第一条子任务
                        if (executeStatePara.transportTask.CN_S_EXT2 == "ktck_sub_1")
                        {
                            // 接驳位状态改为:满
                            CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                            {
                                CN_S_LOCATION_STATE = Constants.Location_State_Full
                            }, new
                            {
                                CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT
                            }, trans);
                            // 立库货位状态改为:空
                            CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                            {
                                CN_S_LOCATION_STATE = Constants.Location_State_Empty
                            }, new
                            {
                                CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT
                            }, trans);
                            Log.Detail(logPara, "子任务完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO + ",更新接驳位状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full + ",更新立库状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Empty);
                        }
                        // 空托出库第二条子任务
                        if (executeStatePara.transportTask.CN_S_EXT2 == "ktck_sub_2")
                        {
                            // 主任务状态置为完成部分
                            // 主任务的子任务标识置空
                            // 主任务阶段置为半成品-满托入库
                            CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                            {
                                CN_S_STATE = Constants.TaskState_CompletePart,
                                CN_S_EXT2 = "",
                                CN_S_EXT3 = TaskSectionConstants.BCP_MTRK
                            }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                            // 接驳位状态改为:正常
                            CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                            {
                                CN_S_LOCATION_STATE = Constants.Location_State_Normal
                            }, new
                            {
                                CN_S_LOCATION_CODE = task.CN_S_CONNECT_BIT
                            }, trans);
                            // 准备点货位状态改为:正常
                            CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                            {
                                CN_S_LOCATION_STATE = Constants.Location_State_Normal
                            }, new
                            {
                                CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_START_BIT
                            }, trans);
                            // 终点货位状态改为:满
                            CreateDapperDAL<TN_WM_LOCATION_EXTEntity>().Update(new
                            {
                                CN_S_LOCATION_STATE = Constants.Location_State_Full
                            }, new
                            {
                                CN_S_LOCATION_CODE = executeStatePara.transportTask.CN_S_END_BIT
                            }, trans);
                            Log.Detail(logPara, "子任务完成-任务号:" + executeStatePara.transportTask.CN_S_TASK_NO + ",更新接驳位状态-货位号:" + task.CN_S_CONNECT_BIT + "状态为:" + Constants.Location_State_Normal + ",更新准备点状态-货位号:" + executeStatePara.transportTask.CN_S_START_BIT + "状态为:" + Constants.Location_State_Normal + ",更新终点状态-货位号:" + executeStatePara.transportTask.CN_S_END_BIT + "状态为:" + Constants.Location_State_Full);
                            // 在主循环中创建后继任务
                        }
                        // 满托入库第一条子任务
                        if (executeStatePara.transportTask.CN_S_EXT2 == "bcp_mtrk_sub_1")
                        {
                            // 主任务状态置为完成部分
                            // 主任务的子任务标识置为bcp_mtrk_sub_1_completed
                            CreateDAL<DapperDAL<TN_WM_TASKEntity>>().Update(new
                            {
                                CN_S_STATE = Constants.TaskState_CompletePart,
                                CN_S_EXT2 = "bcp_mtrk_sub_1_completed"
                            }, new { CN_S_TASK_NO = task.CN_S_TASK_NO }, trans);
                            // 在主循环中创建后继任务
                        }
                        // 满托入库第二条子任务
                        if (executeStatePara.transportTask.CN_S_EXT2 == "bcp_mtrk_sub_2")
                        {
                        }
                    }
                    #endregion
                    //A到B的AGV搬运任务
                    if (hzNo == "1")
                    {
@@ -2754,5 +2841,44 @@
            }
        }
        /// <summary>
        /// 接收任务
        /// </summary>
        /// <param name="receuveTask"></param>
        /// <returns></returns>
        public OperateResult ReceiveTask(ZCReceiveTaskEntity receuveTask)
        {
            TN_MES_TASK req = new TN_MES_TASK()
            {
                task_no = receuveTask.task_no,
                Task_type = receuveTask.Task_type,
                TurnCardNum = receuveTask.TurnCardNum,
                PROD_NO = receuveTask.PROD_NO,
                PROD_TECH = receuveTask.PROD_TECH,
                PROD_SPEC = receuveTask.PROD_SPEC,
                PROD_BOM = receuveTask.PROD_BOM,
                PROD_Feature = receuveTask.PROD_Feature,
                TOOLS_NO = receuveTask.TOOLS_NO,
                ST_AMOUNT = receuveTask.ST_AMOUNT,
                CURRENT_AMOUNT = receuveTask.CURRENT_AMOUNT,
                Location_From = receuveTask.Location_From,
                Location_To = receuveTask.Location_To,
                PRODUCE_TIME = receuveTask.PRODUCE_TIME,
                SHELF_LIFE_TIME = receuveTask.SHELF_LIFE_TIME,
                EXPIRED_TIME = receuveTask.EXPIRED_TIME,
                SHELF_REP = receuveTask.SHELF_REP,
                EXPIRED_REP = receuveTask.EXPIRED_REP,
                CHECK_CODE = receuveTask.CHECK_CODE,
                CHECK_INFO = receuveTask.CHECK_INFO,
                Priority = receuveTask.Priority,
                Data_status = receuveTask.Data_status,
                NeedTrig = "Y",
                CreateDate = DateTime.Now,
                BUSI_TYPE = receuveTask.BUSI_TYPE
            };
            return BLLCreator.Create<ZCBLL>().SaveTask(req);
        }
    }
}