helongyang
8 小时以前 a9a3f943efb083de8ed88b293897886b3ef612a2
功能增添优化
已添加1个文件
已修改27个文件
364 ■■■■ 文件已修改
代码管理/LargeScreen/CP-Screen/src/api/ajax.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/LargeScreen/CP-Screen/src/api/http.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/LargeScreen/CP-Screen/src/views/indexs/left-bottom.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/LargeScreen/CP-Screen/src/views/indexs/pass-two.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/config/buttons.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/inbound/inboundOrder.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/inbound/purchaseOrder.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/inbound/receiveOrder.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/outbound/outboundOrder.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/outbound/proOutOrder.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/stock/ProStockView.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/proOutOrderTypeEnum.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_ReceiveOrder.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Completed.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/LargeScreen/CP-Screen/src/api/ajax.js
@@ -3,7 +3,7 @@
// import { config } from 'vue/types/umd';
axios.defaults.withCredentials=true;
axios.defaults.crossDomain=true;
axios.defaults.baseURL = 'http://127.0.0.1:7081';//'http://192.168.2.51:8099'; //'http://localhost:8099'; //'http://192.168.2.51:8099';//
axios.defaults.baseURL = 'http://10.30.4.92:7081';//'http://192.168.2.51:8099'; //'http://localhost:8099'; //'http://192.168.2.51:8099';//
axios.defaults.headers.post["Content-Type"]="application/json;charset=utf-8";
// é”™è¯¯ä¿¡æ¯å¤„理
const  errorHandle = (status, other) => {
´úÂë¹ÜÀí/LargeScreen/CP-Screen/src/api/http.js
@@ -29,5 +29,5 @@
}
//成品近七天任务统计
export function  GetProWeekTasks (data) {
    return axios.post('/api/Large/GetProWeekTasks', data)//返回的时promies对象,所以直接return出去就好了
    return axios.post('/api/Large/GetProWeekTasks?id=7', data)//返回的时promies对象,所以直接return出去就好了
}
´úÂë¹ÜÀí/LargeScreen/CP-Screen/src/views/indexs/left-bottom.vue
@@ -55,7 +55,7 @@
          itemWidth: 10,
          itemHeight: 10,
          icon: 'circle',
          data: ['成品入库', '成品出库', '空框回流', '成品回库']
          data: ['成品入库', '成品出库', '成品调拨', '成品退库']
        },
        grid: {
          left: '8%',
@@ -126,7 +126,7 @@
            }
          },
          { 
            name: '空框回流',
            name: '成品调拨',
            type: 'line', 
            data: [],
            areaStyle: {
@@ -137,7 +137,7 @@
            }
          },
          { 
            name: '成品回库',
            name: '成品退库',
            type: 'line', 
            data: [],
            areaStyle: {
@@ -180,16 +180,16 @@
      const seriesData = {
        '成品入库': [],
        '成品出库': [],
        '空框回流': [],
        '成品回库': []
        '成品调拨': [],
        '成品退库': []
      };
      
      // æ ¹æ®å®žé™…数据格式调整字段名(小写开头)
      stats.forEach(day => {
        seriesData['成品入库'].push(day.inProduct || 0);
        seriesData['成品出库'].push(day.outProduct || 0);
        seriesData['空框回流'].push(day.emptyProductBack || 0);
        seriesData['成品回库'].push(day.inProductBack || 0);
        seriesData['成品调拨'].push(day.emptyProductBack || 0);
        seriesData['成品退库'].push(day.inProductBack || 0);
      });
      
      this.options = {
´úÂë¹ÜÀí/LargeScreen/CP-Screen/src/views/indexs/pass-two.vue
@@ -218,7 +218,7 @@
      // });
      var rep = await ProductionRanking();
      var cityLists= rep.map((item,index) => {
        return '#'+(index+1)+' äº§å“'+item.pCode;
        return 'TOP'+(index+1)+' äº§å“'+item.pCode;
      });
      var cityDatas= rep.map((item,index) => {
        return item.qtys;
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/config/buttons.js
@@ -105,6 +105,7 @@
    name: "取 æ¶ˆ ä»» åŠ¡",
    icon: '',
    class: '',
    type: 'danger',
    value: 'TaskHandCancel',
    onClick: function () {
    }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js
@@ -24,8 +24,9 @@
          if (rows.length == 0) return this.$error("请选择数据!");
          if (rows.length > 1) return this.$error("请选择一条数据!");
          var param = rows[0].taskNum;
          var warehouseId = rows[0].warehouseId;
          this.http
            .post("api/Task/TaskCancel?taskNum="+param, "数据处理中...")
            .post("api/Task/TaskHandCancel?taskNum="+param+"&&warehouseId="+warehouseId, "数据处理中...")
            .then((x) => {
              if (x.status) {
                this.$Message.success('任务取消成功.');
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/inbound/inboundOrder.vue
@@ -99,6 +99,10 @@
        { title: "创建时间", field: "createDate", type: "datetime" },
        { title: "所属仓库", field: "warehouseId",type: "selectList",dataKey: "warehouses",data: [],}
      ],
      [
        { title: "物料编号", field: "materielCode", type: "like" },
        { title: "批次号", field: "batchNo", type: "like" },
      ],
    ]);
    const columns = ref([
      {
@@ -115,7 +119,7 @@
        field: "inboundOrderNo",
        title: "单据编号",
        type: "string",
        width: 120,
        width: 180,
        align: "left",
        link: true,
      },
@@ -244,7 +248,7 @@
          field: "batchNo",
          title: "批次号",
          type: "decimal",
          width: 90,
          width: 130,
          align: "left",
          edit: { type: "" },
          required: true,
@@ -269,7 +273,7 @@
          field: "overInQuantity",
          title: "上架数量",
          type: "string",
          width: 200,
          width: 120,
          align: "left",
        },
        {
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/inbound/purchaseOrder.vue
@@ -81,6 +81,16 @@
          dataKey: "purchaseOrderStatus",
          data: [],
        },
      ],
      [
        { title: "物料编号", field: "materielCode", type: "like" },
        {
          title: "所属仓库",
          field: "warehouseId",
          type: "select",
          dataKey: "warehouses",
          data: [],
        },
      ]
    ]);
    const columns = ref([
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/inbound/receiveOrder.vue
@@ -50,12 +50,17 @@
          dataKey: "receiveStatus",
          data: [],
        },
        {title: "物料编号",field: "materielCode",type: "like"},
      ],
      [
        { title: "供应商", field: "suppliersId", type: "select",dataKey:"suppliers",data:[]},
        {field: "lotNo",title: "批次号",type: "like",},
        { title: "供应商", field: "suppliersId", type: "selectList",dataKey:"suppliers",data:[]},
        { title: "创建者", field: "creater", type: "like" },
        { title: "所属仓库", field: "warehouseId",type: "selectList",dataKey: "warehouses",data: [],}
      ],
      [
        {field: "purchaseOrderNo",title: "采购单号",type: "like",},
      ],
    ]);
    const editFormFields = ref({
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/outbound/outboundOrder.vue
@@ -118,6 +118,9 @@
        { title: "创建时间", field: "createDate", type: "datetime" },
        { title: "所属仓库", field: "warehouseId",type: "selectList",dataKey: "warehouses",data: [],}
      ],
      [
        { title: "物料编号", field: "materielCode", type: "like" },
      ],
    ]);
    const columns = ref([
      {
@@ -164,7 +167,7 @@
      {
        field: "orderStatus",
        title: "单据状态",
        type: "decimal",
        type: "string",
        width: 90,
        align: "left",
        bind: { key: "outboundStatusEnum", data: [] },
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/outbound/proOutOrder.vue
@@ -93,25 +93,19 @@
        { title: "上游单据编号", field: "upperOrderNo", type: "like" },
        {
          title: "单据类型",
          field: "orderType",
          field: "proOrderType",
          type: "select",
          dataKey: "outOrderType",
          dataKey: "proOutOrderTypeEnum",
          data: [],
        },
        {
          title: "单据状态",
          field: "orderStatus",
          type: "select",
          dataKey: "outboundStatusEnum",
          data: [],
        },
      ],
      [
        {
          title: "创建方式",
          field: "createType",
          title: "单据状态",
          field: "proOrderStatus",
          type: "select",
          dataKey: "createType",
          dataKey: "outboundStatusEnum",
          data: [],
        },
        { title: "创建者", field: "creater", type: "like" },
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/stock/ProStockView.vue
@@ -44,16 +44,18 @@
      const searchFormOptions = ref([
        [
          { title: "胶框号", field: "palletCode",type: "like" },
          // { title: "货位编号", field: "locationCode",type: "like" },
          { title: "货位状态", field: "locationStatus" ,type: "selectList",dataKey: "locationStatusEnum",data: [],},
          { title: "库存状态", field: "stockStatus",type: "selectList",dataKey: "stockStatusEmun",data: [],},
          { title: "产品编码", field: "productCode",type: "like"},
        ],
        [
          { title: "批次号", field: "lotNumber",type: "like"},
          { title: "产品版本", field: "productVersion",type: "like"},
          { title: "货位编号", field: "locationCode",type: "like" },
          { title: "指派版本", field: "specifyVer",type: "like"},
          { title: "所属仓库", field: "warehouseId",type: "selectList",dataKey: "warehouses",data: [],},
        ],
        [
          { title: "产品版本", field: "productVersion",type: "like"},
        ]
      ]);
      const columns = ref([
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/stock/stockInfoDetail.vue
@@ -117,9 +117,13 @@
    });
    const searchFormOptions = ref([
      [
        { title: "物料编号", field: "materielCode" },
        { title: "物料名称", field: "materielName" },
        { title: "单据编号", field: "orderNo" },
        { title: "物料编号", field: "materielCode",type :"like"},
        { title: "物料名称", field: "materielName",type :"like"},
        { title: "单据编号", field: "orderNo",type :"like"},
      ],
      [
        { title: "批次号", field: "batchNo",type :"like"},
        {title: "库存明细状态",field: "status",type: "select",dataKey:"stockStatusEmun", data: []},
      ],
    ]);
    const columns = ref([
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue
@@ -43,7 +43,7 @@
    const searchFormOptions = ref([
      [
        { title: "托盘编号", field: "palletCode",type: "like" },
        // { title: "货位编号", field: "locationCode",type: "like" },
        { title: "货位编号", field: "locationCode",type: "like" },
        { title: "货位状态", field: "locationStatus" ,type: "selectList",dataKey: "locationStatusEnum",data: [],},
        { title: "库存状态", field: "stockStatus",type: "selectList",dataKey: "stockStatusEmun",data: [],},
      ],
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/proOutOrderTypeEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEA_Common.OrderEnum
{
    public enum ProOutOrderTypeEnum
    {
        /// <summary>
        /// è®¢å•出货
        /// </summary>
        [Description("订单出货")]
        è®¢å•出货 = 1,
        /// <summary>
        /// é”€å”®å‡ºåº“
        /// </summary>
        [Description("销售出库")]
        é”€å”®å‡ºåº“ = 2,
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
@@ -53,6 +53,7 @@
        public virtual PageGridData<TEntity> GetPageData(PageDataOptions options)
        {
            string wheres = options.ValidatePageOptions(TProperties);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -391,5 +391,12 @@
        /// </summary>
        WebResponseContent OutProductSelect(int orderDetailId, List<ProStockViewDTO> proStockViews);
        WebResponseContent GetZHMesMaterialLot(string materialLot);
        /// <summary>
        /// ä»»åŠ¡å–æ¶ˆ
        /// </summary>
        /// <param name="taskNum"></param>
        /// <param name="warehouseId"></param>
        /// <returns></returns>
        public Task<WebResponseContent> TaskHandCancel(int taskNum, int warehouseId);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -78,6 +78,42 @@
            _warehouseService = warehouseService;
            _palletTypeInfoRepository = palletTypeInfoRepository;
        }
        public override PageGridData<Dt_InboundOrder> GetPageData(PageDataOptions options)
        {
            PageGridData<Dt_InboundOrder> pageGridData = base.GetPageData(options);
            ISugarQueryable<Dt_InboundOrder> sugarQueryable1 = BaseDal.Db.Queryable<Dt_InboundOrder>().Includes(x => x.Details);
            if (!string.IsNullOrEmpty(options.Wheres))
            {
                List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
                int totalCount = 0;
                if (searchParametersList.Count > 0)
                {
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_InboundOrderDetail.MaterielCode).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value)));
                            List<Dt_InboundOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                            return new PageGridData<Dt_InboundOrder>(totalCount, dataList);
                        }
                    }
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_InboundOrderDetail.BatchNo).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.BatchNo.Contains(searchParameters.Value)));
                            List<Dt_InboundOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                            return new PageGridData<Dt_InboundOrder>(totalCount, dataList);
                        }
                    }
                }
            }
            return pageGridData;
        }
        public override object GetDetailPage(PageDataOptions pageData)
        {
            Type t = typeof(Dt_InboundOrder);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs
@@ -1,4 +1,5 @@
using System;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -36,6 +37,42 @@
            _supplierInfoRepository = supplierInfoRepository;
            _materielInfoRepository = materielInfoRepository;
        }
        public override PageGridData<Dt_PurchaseOrder> GetPageData(PageDataOptions options)
        {
            PageGridData<Dt_PurchaseOrder> pageGridData = base.GetPageData(options);
            ISugarQueryable<Dt_PurchaseOrder> sugarQueryable1 = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Includes(x => x.Details);
            if (!string.IsNullOrEmpty(options.Wheres))
            {
                List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
                int totalCount = 0;
                if (searchParametersList.Count > 0)
                {
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_PurchaseOrderDetail.MaterielCode).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value)));
                            List<Dt_PurchaseOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                            return new PageGridData<Dt_PurchaseOrder>(totalCount, dataList);
                        }
                    }
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_PurchaseOrderDetail.WarehouseId).FirstLetterToLower());
                        if (searchParameters != null && int.TryParse(searchParameters.Value, out int warehouseId))
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x =>x.Details.Any(v => v.WarehouseId == warehouseId));
                            List<Dt_PurchaseOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                            return new PageGridData<Dt_PurchaseOrder>(totalCount, dataList);
                        }
                    }
                }
            }
            return pageGridData;
        }
        public WebResponseContent GetPurchaseOrderInfo(string purchaseOrderNo)
        {
            try
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs
@@ -17,6 +17,7 @@
using WIDESEA_DTO;
using WIDESEA_DTO.Basic;
using WIDESEA_DTO.ERP;
using WIDESEA_DTO.Stock;
using WIDESEA_External.ERPService;
using WIDESEA_External.Model;
using WIDESEA_IBasicRepository;
@@ -48,11 +49,46 @@
        public override PageGridData<Dt_ReceiveOrder> GetPageData(PageDataOptions options)
        {
            PageGridData<Dt_ReceiveOrder> pageGridData = base.GetPageData(options);
            //foreach (var item in pageGridData.Rows)
            //{
            //    //获取收货明细
            //    item.PurchaseOrderNo
            //}
            ISugarQueryable<Dt_ReceiveOrder> sugarQueryable1 = BaseDal.Db.Queryable<Dt_ReceiveOrder>().Includes(x => x.Details);
            if (!string.IsNullOrEmpty(options.Wheres))
            {
                List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
                int totalCount = 0;
                if (searchParametersList.Count > 0)
                {
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ReceiveOrderDetail.MaterielCode).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value)));
                            List<Dt_ReceiveOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                            return new PageGridData<Dt_ReceiveOrder>(totalCount, dataList);
                        }
                    }
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ReceiveOrderDetail.LotNo).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.LotNo.Contains(searchParameters.Value)));
                            List<Dt_ReceiveOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                            return new PageGridData<Dt_ReceiveOrder>(totalCount, dataList);
                        }
                    }
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ReceiveOrderDetail.PurchaseOrderNo).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.PurchaseOrderNo.Contains(searchParameters.Value)));
                            List<Dt_ReceiveOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                            return new PageGridData<Dt_ReceiveOrder>(totalCount, dataList);
                        }
                    }
                }
            }
            return pageGridData;
        }
        public override WebResponseContent AddData(SaveModel saveModel)
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_ReceiveOrder.cs
@@ -95,7 +95,5 @@
        [Navigate(NavigateType.OneToMany, nameof(Dt_ReceiveOrderDetail.ReceiveOrderId), nameof(ReceiveOrderId))]
        public List<Dt_ReceiveOrderDetail> Details { get; set; }
        [SugarColumn(IsIgnore = true)]
        public string? PurchaseOrderNo { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -61,6 +61,31 @@
            _outStockLockInfoService = outStockLockInfoService;
            _outboundOrderRepository = outboundOrderRepository;
        }
        public override PageGridData<Dt_OutboundOrder> GetPageData(PageDataOptions options)
        {
            PageGridData<Dt_OutboundOrder> pageGridData = base.GetPageData(options);
            ISugarQueryable<Dt_OutboundOrder> sugarQueryable1 = BaseDal.Db.Queryable<Dt_OutboundOrder>().Includes(x => x.Details);
            if (!string.IsNullOrEmpty(options.Wheres))
            {
                List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
                int totalCount = 0;
                if (searchParametersList.Count > 0)
                {
                    {
                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_OutboundOrderDetail.MaterielCode).FirstLetterToLower());
                        if (searchParameters != null)
                        {
                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value)));
                            List<Dt_OutboundOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
                            return new PageGridData<Dt_OutboundOrder>(totalCount, dataList);
                        }
                    }
                }
            }
            return pageGridData;
        }
        public override WebResponseContent AddData(SaveModel saveModel)
        {
            if (saveModel.MainData.TryGetValue(nameof(Dt_OutboundOrder.UpperOrderNo).FirstLetterToLower(), out object? upperOrderNo) && upperOrderNo != null && !string.IsNullOrEmpty(upperOrderNo.ToString()))
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs
@@ -86,6 +86,13 @@
                                    sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.LotNumber.Contains(searchParameters.Value)));
                                }
                            }
                            {
                                SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfo.LocationCode).FirstLetterToLower());
                                if (searchParameters != null)
                                {
                                    sugarQueryable1 = sugarQueryable1.Where(x => x.LocationCode == searchParameters.Value);
                                }
                            }
                        }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs
@@ -72,6 +72,13 @@
                                    sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.BatchNo.Contains(searchParameters.Value)));
                                }
                            }
                            {
                                SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfo.LocationCode).FirstLetterToLower());
                                if (searchParameters != null)
                                {
                                    sugarQueryable1 = sugarQueryable1.Where(x => x.LocationCode == searchParameters.Value);
                                }
                            }
                        }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs
@@ -1289,6 +1289,32 @@
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "proOutOrderTypeEnum":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(ProOutOrderTypeEnum);
                                List<int> enums = Enum.GetValues(typeof(ProOutOrderTypeEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(ProOutOrderTypeEnum).GetField(((ProOutOrderTypeEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                }
                return result;
            }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Completed.cs
@@ -136,5 +136,37 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public async Task<WebResponseContent> TaskHandCancel(int taskNum,int warehouseId)
        {
            try
            {
                Dt_Task task = await Repository.QueryFirstAsync(x => x.TaskNum == taskNum);
                if (task == null)
                {
                    return await Task.FromResult(WebResponseContent.Instance.Error($"未找到任务信息"));
                }
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                {
                    return await Task.FromResult(InboundTaskCompleted(taskNum));
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                {
                    return await Task.FromResult(OutboundTaskCompleted(taskNum));
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                {
                    return await Task.FromResult(RelocationTaskCompleted(task));
                }
                else
                {
                    return await Task.FromResult(WebResponseContent.Instance.Error($"未找到该类型任务,任务类型:{task.TaskType}"));
                }
            }
            catch (Exception ex)
            {
                return await Task.FromResult(WebResponseContent.Instance.Error(ex.Message));
            }
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs
@@ -94,6 +94,15 @@
                            TaskStatus = 0,
                            TaskType = TaskTypeEnum.Relocation.ObjToInt()
                        };
                        string MaterielCode = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
                        float Quantity = (float)stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
                        string BatchNo = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.BatchNo;
                        if (MaterielCode != null && Quantity != null && BatchNo != null)
                        {
                            newTask.MaterielCode = MaterielCode;
                            newTask.Quantity = Quantity;
                            newTask.BatchNo = BatchNo;
                        }
                        if (stockInfo.StockLength>0)
                        {
                            newTask.TaskLength = stockInfo.StockLength;
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -408,5 +408,15 @@
        {
            return Service.TakeOutbound(stockViews);
        }
        /// <summary>
        /// ä»»åŠ¡å–æ¶ˆ
        /// </summary>
        /// <param name="taskNum">任务号</param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("TaskHandCancel"), AllowAnonymous]
        public async Task<WebResponseContent> TaskHandCancel(int taskNum ,int warehouseId)
        {
            return await Service.TaskHandCancel(taskNum,warehouseId);
        }
    }
}