1
wangxinhui
2025-01-08 3a5e73739050cda77ab84b40f25325052ee1589d
1
已删除5个文件
已修改22个文件
已添加6个文件
383 ■■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8e07ae55-a2e7-4407-b10c-4a5a0c8d3f3a.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/cb0e6cfe-b8a2-4bb4-9574-a561d0b9db2f.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/deceff76-03d0-48d5-ac65-83517384b15c.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/extend/printView.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/basic/palletCodeInfo.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/outbound/outboundOrder.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/339ccc6a-95ea-4f78-8616-45299be9dd90.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4b4ce8f6-d231-4356-8904-ece35b20d64d.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4fec8e67-dfd5-4718-85f6-34a768d755a0.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/51bc4fd8-adae-43fe-aa0e-8971136a692a.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7642b8c6-bd3f-4908-bf14-ca43dc4c45ad.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/8539cb77-7e84-4341-9770-afbaf8607c93.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d25efbec-11d1-4ce7-a481-6187db1d5fbb.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ded353f3-6bf3-40c6-8b96-96fcf461f35c.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/CommonEnum/PrintStatusEnum.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IPalletCodeInfoService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs 180 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundLockInfo.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrderDetail.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrderDetail_Hty.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8e07ae55-a2e7-4407-b10c-4a5a0c8d3f3a.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/cb0e6cfe-b8a2-4bb4-9574-a561d0b9db2f.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/deceff76-03d0-48d5-ac65-83517384b15c.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/basic/extend/printView.vue
@@ -66,9 +66,16 @@
      printWindow.focus();
      printWindow.print();
      printWindow.close();
      this.http
            .post("api/palletCodeInfo/PrintStatusUp?printCode="+this.palletCode, null, "数据处理中")
            .then((x) => {
              if (!x.status) return this.$message.error(x.message);
              this.$message.success("操作成功");
              this.$parent.refresh();
              this.showDetialBox = false;
            });
    },
  },
  created() {},
};
</script>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue
@@ -179,9 +179,12 @@
        });
    },
    outbound() {
      if(this.selection.length<=0){
        return this.$message.error("请勾选");
      }
      this.http
        .post(
          "api/Task/GenerateOutboundTask?id=" + this.row.id,
          "api/Task/GenerateOutboundTask?orderDetailId=" + this.row.id,
          this.selection,
          "数据处理中"
        )
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js
@@ -17,22 +17,22 @@
    methods: {
       //下面这些方法可以保留也可以删除
      onInit() {  
        let InOrder = this.buttons.find(x => x.value == 'StockOutbound');
        if (InOrder) {
          InOrder.onClick = function () {
            let rows = this.$refs.table.getSelected();
            if (rows.length == 0) return this.$error("请选择数据!");
            if (rows.length > 1) return this.$error("请选择单条数据!");
            var keys = rows.map(x => { return x.stockId });
            this.http
              .post("api/Task/Outbound?id="+keys[0], null, "数据处理中")
              .then((x) => {
                if (!x.status) return this.$message.error(x.message);
                this.$message.success("操作成功");
                this.refresh();
              });
          }
        }
        // let InOrder = this.buttons.find(x => x.value == 'StockOutbound');
        // if (InOrder) {
        //   InOrder.onClick = function () {
        //     let rows = this.$refs.table.getSelected();
        //     if (rows.length == 0) return this.$error("请选择数据!");
        //     if (rows.length > 1) return this.$error("请选择单条数据!");
        //     var keys = rows.map(x => { return x.stockId });
        //     this.http
        //       .post("api/Task/Outbound?id="+keys[0], null, "数据处理中")
        //       .then((x) => {
        //         if (!x.status) return this.$message.error(x.message);
        //         this.$message.success("操作成功");
        //         this.refresh();
        //       });
        //   }
        // }
        this.columns.forEach(column => {
          if (column.field == 'materielCode') {
            column.formatter = (row) => {
@@ -71,6 +71,16 @@
              return '<span style="color: #F56C6C">'+ daysSinceClosest+"天"+'</span>';
            }
          }
          if (column.field == 'sumStock') {
            column.formatter = (row) => {
              var sum=0;
              const closestDate = row.details
              .map(x => {
                sum+=(x.stockQuantity)
              })
              return '<span style="color: #F56C6C">'+ sum+row.details[0].unit+'</span>';
            }
          }
        })
      },
      onInited() {
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/basic/palletCodeInfo.vue
@@ -116,14 +116,14 @@
      },
      {
        field: "modifier",
        title: "修改人",
        title: "最后打印人员",
        type: "string",
        width: 100,
        align: "left",
      },
      {
        field: "modifyDate",
        title: "修改时间",
        title: "最后打印时间",
        type: "datetime",
        width: 160,
        align: "left",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/outbound/outboundOrder.vue
@@ -48,6 +48,7 @@
        field: "orderNo",
        title: "单据编号",
        type: "string",
        readonly:true
      },
        {
          title: "上游单据编号",
@@ -142,7 +143,7 @@
        type: "string",
        width: 160,
        align: "left",
        link: true,
        // link: true,
      },
      {
        field: "upperOrderNo",
@@ -269,6 +270,15 @@
          required: true,
        },
        {
          field: "rowNo",
          title: "行号",
          type: "string",
          width: 90,
          align: "left",
          edit: { type: "number" },
          required: true,
        },
        {
          field: "lockQuantity",
          title: "锁定数量",
          type: "int",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue
@@ -93,7 +93,6 @@
        align: "left",
        hidden:true
      },
      {
        field: "materielCode",
        title: "所含物料编号",
@@ -116,6 +115,13 @@
        align: "left",
      },
      {
        field: "sumStock",
        title: "总库存",
        type: "string",
        width: 140,
        align: "left",
      },
      {
        field: "row",
        title: "货位行",
        type: "string",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/339ccc6a-95ea-4f78-8616-45299be9dd90.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4b4ce8f6-d231-4356-8904-ece35b20d64d.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4fec8e67-dfd5-4718-85f6-34a768d755a0.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/51bc4fd8-adae-43fe-aa0e-8971136a692a.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/7642b8c6-bd3f-4908-bf14-ca43dc4c45ad.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/8539cb77-7e84-4341-9770-afbaf8607c93.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d25efbec-11d1-4ce7-a481-6187db1d5fbb.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ded353f3-6bf3-40c6-8b96-96fcf461f35c.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs
@@ -4,6 +4,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseServices;
@@ -80,5 +81,25 @@
                return base.AddData(palletCodeInfos);
            }
        }
        public WebResponseContent PrintStatusUp(string printCode)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_PalletCodeInfo palletCodeInfo = BaseDal.QueryFirst(x=>x.PalletCode==printCode);
                if (palletCodeInfo==null)
                {
                    return content.Error("打印的托盘码不存在");
                }
                palletCodeInfo.Status = PrintStatusEnum.Printed.ObjToInt();
                BaseDal.UpdateData(palletCodeInfo);
                return content.OK();
            }
            catch (Exception ex)
            {
                content.Error("错误:"+ex.Message);
            }
            return content;
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/CommonEnum/PrintStatusEnum.cs
@@ -10,14 +10,14 @@
    public enum PrintStatusEnum
    {
        /// <summary>
        /// å·²æ‰“印
        /// </summary>
        [Description("已打印")]
        Printed = 0,
        /// <summary>
        /// æœªæ‰“印
        /// </summary>
        [Description("未打印")]
        UnPrinted =1
        UnPrinted = 0,
        /// <summary>
        /// å·²æ‰“印
        /// </summary>
        [Description("已打印")]
        Printed = 1
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs
@@ -30,6 +30,10 @@
        /// </summary>
        public string ToolCode { get; set; }
        /// <summary>
        /// æµ‹è¯•架物料名称
        /// </summary>
        public string MaterialName { get; set; }
        /// <summary>
        /// åˆå§‹å¯¿å‘½
        /// </summary>
        public int Life { get; set; }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IPalletCodeInfoService.cs
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
using WIDESEA_Core.BaseServices;
using WIDESEA_Model.Models;
@@ -10,5 +11,7 @@
{
    public interface IPalletCodeInfoService : IService<Dt_PalletCodeInfo>
    {
        //更新打印状态
        WebResponseContent PrintStatusUp(string printCode);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs
@@ -22,7 +22,7 @@
        WebResponseContent MaterielGroup(string palletCode, int Initiallife, int warehouseId, List<string> serNums);
        WebResponseContent FeedbackInboundOrder(int id);
        //WebResponseContent FeedbackInboundOrder(int id);
        WebResponseContent MaterielGroup(SaveModel saveModel);
        /// <summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -347,6 +347,16 @@
                if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())
                {
                    stockInfo.Remark = Initiallife.ToString();
                    string batchNo = models.FirstOrDefault()?.LotNo ?? "";
                    Dt_StockInfoDetail existDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == batchNo);
                    if (existDetail != null)
                    {
                        return WebResponseContent.Instance.Error($"{batchNo}测试架已存在");
                    }
                    if (models.Count>=2)
                    {
                        return WebResponseContent.Instance.Error($"组盘明细不唯一");
                    }
                    if (palletCode.Substring(0, 1) == "6")
                    {
                        stockInfo.PalletType = PalletTypeEnum.MediumPallet.ObjToInt();
@@ -418,14 +428,6 @@
                _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder);
                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
                _unitOfWorkManage.CommitTran();
                //if (warehouse.WarehouseCode==WarehouseEnum.HA153.ToString())
                //{
                //    //同步测试架信息
                //    foreach (var model in models)
                //    {
                //        _taskService.TestSynStock(new TestToolSynInfo() { ToolCode = model.LotNo, Life = Initiallife });
                //    }
                //}
                content.OK();
            }
            catch (Exception ex)
@@ -464,6 +466,7 @@
                float beforeQuantity = 0;
                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
                if (stockInfo == null)
                {
                    stockInfo = new Dt_StockInfo()
@@ -486,6 +489,16 @@
                if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())
                {
                    string batchNo = models.FirstOrDefault()?.LotNo ?? "";
                    Dt_StockInfoDetail existDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == batchNo);
                    if (existDetail != null)
                    {
                        return WebResponseContent.Instance.Error($"{batchNo}测试架已存在");
                    }
                    if (models.Count >= 2)
                    {
                        return WebResponseContent.Instance.Error($"组盘明细不唯一");
                    }
                    stockInfo.Remark = Initiallife.ToString();
                    if (palletCode.Substring(0, 1) == "6")
                    {
@@ -539,11 +552,6 @@
                }
                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup);
                _unitOfWorkManage.CommitTran();
                //同步测试架信息
                //foreach (var model in models)
                //{
                //    _taskService.TestSynStock(new TestToolSynInfo() { ToolCode = model.LotNo, Life = Initiallife });
                //}
                content.OK();
            }
            catch (Exception ex)
@@ -607,82 +615,82 @@
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public WebResponseContent FeedbackInboundOrder(int id)
        {
            try
            {
                Dt_InboundOrder inboundOrder = Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == id).Includes(x => x.Details).First();
                if (inboundOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到入库单信息");
                }
                if (inboundOrder.Details == null || inboundOrder.Details.Count == 0)
                {
                    return WebResponseContent.Instance.Error($"未找到入库单明细信息");
                }
                if (inboundOrder.OrderStatus == InOrderStatusEnum.入库完成.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"入库单据已完成");
                }
        //public WebResponseContent FeedbackInboundOrder(int id)
        //{
        //    try
        //    {
        //        Dt_InboundOrder inboundOrder = Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == id).Includes(x => x.Details).First();
        //        if (inboundOrder == null)
        //        {
        //            return WebResponseContent.Instance.Error($"未找到入库单信息");
        //        }
        //        if (inboundOrder.Details == null || inboundOrder.Details.Count == 0)
        //        {
        //            return WebResponseContent.Instance.Error($"未找到入库单明细信息");
        //        }
        //        if (inboundOrder.OrderStatus == InOrderStatusEnum.入库完成.ObjToInt())
        //        {
        //            return WebResponseContent.Instance.Error($"入库单据已完成");
        //        }
                List<Dt_StockInfo> stockInfos = Db.Queryable<Dt_StockInfo>().Where(x => x.Details.Any(v => v.OrderNo == inboundOrder.InboundOrderNo)).Includes(x => x.Details).ToList();
                List<Dt_Warehouse> warehouses = Db.Queryable<Dt_Warehouse>().ToList();
        //        List<Dt_StockInfo> stockInfos = Db.Queryable<Dt_StockInfo>().Where(x => x.Details.Any(v => v.OrderNo == inboundOrder.InboundOrderNo)).Includes(x => x.Details).ToList();
        //        List<Dt_Warehouse> warehouses = Db.Queryable<Dt_Warehouse>().ToList();
                List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>();
                foreach (var item in inboundOrder.Details)
                {
                    Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(v => v.InboundOrderRowNo == item.RowNo && v.MaterielCode == item.MaterielCode));
                    if (stockInfo == null)
                    {
                        return WebResponseContent.Instance.Error($"未找到库存信息");
                    }
        //        List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>();
        //        foreach (var item in inboundOrder.Details)
        //        {
        //            Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(v => v.InboundOrderRowNo == item.RowNo && v.MaterielCode == item.MaterielCode));
        //            if (stockInfo == null)
        //            {
        //                return WebResponseContent.Instance.Error($"未找到库存信息");
        //            }
                    Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseId == stockInfo.WarehouseId);
                    if (warehouse == null)
                    {
                        return WebResponseContent.Instance.Error($"未找到仓库信息");
                    }
        //            Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseId == stockInfo.WarehouseId);
        //            if (warehouse == null)
        //            {
        //                return WebResponseContent.Instance.Error($"未找到仓库信息");
        //            }
                    ERPInboundDetailModel detailModel = new ERPInboundDetailModel()
                    {
                        ExpiryDate = stockInfo.Details.FirstOrDefault()?.EffectiveDate ?? "",
                        LocationCode = warehouse.WarehouseCode,
                        MaterialsCode = item.MaterielCode,
                        MfgDate = stockInfo.Details.FirstOrDefault()?.ProductionDate ?? "",
                        QtyCustoms = "0",
                        Quantity = stockInfo.Details.Sum(x => x.StockQuantity).ToString(),
                        Rack = stockInfo.LocationCode,
                        ReceiptCode = inboundOrder.UpperOrderNo,
                        ReceiptSerNo = item.RowNo.ToString()
                    };
                    detailModels.Add(detailModel);
                }
                Dt_Warehouse? warehouse2 = warehouses.FirstOrDefault(x => x.WarehouseId == inboundOrder.WarehouseId);
                if (warehouse2 == null)
                {
                    return WebResponseContent.Instance.Error($"未找到仓库信息");
                }
                ERPInboundModel model = new ERPInboundModel()
                {
                    Code = inboundOrder.InboundOrderNo,
                    CreatorCode = inboundOrder.Creater,//测试
                    EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
                    StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    SuppliersId = inboundOrder.SupplierId,
                    Type = "S",
                    UniqueTag = inboundOrder.Id.ToString(),
                    WarehouseCode = warehouse2.WarehouseCode,
                    Way = 1,
                    Details = detailModels
                };
                //测试注释
                _invokeERPService.InvokeInboundOrderApi(model);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        //            ERPInboundDetailModel detailModel = new ERPInboundDetailModel()
        //            {
        //                ExpiryDate = stockInfo.Details.FirstOrDefault()?.EffectiveDate ?? "",
        //                LocationCode = warehouse.WarehouseCode,
        //                MaterialsCode = item.MaterielCode,
        //                MfgDate = stockInfo.Details.FirstOrDefault()?.ProductionDate ?? "",
        //                QtyCustoms = "0",
        //                Quantity = stockInfo.Details.Sum(x => x.StockQuantity).ToString(),
        //                Rack = stockInfo.LocationCode,
        //                ReceiptCode = inboundOrder.UpperOrderNo,
        //                ReceiptSerNo = item.RowNo.ToString()
        //            };
        //            detailModels.Add(detailModel);
        //        }
        //        Dt_Warehouse? warehouse2 = warehouses.FirstOrDefault(x => x.WarehouseId == inboundOrder.WarehouseId);
        //        if (warehouse2 == null)
        //        {
        //            return WebResponseContent.Instance.Error($"未找到仓库信息");
        //        }
        //        ERPInboundModel model = new ERPInboundModel()
        //        {
        //            Code = inboundOrder.InboundOrderNo,
        //            CreatorCode = inboundOrder.Creater,//测试
        //            EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
        //            StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
        //            SuppliersId = inboundOrder.SupplierId,
        //            Type = "S",
        //            UniqueTag = inboundOrder.Id.ToString(),
        //            WarehouseCode = warehouse2.WarehouseCode,
        //            Way = 1,
        //            Details = detailModels
        //        };
        //        //测试注释
        //        _invokeERPService.InvokeInboundOrderApi(model);
        //        return WebResponseContent.Instance.OK();
        //    }
        //    catch (Exception ex)
        //    {
        //        return WebResponseContent.Instance.Error(ex.Message);
        //    }
        //}
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundLockInfo.cs
@@ -42,7 +42,7 @@
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "批次号")]
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "批次号")]
        public string BatchNo { get; set; }
        /// <summary>
@@ -84,7 +84,7 @@
        /// <summary>
        /// è´§ä½ç¼–号
        /// </summary>
        [SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "货位编号")]
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "货位编号")]
        public string LocationCode { get; set; }
        /// <summary>
@@ -92,7 +92,11 @@
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "托盘编号")]
        public string PalletCode { get; set; }
        /// <summary>
        /// å•位
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "单位")]
        public string Unit { get; set; }
        /// <summary>
        /// ä»»åŠ¡å·
        /// </summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrderDetail.cs
@@ -41,7 +41,7 @@
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "批次号")]
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "批次号")]
        public string BatchNo { get; set; }
        /// <summary>
@@ -73,7 +73,11 @@
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "订单明细状态")]
        public int OrderDetailStatus { get; set; }
        /// <summary>
        /// å•位
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "单位")]
        public string Unit { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrderDetail_Hty.cs
@@ -42,7 +42,7 @@
        /// <summary>
        /// 
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "批次号")]
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "批次号")]
        public string BatchNo { get; set; }
        /// <summary>
@@ -82,6 +82,12 @@
        public int SourceId { get; set; }
        /// <summary>
        /// å•位
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "单位")]
        public string Unit { get; set; }
        /// <summary>
        /// 
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "备注")]
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs
@@ -66,7 +66,7 @@
                PalletCode = outStock.PalletCode,
                AssignQuantity = assignQuantity,
                MaterielCode = outboundOrderDetail.MaterielCode,
                BatchNo = outboundOrderDetail.BatchNo,
                BatchNo = outboundOrderDetail.BatchNo ?? outStock.Details.FirstOrDefault()?.BatchNo,
                LocationCode = outStock.LocationCode,
                MaterielName = outboundOrderDetail.MaterielName,
                OrderDetailId = outboundOrderDetail.Id,
@@ -76,7 +76,8 @@
                Status = taskNum == null ? OutLockStockStatusEnum.已分配.ObjToInt() : OutLockStockStatusEnum.出库中.ObjToInt(),
                StockId = outStock.Id,
                TaskNum = taskNum,
                OrderQuantity = outboundOrderDetail.OrderQuantity
                OrderQuantity = outboundOrderDetail.OrderQuantity,
                Unit=outboundOrderDetail.Unit,
            };
            return outStockLockInfo;
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -56,7 +56,19 @@
            _invokeERPService = invokeERPService;
            _outStockLockInfoService = outStockLockInfoService;
        }
        public override WebResponseContent AddData(SaveModel saveModel)
        {
            if (saveModel.MainData.TryGetValue(nameof(Dt_OutboundOrder.UpperOrderNo).FirstLetterToLower(), out object? upperOrderNo) && upperOrderNo != null && !string.IsNullOrEmpty(upperOrderNo.ToString()))
            {
                Dt_OutboundOrder outboundOrder = BaseDal.QueryFirst(x => x.UpperOrderNo == upperOrderNo.ToString() && x.WarehouseId == Convert.ToInt32(saveModel.MainData[nameof(Dt_OutboundOrder.WarehouseId).FirstLetterToLower()]));
                if (outboundOrder != null)
                {
                    return WebResponseContent.Instance.Error($"{upperOrderNo}领料单号已存在");
                }
            }
            saveModel.DetailData[0].Add("orderDetailStatus", OrderDetailStatusEnum.New.ObjToInt());
            return base.AddData(saveModel);
        }
        public WebResponseContent ReceiveOutOrder(ErpOutOrderDTO model)
        {
            try
@@ -112,6 +124,7 @@
                            MaterielName = materielInfo.MaterielName,
                            OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(),
                            OrderQuantity = model.Qty,
                            Unit=materielInfo.MaterielUnit
                        };
                        Dt_OutboundOrder outboundOrder = new Dt_OutboundOrder()
                        {
@@ -181,8 +194,16 @@
                ERPIssueModel issueModel = new ERPIssueModel();
                List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>();
                List<Dt_OutStockLockInfo> _OutStockLockInfos=new List<Dt_OutStockLockInfo>();
                if (outboundOrder==null)
                {
                    return WebResponseContent.Instance.Error("出库单不存在");
                }
                if (outboundOrder.CreateType == OrderCreateTypeEnum.CreateInSystem.ObjToInt())
                {
                    return WebResponseContent.Instance.OK();
                }
                //测试架库给ERP上报出库完成
                if (outStockLockInfos.Count<=0 || outStockLockInfos==null)
                if (warehouse.WarehouseCode==WarehouseEnum.HA64.ToString())
                {
                    stockInfos = TestOutStocksUpdate(warehouse).Data as List<Dt_StockInfo> ?? new List<Dt_StockInfo>();
                    List<ERPPickItemModel> eRPOutPick =new List<ERPPickItemModel>();
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -224,7 +224,7 @@
                {
                    foreach (var model in stockInfo.Details)
                    {
                        TestSynStock(new TestToolSynInfo() { ToolCode = model.BatchNo, Life = int.TryParse(model.Remark, out int val) ? val : 1000 });
                        TestSynStock(new TestToolSynInfo() { ToolCode = model.BatchNo,MaterialName=model.MaterielName ,Life = int.TryParse(model.Remark, out int val) ? val : 1000 });
                    }
                }
@@ -317,7 +317,7 @@
                    }
                }
                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                _unitOfWorkManage.BeginTran();
                if (outboundOrderDetails.Count > 0)
                {
@@ -333,7 +333,6 @@
                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, (LocationStatusEnum)beforeStatus, LocationStatusEnum.Free, LocationChangeType.OutboundCompleted, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
                _unitOfWorkManage.CommitTran();
                if (warehouse.WarehouseCode != WarehouseEnum.HA64.ToString())
                {
                    _outboundService.OutboundOrderService.TestOutUpload(outboundOrderDetails.FirstOrDefault().Id, outStockLockInfos);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs
@@ -134,7 +134,7 @@
                {
                    return WebResponseContent.Instance.Error($"未找到对应的终点货位信息");
                }
                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                _unitOfWorkManage.BeginTran();
                stockInfo.LocationCode = locationInfoEnd.LocationCode;
                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs
@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
using WIDESEA_IBasicService;
using WIDESEA_Model.Models;
@@ -13,5 +14,10 @@
        public PalletCodeInfoController(IPalletCodeInfoService service) : base(service)
        {
        }
        [HttpPost,Route("PrintStatusUp")]
        public WebResponseContent PrintStatusUp(string printCode)
        {
            return Service.PrintStatusUp(printCode);
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs
@@ -70,11 +70,11 @@
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("FeedbackInboundOrder")]
        public WebResponseContent FeedbackInboundOrder(int id)
        {
            return Service.FeedbackInboundOrder(id);
        }
        //[HttpPost, HttpGet, Route("FeedbackInboundOrder")]
        //public WebResponseContent FeedbackInboundOrder(int id)
        //{
        //    return Service.FeedbackInboundOrder(id);
        //}
        [HttpPost, HttpGet, Route("ManualMaterielGroup")]
        public WebResponseContent MaterielGroup(string palletCode, int initiallife, int warehouseId, [FromBody] List<string> serNums)
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -6,7 +6,7 @@
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType,warehouses,suppliers,taskType,receiveStatus,purchaseType",
  "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType,warehouses,suppliers,taskType,receiveStatus,purchaseType,purchaseOrderStatus,printStatus",
  "AllowedHosts": "*",
  "ConnectionStringsEncryption": false,
  "MainDB": "DB_WIDESEA", //当前项目的主库,所对应的连接字符串的Enabled必须为true