public TableData UpdateDetailApp(MaterialDistributeTaskDetail materialDistributeTaskDetail)
        {
            using (var tran = _context.Database.BeginTransaction())
            {
                TableData tab = new TableData();
                tab.code = 200;
                try
                {
                    _appd.Update(materialDistributeTaskDetail);

                    MaterialDemand materialDemand = _unitWork.Find <MaterialDemand>(u => u.OrderCode == materialDistributeTaskDetail.OrderCode && u.MaterialCode == materialDistributeTaskDetail.MaterialCode).FirstOrDefault();
                    materialDemand.DistributeQty = materialDistributeTaskDetail.Qty;
                    materialDemand.UpdateBy      = "MaterialConfirm";
                    materialDemand.UpdateTime    = DateTime.Now;
                    _unitWork.Update(materialDemand);
                    tab.msg = "备料信息变更成功!";

                    tran.Commit();
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    tab.code = 300;
                    tab.msg += ex.Message;
                }
                return(tab);
            }
        }
        public TableData Query(MaterialDistributeTaskDetail entity)
        {
            var result = new TableData();
            var data   = _app.Find(EntityToExpression <MaterialDistributeTaskDetail> .GetExpressions(entity));

            GetData(data, result);
            result.count = data.Count();

            return(result);
        }
Ejemplo n.º 3
0
        public Response StockConfirmApp(MaterialDemandConfirmModel mdConfirmList)
        {
            Response Response  = new Response();
            string   sErrorMsg = "";

            //if (!CheckLogin())
            //{
            //    Response.Code = 500;
            //    Response.Status = false;
            //    Response.Message = "请先登录!";
            //    return Response;
            //}
            foreach (MaterialDemandConfirm mdConfirm in mdConfirmList.Data)
            {
                try
                {
                    MaterialDemand materialDemand = _unitWork.FindSingle <MaterialDemand>(u => u.Id.Equals(mdConfirm.Id));
                    if (materialDemand != null)
                    {
                        materialDemand.DistributeQty = mdConfirm.DistributeQty;
                        materialDemand.UpdateBy      = "ConfirmAPI";
                        materialDemand.UpdateTime    = DateTime.Now;
                        _unitWork.Update(materialDemand);
                    }
                    MaterialDistributeTaskDetail materialDistributeTaskDetail = _unitWork.FindSingle <MaterialDistributeTaskDetail>(u => u.OrderCode == mdConfirm.OrderCode && u.MaterialCode == mdConfirm.MaterialCode);
                    if (materialDistributeTaskDetail != null)
                    {
                        materialDistributeTaskDetail.Qty           = mdConfirm.DistributeQty;
                        materialDistributeTaskDetail.ContainerCode = mdConfirm.ContainerCode;
                        materialDistributeTaskDetail.UpdateBy      = "ConfirmAPI";
                        materialDistributeTaskDetail.UpdateTime    = DateTime.Now;
                        _unitWork.Update(materialDistributeTaskDetail);

                        MaterialDistributeTaskHeader materialDistributeTaskHeader = _unitWork.FindSingle <MaterialDistributeTaskHeader>(u => u.Id == materialDistributeTaskDetail.MaterialDistributeTaskHeaderId);
                        if (materialDistributeTaskHeader.MaterialConfirm != MaterialConfirm.已确认)
                        {
                            materialDistributeTaskHeader.ContainerCode   = mdConfirm.ContainerCode;
                            materialDistributeTaskHeader.StartPlace      = mdConfirm.ContainerPlace;
                            materialDistributeTaskHeader.MaterialConfirm = MaterialConfirm.已确认;
                            materialDistributeTaskHeader.UpdateBy        = "ConfirmAPI";
                            materialDistributeTaskHeader.UpdateTime      = DateTime.Now;
                            _unitWork.Update(materialDistributeTaskHeader);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Response.Code    = 500;
                    Response.Status  = false;
                    Response.Message = (Response.Message == "操作成功" ? "" : Response.Message) + "\r\n" + "OrderCode:" + mdConfirm.OrderCode + "确认失败!" + ex.Message;
                }
            }
            return(Response);
        }
 public string Upd(MaterialDistributeTaskDetail Table_entity)
 {
     try
     {
         _app.Upd(Table_entity);
     }
     catch (Exception ex)
     {
         Result.Status  = false;
         Result.Message = ex.Message;
     }
     return(JsonHelper.Instance.Serialize(Result));
 }
        public string GetTemplate()
        {
            var result = new TableData();
            List <MaterialDistributeTaskDetail> listMaterialDistributeTaskDetail = new List <MaterialDistributeTaskDetail>();
            MaterialDistributeTaskDetail        entity = _app.FindSingle(u => u.Id > 0);

            if (entity != null)
            {
                listMaterialDistributeTaskDetail.Add(entity);
            }
            else
            {
                listMaterialDistributeTaskDetail.Add(new MaterialDistributeTaskDetail());
            }

            result.data  = listMaterialDistributeTaskDetail;
            result.count = listMaterialDistributeTaskDetail.Count;

            return(JsonHelper.Instance.Serialize(result));
        }
        public Response ImportIn(IFormFile excelfile)
        {
            Response result = new Infrastructure.Response();
            List <MaterialDistributeTaskDetail> exp = imp.ConvertToModel <MaterialDistributeTaskDetail>(excelfile);
            string sErrorMsg = "";

            for (int i = 0; i < exp.Count; i++)
            {
                try
                {
                    MaterialDistributeTaskDetail e = exp[i];
                    e.Id = null;
                    _app.Add(e);
                }
                catch (Exception ex)
                {
                    sErrorMsg     += "第" + (i + 2) + "行:" + ex.Message + "<br>";
                    result.Message = sErrorMsg;
                    break;
                }
            }
            if (sErrorMsg.Equals(string.Empty))
            {
                if (exp.Count == 0)
                {
                    sErrorMsg     += "没有发现有效数据, 请确定模板是否正确, 或是否有填充数据!";
                    result.Message = sErrorMsg;
                }
                else
                {
                    result.Message = "导入完成";
                }
            }
            else
            {
                result.Status  = false;
                result.Message = result.Message;
            }
            return(result);
        }
Ejemplo n.º 7
0
        public TableData CreateDistributeTaskApp(List <MaterialCallHeader> mcheaderlist)
        {
            TableData tab = new TableData
            {
                code = 200
            };
            int      hcount    = 0;
            int      listcount = 0;
            string   sErrorMsg = "";
            Location location  = null;

            try
            {
                listcount = mcheaderlist.Count;
                foreach (MaterialCallHeader materialCallHeader in mcheaderlist)
                {
                    MaterialDistributeTaskHeader materialDistributeTaskHeader = new MaterialDistributeTaskHeader();
                    List <MaterialCallDetail>    materialCallDetails          = _unitWork.Find <MaterialCallDetail>(u => u.CallHeaderId.Equals(materialCallHeader.Id)).ToList();
                    if (!_unitWork.IsExist <MaterialDistributeTaskHeader>(u => u.MaterialCallId.Equals(materialCallHeader.Id)))
                    {
                        //生成配送主数据
                        // MaterialDistributeTaskHeader materialDistributeTaskHeader = new MaterialDistributeTaskHeader();
                        var pcode = _unitWork.Find <MaterialCallDetail>(u => u.CallHeaderId == materialCallHeader.Id).Select(a => a.ProductCode).FirstOrDefault();
                        var pid   = _unitWork.Find <ProductHeader>(u => u.Code == pcode).Select(a => a.Id).FirstOrDefault();
                        location = _unitWork.Find <Location>(u => u.Code == materialCallHeader.LocationCode).FirstOrDefault();
                        materialDistributeTaskHeader.MaterialCallId = materialCallHeader.Id;
                        materialDistributeTaskHeader.ProductId      = pid;
                        materialDistributeTaskHeader.ProductCode    = pcode;
                        materialDistributeTaskHeader.NeedStation    = materialCallHeader.NeedStation;
                        materialDistributeTaskHeader.LocationCode   = materialCallHeader.LocationCode;
                        materialDistributeTaskHeader.ContainerType  = location.Type;
                        if (!string.IsNullOrEmpty(location.ContainerCode))
                        {
                            materialDistributeTaskHeader.ContainerCode = location.ContainerCode;
                        }
                        materialDistributeTaskHeader.NeedTime = materialCallHeader.CallTime;
                        materialDistributeTaskHeader.Status   = 1;
                        materialDistributeTaskHeader.UserCode = _app._loginInfo.Account;
                        if (materialCallHeader.CallType == CallType.料)
                        {
                            if (location.Status == LocationStatus.空仓位)
                            {//第一次上料
                                materialDistributeTaskHeader.TaskNo   = _app.GetTaskNo(AGVTaskNo.工位叫料);
                                materialDistributeTaskHeader.CallType = TaskType.料配送;
                                materialDistributeTaskHeader.EndPlace = materialCallHeader.LocationCode;
                                if (string.IsNullOrEmpty(pcode))
                                {
                                    materialDistributeTaskHeader.MaterialConfirm = MaterialConfirm.已确认;
                                }
                                else
                                {
                                    materialDistributeTaskHeader.MaterialConfirm = MaterialConfirm.未确认;
                                }
                                _appmh.Add(materialDistributeTaskHeader);
                            }
                            else
                            {
                                //先生成取空料框任务
                                MaterialDistributeTaskHeader mt = new MaterialDistributeTaskHeader();
                                materialDistributeTaskHeader.CopyTo(mt);
                                mt.Id              = null;
                                mt.TaskNo          = _app.GetTaskNo(AGVTaskNo.取空料框);
                                mt.CallType        = TaskType.回收料框;
                                mt.StartPlace      = materialCallHeader.LocationCode;
                                mt.MaterialConfirm = MaterialConfirm.已确认;
                                _appmh.Add(mt);
                                //再成上料任务
                                materialDistributeTaskHeader.TaskNo        = _app.GetTaskNo(AGVTaskNo.工位叫料);
                                materialDistributeTaskHeader.CallType      = TaskType.料配送;
                                materialDistributeTaskHeader.StartPlace    = "";
                                materialDistributeTaskHeader.ContainerCode = "";
                                materialDistributeTaskHeader.EndPlace      = materialCallHeader.LocationCode;
                                if (string.IsNullOrEmpty(pcode))
                                {
                                    materialDistributeTaskHeader.MaterialConfirm = MaterialConfirm.已确认;
                                }
                                else
                                {
                                    materialDistributeTaskHeader.MaterialConfirm = MaterialConfirm.未确认;
                                }
                                _appmh.Add(materialDistributeTaskHeader);
                            }
                            //只有呼叫类型是上料任务时,才有呼叫明细数据,其它呼叫类型无需写入任务配送明细表
                            if (materialCallDetails.Count > 0)
                            {
                                foreach (MaterialCallDetail mcdetail in materialCallDetails)
                                {
                                    List <MaterialDemand> materialDemands = _unitWork.Find <MaterialDemand>(u => u.OrderCode == mcdetail.OrderCode).ToList();
                                    //判断此工单的物料需求是否生成
                                    if (materialDemands.Count > 0)
                                    {
                                        //判断此工单的物料配送任务是否已经建立
                                        //if (!_unitWork.IsExist<MaterialDistributeTaskDetail>(u => u.OrderCode == mcdetail.OrderCode))
                                        //{
                                        //生成配送明细数据
                                        foreach (MaterialDemand md in materialDemands)
                                        {
                                            if (md.ClassABC == location.Type)
                                            {
                                                MaterialDistributeTaskDetail materialDistributeTaskDetail = new MaterialDistributeTaskDetail();
                                                materialDistributeTaskDetail.MaterialDistributeTaskHeaderId = materialDistributeTaskHeader.Id;
                                                materialDistributeTaskDetail.OrderCode    = md.OrderCode;
                                                materialDistributeTaskDetail.MaterialCode = md.MaterialCode;
                                                materialDistributeTaskDetail.SerialNumber = mcdetail.SerialNumber;
                                                materialDistributeTaskDetail.Qty          = md.DistributeQty;
                                                materialDistributeTaskDetail.UserCode     = _app._loginInfo.Account;
                                                _appmd.Add(materialDistributeTaskDetail);
                                            }
                                        }
                                        hcount = hcount + 1;
                                        //}
                                        //else
                                        //{
                                        //    sErrorMsg += "工单号为:" + mcdetail.OrderCode + "的配送任务已经建立过,不可重复建立!<br>";
                                        //    tab.msg = sErrorMsg;
                                        //}
                                    }
                                    else
                                    {
                                        sErrorMsg += "工单号为:" + mcdetail.OrderCode + "未建立工单对应的物料需求,无法生成!<br>";
                                        tab.msg    = sErrorMsg;
                                    }
                                }
                            }
                        }
                        else if (materialCallHeader.CallType == CallType.料)
                        {
                            if (location.Status == LocationStatus.空仓位)
                            {//第一次下料,即只补空料框
                                materialDistributeTaskHeader.TaskNo          = _app.GetTaskNo(AGVTaskNo.补给空框);
                                materialDistributeTaskHeader.CallType        = TaskType.补给料框;
                                materialDistributeTaskHeader.EndPlace        = materialCallHeader.LocationCode;
                                materialDistributeTaskHeader.MaterialConfirm = MaterialConfirm.已确认;
                                _appmh.Add(materialDistributeTaskHeader);
                            }
                            else
                            {//先生成下料任务
                                materialDistributeTaskHeader.TaskNo     = _app.GetTaskNo(AGVTaskNo.成品下料);
                                materialDistributeTaskHeader.CallType   = TaskType.料取件;
                                materialDistributeTaskHeader.StartPlace = materialCallHeader.LocationCode;
                                _appmh.Add(materialDistributeTaskHeader);
                                //再生成补空料框任务
                                MaterialDistributeTaskHeader mtbk = new MaterialDistributeTaskHeader();
                                materialDistributeTaskHeader.CopyTo(mtbk);
                                mtbk.Id              = null;
                                mtbk.TaskNo          = _app.GetTaskNo(AGVTaskNo.补给空框);
                                mtbk.CallType        = TaskType.补给料框;
                                mtbk.ContainerCode   = "";
                                mtbk.StartPlace      = "";
                                mtbk.EndPlace        = materialCallHeader.LocationCode;
                                mtbk.MaterialConfirm = MaterialConfirm.已确认;
                                _appmh.Add(mtbk);
                            }
                        }
                    }
                }

                if (listcount <= hcount)
                {
                    tab.code = 200;
                    tab.msg  = "配送任务已成功生成!";
                }
                else
                {
                    tab.code = 200;
                    tab.msg  = "执行完成!部分生成失败的信息如下:<br>" + tab.msg;
                }
            }
            catch (Exception ex)
            {
                tab.code = 300;
                tab.msg += ex.Message;
            }
            return(tab);
        }
Ejemplo n.º 8
0
 public string UpdateDetail(MaterialDistributeTaskDetail entity)
 {
     return(JsonHelper.Instance.Serialize(_app.UpdateDetailApp(entity)));
 }
 public string Load(PageReq pageRequest, MaterialDistributeTaskDetail entity)
 {
     return(JsonHelper.Instance.Serialize(_app.Load(pageRequest, entity)));
 }
 public string Export(MaterialDistributeTaskDetail entity)
 {
     return(JsonHelper.Instance.Serialize(_app.ExportData(entity)));
 }
 public void Upd(MaterialDistributeTaskDetail entity)
 {
     _app.Update(entity);
 }
 public void Ins(MaterialDistributeTaskDetail entity)
 {
     _app.Add(entity);
 }
 public TableData Load(PageReq pageRequest, MaterialDistributeTaskDetail entity)
 {
     return(_app.Load(pageRequest, entity));
 }
 public TableData ExportData(MaterialDistributeTaskDetail entity)
 {
     return(_app.ExportData(entity));
 }