hutongqing
2025-01-09 59c8d02d2bc7c7d9651edbd755ad73e4e7843ed8
Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
已修改21个文件
已添加6个文件
372 ■■■■ 文件已修改
代码管理/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/4fec8e67-dfd5-4718-85f6-34a768d755a0.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/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 18 ●●●●● 补丁 | 查看 | 原始文档 | 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 165 ●●●● 补丁 | 查看 | 原始文档 | 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_OutboundService/OutStockLockInfoService.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 3 ●●●● 补丁 | 查看 | 原始文档 | 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/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/4fec8e67-dfd5-4718-85f6-34a768d755a0.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/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
@@ -20,5 +20,23 @@
        
        public T Content { get; set; }
    }
    /// <summary>
    ///测试架同步
    /// </summary>
    public class TestToolSynInfo
    {
        /// <summary>
        /// æµ‹è¯•架批次号
        /// </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
@@ -346,7 +346,28 @@
                    beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
                }
                ;
                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();
                    }
                    else
                    {
                        stockInfo.PalletType = PalletTypeEnum.LargestPallet.ObjToInt();
                    }
                }
                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
                List<int> detailKeys = new List<int>();
@@ -409,14 +430,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)
@@ -455,6 +468,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()
@@ -473,6 +487,29 @@
                        return WebResponseContent.Instance.Error($"托盘号重复");
                    }
                    beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
                }
                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")
                    {
                        stockInfo.PalletType = PalletTypeEnum.MediumPallet.ObjToInt();
                    }
                    else
                    {
                        stockInfo.PalletType = PalletTypeEnum.LargestPallet.ObjToInt();
                    }
                }
                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
@@ -517,11 +554,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)
@@ -585,41 +617,41 @@
        /// </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()
                    {
@@ -687,5 +719,46 @@
            }
            return -1;
        }
        //            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_OutboundService/OutStockLockInfoService.cs
@@ -66,7 +66,7 @@
                PalletCode = outStock.PalletCode,
                AssignQuantity = assignQuantity,
                MaterielCode = outboundOrderDetail.MaterielCode,
                BatchNo = outStock.Details.FirstOrDefault()?.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
@@ -226,7 +226,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 });
                    }
                }
@@ -337,6 +337,7 @@
                    }
                }
                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                _unitOfWorkManage.BeginTran();
                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
´úÂë¹ÜÀí/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