schangxiang@126.com
2024-08-28 39c09dede499f7ba23bcd26b17b2199a31bddccc
出库执行 哟花
已添加8个文件
已修改7个文件
730 ■■■■■ 文件已修改
iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/Dto/WorkPieceByOP80NewCodeInput.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/Dto/WorkPieceProcessOutput.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/Dto/WorkPieceUnLineDto.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/Dto/WorkPieceUnLineInput.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/Dto/WorkPieceUnLineOutput.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/IWorkPieceUnLineService.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/Map/WorkPieceUnLineMapper.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/WorkPieceUnLineService.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml 180 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceInfo.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceOutboundRecord.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceProcess.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceUnLine.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/Dto/WorkPieceByOP80NewCodeInput.cs
@@ -4,6 +4,7 @@
using System.Text;
using System.Threading.Tasks;
using iWare.Wms.Core;
using iWare.Wms.Core.Enum;
namespace iWare.Wms.Application {
    /// <summary>
@@ -27,7 +28,7 @@
        /// <summary>
        /// å·¥ä»¶æ•°æ®
        /// </summary>
        public List<WorkPieceInfoOutput> WorkPieceInfoLst { get; set; }
        public List<OutBoundDetailsInput> WorkPieceInfoLst { get; set; }
        /// <summary>
        /// å¯†ç 
        /// </summary>
@@ -35,5 +36,17 @@
    }
    /// <summary>
    /// å‡ºåº“执行输入明细参数
    /// </summary>
    public class OutBoundDetailsInput
    {
        /// <summary>
        /// å·¥ä»¶OP80码
        /// </summary>
        public string OP80NewCode { get; set; }
    }
    
}
iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
@@ -32,12 +32,14 @@
        private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep;
        private readonly IRepository<WorkPieceInfoLog, MasterDbContextLocator> _workPieceInfoLogRep;
        private readonly IRepository<WorkPieceOutbound, MasterDbContextLocator> _workPieceOutboundRep;
        private readonly IRepository<WorkPieceUnLine, MasterDbContextLocator> _workPieceUnLineRep;
        /// <summary>
        /// è®¾å¤‡åŸºç¡€ä¿¡æ¯æž„造函数
        /// </summary>
        /// <param name="equipmentBaseInfoRep"></param>
        public PdaService(
            IRepository<WorkPieceUnLine, MasterDbContextLocator> workPieceUnLineRep,
            IRepository<EquipmentBaseInfo, MasterDbContextLocator> equipmentBaseInfoRep,
            IRepository<V_GetEquipmentAlert, MasterDbContextLocator> v_GetEquipmentAlert,
            IRepository<EquipmentCurrentMonitor, MasterDbContextLocator> equipmentCurrentMonitorRep,
@@ -50,6 +52,7 @@
            IRepository<WorkPieceOutbound, MasterDbContextLocator> workPieceOutboundRep
            )
        {
            _workPieceUnLineRep = workPieceUnLineRep;
            _equipmentBaseInfoRep = equipmentBaseInfoRep;
            _v_GetEquipmentAlertRep = v_GetEquipmentAlert;
            _equipmentCurrentMonitorRep = equipmentCurrentMonitorRep;
@@ -489,39 +492,27 @@
                throw Oops.Oh("工件出库失败:数据不能为空!");
            }
            List<WorkPieceInfoOutput> WorkPieceInfoLst = input.WorkPieceInfoLst;
            List<OutBoundDetailsInput> WorkPieceInfoLst = input.WorkPieceInfoLst;
            var addOutBoundList = new List<WorkPieceOutbound>();
            var queryWorkPieceIDList = WorkPieceInfoLst.Select(x => x.WorkPieceID).ToList();
            List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync();
            var queryOP80NewCodeList = WorkPieceInfoLst.Select(x => x.OP80NewCode).ToList();
            List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
            List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync();
            List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
            foreach (var item in WorkPieceInfoLst)
            {
                var itemModel = db_itemModelList.FirstOrDefault(w => w.WorkPieceID == item.WorkPieceID);
                var itemModel = db_itemModelList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
                if (itemModel != null)
                {
                    //itemModel.IsDeleted = true;
                    //itemModel.Remark = itemModel.Remark ?? "" + "二次发货自动撤销发货";
                    //await _workPieceOutboundRep.UpdateAsync(itemModel);
                    var createitme = itemModel.CreatedTime == null ? "" : (((DateTimeOffset)itemModel.CreatedTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
                    throw Oops.Oh($"工件{itemModel.WorkPieceID}已出库,出库时间:{createitme}");
                    throw Oops.Oh($"成品码{itemModel.OP80NewCode}已出库,出库时间:{createitme}");
                }
                var outBoundLog = new WorkPieceOutbound
                {
                    WorkPieceID = item.WorkPieceID,
                    OP80NewCode = item.OP80NewCode,
                    WorkPieceOutboundTime = DateTime.Now,
                    WorkPieceOutboundUserId = CurrentUserInfo.UserId,
                    WorkPieceOutboundUserName = CurrentUserInfo.Name,
                    CreatedUserId = CurrentUserInfo.UserId,
                    CreatedUserName = CurrentUserInfo.Name,
                };
                addOutBoundList.Add(outBoundLog);
                var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.WorkPieceID == item.WorkPieceID);
                var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
                if (workPiece != null)
                {
                    workPiece.OutPerson = CurrentUserInfo.Name;
@@ -531,6 +522,19 @@
                    await _workPieceInfoRep.UpdateAsync(workPiece);
                }
                var outBoundLog = new WorkPieceOutbound
                {
                    WorkPieceID = workPiece?.WorkPieceID,
                    OP80NewCode = item.OP80NewCode,
                    WorkPieceOutboundTime = DateTime.Now,
                    WorkPieceOutboundUserId = CurrentUserInfo.UserId,
                    WorkPieceOutboundUserName = CurrentUserInfo.Name,
                    CreatedUserId = CurrentUserInfo.UserId,
                    CreatedUserName = CurrentUserInfo.Name,
                };
                addOutBoundList.Add(outBoundLog);
            }
            await _workPieceOutboundRep.InsertAsync(addOutBoundList);
            return "出库成功";
@@ -553,5 +557,13 @@
            return db_itemModelList.Count().ToString();
        }
        #region æ–°ç‰ˆ ä¸‹çº¿ã€å‡ºåº“执行
        #endregion
    }
}
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/Dto/WorkPieceProcessOutput.cs
@@ -27,7 +27,15 @@
    public class WorkPieceProcessOutput
    {
        /// <summary>
        /// è´¨é‡ä¸åˆæ ¼åŽŸå› ç±»åž‹ï¼Œæžšä¸¾QualityNoOkEnum ã€Editby shaocx,2024-06-26】
        /// </summary>
        public int? QualityNoOk { get; set; }
    
        /// <summary>
        /// è´¨é‡ä¸åˆæ ¼åŽŸå›  ã€Editby shaocx,2024-06-26】
        /// </summary>
        public string QualityNoOkReason { get; set; }
        /// <summary>
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceProcess/WorkPieceProcessService.cs
@@ -94,7 +94,8 @@
                     && process.StartTime <= (input.StartTimeEndTime.HasValue ? input.StartTimeEndTime : DateTime.MaxValue)
                                           select new WorkPieceProcessOutput
                                           {
                                               QualityNoOk = process.QualityNoOk,
                                               QualityNoOkReason = process.QualityNoOkReason,
                                               Id = process.Id,
                                               WorkPieceID = process.WorkPieceID,
                                               EquipmentID = process.EquipmentID,
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/Dto/WorkPieceUnLineDto.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
using iWare.Wms.Core.Util.LowCode.Dto;
using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;
namespace iWare.Wms.Application
{
    /// <summary>
    /// å·¥ä»¶å‡ºåº“信息输出参数
    /// </summary>
    public class WorkPieceUnLineDto
    {
        /// <summary>
        /// å·¥ä»¶å·
        /// </summary>
        public string WorkPieceID { get; set; }
        /// <summary>
        /// OP80打码
        /// </summary>
        public string OP80NewCode { get; set; }
        /// <summary>
        /// å°è½¦ç 
        /// </summary>
        [Comment("小车码")]
        [MaxLength(32)]
        public string CarNo { get; set; }
        /// <summary>
        /// Id主键
        /// </summary>
        public long Id { get; set; }
    }
}
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/Dto/WorkPieceUnLineInput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
using iWare.Wms.Core;
using iWare.Wms.Core.Service;
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
namespace iWare.Wms.Application
{
    /// <summary>
    /// å·¥ä»¶å‡ºåº“信息查询参数
    /// </summary>
    public class WorkPieceUnLineSearch : PageInputBase
    {
        /// <summary>
        /// å·¥ä»¶å·
        /// </summary>
        public virtual string WorkPieceID { get; set; }
        /// <summary>
        /// OP80打码
        /// </summary>
        public virtual string OP80NewCode { get; set; }
        /// <summary>
        /// å·¥ä»¶å‡ºåº“开始时间
        /// </summary>
        public virtual DateTime? StartTimeBeginTime { get; set; }
        /// <summary>
        /// å·¥ä»¶å‡ºåº“结束时间
        /// </summary>
        public virtual DateTime? StartTimeEndTime { get; set; }
        /// <summary>
        /// å°è½¦ç 
        /// </summary>
        [Comment("小车码")]
        [MaxLength(32)]
        public string CarNo { get; set; }
        /// <summary>
        /// å‡ºåº“人名称
        /// </summary>
        public virtual string WorkPieceUnLineUserName { get; set; }
    }
    /// <summary>
    /// å·¥ä»¶å‡ºåº“信息输入参数
    /// </summary>
    public class WorkPieceUnLineInput
    {
        /// <summary>
        /// å·¥ä»¶å·
        /// </summary>
        public virtual string WorkPieceID { get; set; }
        /// <summary>
        /// OP80打码
        /// </summary>
        public virtual string OP80NewCode { get; set; }
        /// <summary>
        /// å°è½¦ç 
        /// </summary>
        [Comment("小车码")]
        [MaxLength(32)]
        public virtual string CarNo { get; set; }
    }
    public class AddWorkPieceUnLineInput : WorkPieceUnLineInput
    {
        /// <summary>
        /// å·¥ä»¶å·
        /// </summary>
        [Required(ErrorMessage = "工件号不能为空")]
        public override string WorkPieceID { get; set; }
        /// <summary>
        /// OP80打码
        /// </summary>
        [Required(ErrorMessage = "OP80打码不能为空")]
        public override string OP80NewCode { get; set; }
        /// <summary>
        /// å°è½¦ç 
        /// </summary>
        [Comment("小车码")]
        [MaxLength(32)]
        public override string CarNo { get; set; }
    }
    public class DeleteWorkPieceUnLineInput : BaseId
    {
    }
    public class UpdateWorkPieceUnLineInput : WorkPieceUnLineInput
    {
        /// <summary>
        /// Id主键
        /// </summary>
        [Required(ErrorMessage = "Id主键不能为空")]
        public long Id { get; set; }
    }
    public class QueryeWorkPieceUnLineInput : BaseId
    {
    }
}
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/Dto/WorkPieceUnLineOutput.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
using iWare.Wms.Core.Util.LowCode.Dto;
using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;
namespace iWare.Wms.Application
{
    /// <summary>
    /// å·¥ä»¶å‡ºåº“信息输出参数
    /// </summary>
    public class WorkPieceUnLineOutput
    {
        /// <summary>
        /// å·¥ä»¶å·
        /// </summary>
        public string WorkPieceID { get; set; }
        /// <summary>
        /// OP80打码
        /// </summary>
        public string OP80NewCode { get; set; }
        /// <summary>
        /// å°è½¦ç 
        /// </summary>
        [Comment("小车码")]
        [MaxLength(32)]
        public string CarNo { get; set; }
        /// <summary>
        /// Id主键
        /// </summary>
        public long Id { get; set; }
    }
}
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/IWorkPieceUnLineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
using iWare.Wms.Core;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace iWare.Wms.Application
{
    public interface IWorkPieceUnLineService
    {
        //Task Add(AddWorkPieceUnLineInput input);
        //Task Delete(DeleteWorkPieceUnLineInput input);
        //Task<WorkPieceUnLineOutput> Get([FromQuery] QueryeWorkPieceUnLineInput input);
        //Task<List<WorkPieceUnLineOutput>> List([FromQuery] WorkPieceUnLineInput input);
        //Task<PageResult<WorkPieceUnLineOutput>> Page([FromQuery] WorkPieceUnLineSearch input);
        //Task Update(UpdateWorkPieceUnLineInput input);
    }
}
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/Map/WorkPieceUnLineMapper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
using Mapster;
using iWare.Wms.Core;
namespace iWare.Wms.Application
{
    public class WorkPieceUnLineMapper : IRegister
    {
        public void Register(TypeAdapterConfig config)
        {
            config.ForType<AddWorkPieceUnLineInput, WorkPieceUnLine>()
            ;
            config.ForType<UpdateWorkPieceUnLineInput, WorkPieceUnLine>()
            ;
            config.ForType<WorkPieceUnLine, WorkPieceUnLineOutput>()
            ;
        }
    }
}
iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceUnLine/WorkPieceUnLineService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.Extras.iWare.Wms.Util.LowCode.Front.Code;
using Furion.FriendlyException;
using iWare.Wms.Core;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Linq.Dynamic.Core;
namespace iWare.Wms.Application
{
    /// <summary>
    /// å·¥ä»¶å‡ºåº“下线信息服务
    /// </summary>
    //[Route("api")]
    [ApiDescriptionSettings("自己的业务", Name = "WorkPieceUnLine", Order = 100)]
    [Route("api/[Controller]")]
    [DisableOpLog]
    public class WorkPieceUnLineService : IWorkPieceUnLineService, IDynamicApiController, ITransient
    {
        private readonly IRepository<WorkPieceUnLine, MasterDbContextLocator> _WorkPieceUnLineRep;
        private readonly IRepository<WorkPieceInfo, MasterDbContextLocator> _workPieceInfoRep;
        public WorkPieceUnLineService(
            IRepository<WorkPieceInfo, MasterDbContextLocator> workPieceInfoRep,
            IRepository<WorkPieceUnLine, MasterDbContextLocator> WorkPieceUnLineRep
        )
        {
            _workPieceInfoRep = workPieceInfoRep;
            _WorkPieceUnLineRep = WorkPieceUnLineRep;
        }
        /// <summary>
        /// åˆ†é¡µæŸ¥è¯¢å·¥ä»¶å‡ºåº“下线信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("page")]
        public async Task<PageResult<WorkPieceUnLineOutput>> Page([FromQuery] WorkPieceUnLineSearch input)
        {
            var WorkPieceUnLines = await _WorkPieceUnLineRep.DetachedEntities
                                     .Where(!string.IsNullOrEmpty(input.WorkPieceID), u => u.WorkPieceID.Contains(input.WorkPieceID))
                                     .Where(!string.IsNullOrEmpty(input.OP80NewCode), u => u.OP80NewCode.Contains(input.OP80NewCode))
                                     .Where(!string.IsNullOrEmpty(input.StartTimeBeginTime.ToString()), u => u.CreatedTime >= input.StartTimeBeginTime)
                                     .Where(!string.IsNullOrEmpty(input.StartTimeEndTime.ToString()), u => u.CreatedTime <= input.StartTimeEndTime)
                                     .OrderBy(PageInputOrder.OrderBuilder<WorkPieceUnLineSearch>(input))
                                     .ProjectToType<WorkPieceUnLineOutput>()
                                     .ToADPagedListAsync(input.PageNo, input.PageSize);
            return WorkPieceUnLines;
        }
        /// <summary>
        /// èŽ·å–å·¥ä»¶å‡ºåº“ä¸‹çº¿ä¿¡æ¯
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("detail")]
        public async Task<WorkPieceUnLineOutput> Get([FromQuery] QueryeWorkPieceUnLineInput input)
        {
            return (await _WorkPieceUnLineRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WorkPieceUnLineOutput>();
        }
        /// <summary>
        /// èŽ·å–å·¥ä»¶å‡ºåº“ä¸‹çº¿ä¿¡æ¯åˆ—è¡¨
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("list")]
        public async Task<List<WorkPieceUnLineOutput>> List([FromQuery] WorkPieceUnLineInput input)
        {
            return await _WorkPieceUnLineRep.DetachedEntities.ProjectToType<WorkPieceUnLineOutput>().ToListAsync();
        }
        /// <summary>
        /// æ’¤é”€å·¥ä»¶å‡ºåº“下线信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("revoke")]
        [UnitOfWork]
        public async Task Revoke(List<DeleteWorkPieceUnLineInput> input)
        {
            foreach (var item in input)
            {
                var WorkPieceUnLine = await _WorkPieceUnLineRep.FirstOrDefaultAsync(u => u.Id == item.Id);
                if (WorkPieceUnLine == null)
                {
                    throw Oops.Oh("工件出库下线信息不存在");
                }
                WorkPieceUnLine.IsDeleted = true;
                WorkPieceUnLine.Remark = WorkPieceUnLine.Remark ?? "" + "撤销发货";
                await _WorkPieceUnLineRep.UpdateAsync(WorkPieceUnLine);
                var workPiece = await _workPieceInfoRep.FirstOrDefaultAsync(u => u.WorkPieceID == WorkPieceUnLine.WorkPieceID);
                if (workPiece != null)
                {
                    workPiece.OutPerson = CurrentUserInfo.Name;
                    workPiece.OutRemark = "撤销工件出库下线";
                    workPiece.OutTime = DateTime.Now;
                    workPiece.IsOut = false;
                    await _workPieceInfoRep.UpdateAsync(workPiece);
                }
            }
        }
    }
}
iWara.SCADA.Code/iWare.Wms.Application/iWare.Wms.Application.xml
@@ -296,7 +296,7 @@
            è®¾å¤‡åŸºç¡€ä¿¡æ¯ç®¡ç†æœåŠ¡
            </summary>
        </member>
        <member name="M:iWare.Wms.Application.Service.Pda.PdaService.#ctor(Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentBaseInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.V_GetEquipmentAlert,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentCurrentMonitor,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceProcess,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.SysDictData,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.SysDictType,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfoLog,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceOutbound,Furion.DatabaseAccessor.MasterDbContextLocator})">
        <member name="M:iWare.Wms.Application.Service.Pda.PdaService.#ctor(Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceUnLine,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentBaseInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.V_GetEquipmentAlert,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.EquipmentCurrentMonitor,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceProcess,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfo,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.SysDictData,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.SysDictType,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceInfoLog,Furion.DatabaseAccessor.MasterDbContextLocator},Furion.DatabaseAccessor.IRepository{iWare.Wms.Core.WorkPieceOutbound,Furion.DatabaseAccessor.MasterDbContextLocator})">
            <summary>
            è®¾å¤‡åŸºç¡€ä¿¡æ¯æž„造函数
            </summary>
@@ -5106,6 +5106,16 @@
        <member name="P:iWare.Wms.Application.OutBoundInput.Password">
            <summary>
            å¯†ç 
            </summary>
        </member>
        <member name="T:iWare.Wms.Application.OutBoundDetailsInput">
            <summary>
            å‡ºåº“执行输入明细参数
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.OutBoundDetailsInput.OP80NewCode">
            <summary>
            å·¥ä»¶OP80码
            </summary>
        </member>
        <member name="T:iWare.Wms.Application.ProductionPlanInfoDto">
@@ -15258,6 +15268,16 @@
            å·¥ä»¶åŠ å·¥è¿½æº¯è¾“å‡ºå‚æ•°
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceProcessOutput.QualityNoOk">
            <summary>
            è´¨é‡ä¸åˆæ ¼åŽŸå› ç±»åž‹ï¼Œæžšä¸¾QualityNoOkEnum ã€Editby shaocx,2024-06-26】
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceProcessOutput.QualityNoOkReason">
            <summary>
            è´¨é‡ä¸åˆæ ¼åŽŸå›  ã€Editby shaocx,2024-06-26】
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceProcessOutput.WorkPieceID">
            <summary>
            å·¥ä»¶å·
@@ -15753,6 +15773,164 @@
            <param name="input"></param>
            <returns>导出的Excel文件</returns>
        </member>
        <member name="T:iWare.Wms.Application.WorkPieceUnLineDto">
            <summary>
            å·¥ä»¶å‡ºåº“信息输出参数
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineDto.WorkPieceID">
            <summary>
            å·¥ä»¶å·
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineDto.OP80NewCode">
            <summary>
            OP80打码
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineDto.CarNo">
            <summary>
            å°è½¦ç 
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineDto.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="T:iWare.Wms.Application.WorkPieceUnLineSearch">
            <summary>
            å·¥ä»¶å‡ºåº“信息查询参数
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineSearch.WorkPieceID">
            <summary>
            å·¥ä»¶å·
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineSearch.OP80NewCode">
            <summary>
            OP80打码
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineSearch.StartTimeBeginTime">
            <summary>
            å·¥ä»¶å‡ºåº“开始时间
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineSearch.StartTimeEndTime">
            <summary>
            å·¥ä»¶å‡ºåº“结束时间
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineSearch.CarNo">
            <summary>
            å°è½¦ç 
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineSearch.WorkPieceUnLineUserName">
            <summary>
            å‡ºåº“人名称
            </summary>
        </member>
        <member name="T:iWare.Wms.Application.WorkPieceUnLineInput">
            <summary>
            å·¥ä»¶å‡ºåº“信息输入参数
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineInput.WorkPieceID">
            <summary>
            å·¥ä»¶å·
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineInput.OP80NewCode">
            <summary>
            OP80打码
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineInput.CarNo">
            <summary>
            å°è½¦ç 
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.AddWorkPieceUnLineInput.WorkPieceID">
            <summary>
            å·¥ä»¶å·
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.AddWorkPieceUnLineInput.OP80NewCode">
            <summary>
            OP80打码
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.AddWorkPieceUnLineInput.CarNo">
            <summary>
            å°è½¦ç 
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.UpdateWorkPieceUnLineInput.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="T:iWare.Wms.Application.WorkPieceUnLineOutput">
            <summary>
            å·¥ä»¶å‡ºåº“信息输出参数
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineOutput.WorkPieceID">
            <summary>
            å·¥ä»¶å·
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineOutput.OP80NewCode">
            <summary>
            OP80打码
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineOutput.CarNo">
            <summary>
            å°è½¦ç 
            </summary>
        </member>
        <member name="P:iWare.Wms.Application.WorkPieceUnLineOutput.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="T:iWare.Wms.Application.WorkPieceUnLineService">
            <summary>
            å·¥ä»¶å‡ºåº“下线信息服务
            </summary>
        </member>
        <member name="M:iWare.Wms.Application.WorkPieceUnLineService.Page(iWare.Wms.Application.WorkPieceUnLineSearch)">
            <summary>
            åˆ†é¡µæŸ¥è¯¢å·¥ä»¶å‡ºåº“下线信息
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:iWare.Wms.Application.WorkPieceUnLineService.Get(iWare.Wms.Application.QueryeWorkPieceUnLineInput)">
            <summary>
            èŽ·å–å·¥ä»¶å‡ºåº“ä¸‹çº¿ä¿¡æ¯
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:iWare.Wms.Application.WorkPieceUnLineService.List(iWare.Wms.Application.WorkPieceUnLineInput)">
            <summary>
            èŽ·å–å·¥ä»¶å‡ºåº“ä¸‹çº¿ä¿¡æ¯åˆ—è¡¨
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:iWare.Wms.Application.WorkPieceUnLineService.Revoke(System.Collections.Generic.List{iWare.Wms.Application.DeleteWorkPieceUnLineInput})">
            <summary>
            æ’¤é”€å·¥ä»¶å‡ºåº“下线信息
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="T:iWare.Wms.Application.YieldAnalysisDto">
            <summary>
            äº§çº¿äº§é‡ç»Ÿè®¡è¾“出参数
iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceInfo.cs
@@ -14,6 +14,16 @@
    public class WorkPieceInfo : DEntityBase
    {
        /// <summary>
        /// è´¨é‡ä¸åˆæ ¼åŽŸå› ç±»åž‹ï¼Œæžšä¸¾QualityNoOkEnum ã€Editby shaocx,2024-06-26】
        /// </summary>
        public int? QualityNoOk { get; set; }
        /// <summary>
        /// è´¨é‡ä¸åˆæ ¼åŽŸå›  ã€Editby shaocx,2024-06-26】
        /// </summary>
        public string QualityNoOkReason { get; set; }
        /// <summary>
        /// å·¥ä»¶å·
        /// </summary>
        [Comment("工件号")]
iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceOutboundRecord.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
* @author : http://www.chiner.com.cn
* @date : 2024-1-9
* @desc : å·¥ä»¶å‡ºåº“记录表
*/
namespace iWare.Wms.Core
{
    /// <summary>
    /// å·¥ä»¶å‡ºåº“记录表
    /// </summary>
    [Table("WorkPieceOutboundRecord")]
    [Comment("工件出库记录表")]
    public class WorkPieceOutboundRecord : DEntityBase
    {
        /// <summary>
        /// æ“ä½œç±»åž‹ (下线、撤销下线、出库、撤销出库)
        /// </summary>
        [Comment("操作类型")]
        [MaxLength(500)]
        public string OperationType { get; set; }
        /// <summary>
        /// æˆå“ç 
        /// </summary>
        [Comment("成品码")]
        [Required]
        [MaxLength(255)]
        public string OP80NewCode { get; set; }
        /// <summary>
        /// å·¥ä»¶å·
        /// </summary>
        [Comment("工件号")]
        [MaxLength(32)]
        public string WorkPieceID { get; set; }
        /// <summary>
        /// å°è½¦ç 
        /// </summary>
        [Comment("小车码")]
        [MaxLength(32)]
        public string CarNo { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        [Comment("备注")]
        [MaxLength(500)]
        public string Remark { get; set; }
    }
}
iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceProcess.cs
@@ -21,6 +21,15 @@
    [Comment("工件加工履历表")]
    public class WorkPieceProcess : DEntityBase
    {
        /// <summary>
        /// è´¨é‡ä¸åˆæ ¼åŽŸå› ç±»åž‹ï¼Œæžšä¸¾QualityNoOkEnum ã€Editby shaocx,2024-06-26】
        /// </summary>
        public int? QualityNoOk { get; set; }
        /// <summary>
        /// è´¨é‡ä¸åˆæ ¼åŽŸå›  ã€Editby shaocx,2024-06-26】
        /// </summary>
        public string QualityNoOkReason { get; set; }
        /// <summary>
        /// å·¥ä»¶å·
iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceUnLine.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
* @author : http://www.chiner.com.cn
* @date : 2024-1-9
* @desc : å·¥ä»¶å‡ºåº“表
*/
namespace iWare.Wms.Core
{
    /// <summary>
    /// å·¥ä»¶ä¸‹çº¿è¡¨
    /// </summary>
    [Table("WorkPieceUnLine")]
    [Comment("工件下线表")]
    public class WorkPieceUnLine : DEntityBase
    {
        /// <summary>
        /// æˆå“ç 
        /// </summary>
        [Comment("成品码")]
        [Required]
        [MaxLength(255)]
        public string OP80NewCode { get; set; }
        /// <summary>
        /// å·¥ä»¶å·
        /// </summary>
        [Comment("工件号")]
        [MaxLength(32)]
        public string WorkPieceID { get; set; }
        /// <summary>
        /// å°è½¦ç 
        /// </summary>
        [Comment("小车码")]
        [MaxLength(32)]
        public string CarNo { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        [Comment("备注")]
        [MaxLength(500)]
        public string Remark { get; set; }
    }
}