1
heshaofeng
2025-12-24 6e756de136755787168a4b62a70e77b98c69a54f
1
已修改11个文件
539 ■■■■■ 文件已修改
项目代码/WIDESEA_WMSClient/src/extension/inbound/extend/allocateOrderDetail.vue 280 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WMSClient/src/views/Login.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/ESSApiService.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Allocate/AllocateOrderController.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Jobs/InventoryLockJob.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Jobs/QuartzJobMildd.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/extension/inbound/extend/allocateOrderDetail.vue
@@ -315,149 +315,149 @@
      });
    },
    outbound() {
      if (this.selection.length === 0) {
        return this.$message.error("请选择单据明细");
      }
      const platformOptions = [
        { label: "站台2", value: "2-1" },
        { label: "站台3", value: "3-1" },
      ];
      const mountNode = document.createElement("div");
      document.body.appendChild(mountNode);
      // if (this.selection.length === 0) {
      //   return this.$message.error("请选择单据明细");
      // }
      // const platformOptions = [
      //   { label: "站台2", value: "2-1" },
      //   { label: "站台3", value: "3-1" },
      // ];
      // const mountNode = document.createElement("div");
      // document.body.appendChild(mountNode);
      const formData = reactive({
        selectedPlatform: platformOptions[0].value,
      });
      const vnode = createVNode(
        ElDialog,
        {
          title: "出库操作 - é€‰æ‹©å‡ºåº“站台",
          width: "500px",
          modelValue: true,
          appendToBody: true,
          "onUpdate:modelValue": (isVisible) => {
            if (!isVisible) {
              render(null, mountNode);
              document.body.removeChild(mountNode);
            }
          },
          style: {
            padding: "20px 0",
            borderRadius: "8px",
          },
        },
        {
          default: () =>
            h(
              ElForm,
              {
                model: formData,
                rules: {
                  selectedPlatform: [
                    { required: true, message: "请选择出库站台", trigger: "change" },
                  ],
                },
                ref: "outboundForm",
                labelWidth: "100px",
                style: {
                  padding: "0 30px",
                },
              },
              [
                h(ElFormItem, {
                  label: "出库站台",
                  prop: "selectedPlatform",
                  style: {
                    marginBottom: "24px",
                  },
                }, [
                  h(ElSelect, {
                    placeholder: "请选择出库站台(3-12)",
                    modelValue: formData.selectedPlatform,
                    "onUpdate:modelValue": (val) => {
                      formData.selectedPlatform = val;
                    },
                    style: {
                      width: "100%",
                      height: "40px",
                      borderRadius: "4px",
                      borderColor: "#dcdfe6",
                    },
                  }, platformOptions.map((platform) =>
                    h(ElOption, { label: platform.label, value: platform.value })
                  )),
                ]),
                h("div", {
                  style: {
                    textAlign: "right",
                    marginTop: "8px",
                    paddingRight: "4px",
                  },
                }, [
                  h(ElButton, {
                    type: "text",
                    onClick: () => {
                      render(null, mountNode);
                      document.body.removeChild(mountNode);
                      ElMessage.info("取消出库操作");
                    },
                    style: {
                      marginRight: "8px",
                      color: "#606266",
                    },
                  }, "取消"),
                  h(ElButton, {
                    type: "primary",
                    onClick: async () => {
                      const formRef = vnode.component.refs.outboundForm;
                      try {
                        await formRef.validate();
                      } catch (err) {
                        return;
                      }
                      const keys = this.selection.map((item) => item.id);
                      const requestParams = {
                        detailIds: keys,
                        outboundTargetLocation: formData.selectedPlatform,
                        outboundQuantity: 1,
                        operator: "",
                        orderNo: this.row.orderNo,
                      };
                      this.http
                        .post(
                          "api/Outbound/ProcessPickingOutbound",
                          requestParams,
                          "数据处理中"
                        )
                        .then((x) => {
                          if (!x.status) return ElMessage.error(x.message);
                          ElMessage.success("操作成功");
                          this.showDetialBox = false;
                          this.$emit("parentCall", ($vue) => {
                            $vue.getData();
                          });
                          render(null, mountNode);
                          document.body.removeChild(mountNode);
                        })
                      // .catch(() => {
                      //   ElMessage.error("请求失败,请稍后重试");
      // const formData = reactive({
      //   selectedPlatform: platformOptions[0].value,
                      // });
                    },
                    style: {
                      borderRadius: "4px",
                      padding: "8px 20px",
                    },
                  }, "确定出库"),
                ]),
              ]),
        }
      );
      vnode.appContext = this.$.appContext;
      render(vnode, mountNode);
      // const vnode = createVNode(
      //   ElDialog,
      //   {
      //     title: "出库操作 - é€‰æ‹©å‡ºåº“站台",
      //     width: "500px",
      //     modelValue: true,
      //     appendToBody: true,
      //     "onUpdate:modelValue": (isVisible) => {
      //       if (!isVisible) {
      //         render(null, mountNode);
      //         document.body.removeChild(mountNode);
      //       }
      //     },
      //     style: {
      //       padding: "20px 0",
      //       borderRadius: "8px",
      //     },
      //   },
      //   {
      //     default: () =>
      //       h(
      //         ElForm,
      //         {
      //           model: formData,
      //           rules: {
      //             selectedPlatform: [
      //               { required: true, message: "请选择出库站台", trigger: "change" },
      //             ],
      //           },
      //           ref: "outboundForm",
      //           labelWidth: "100px",
      //           style: {
      //             padding: "0 30px",
      //           },
      //         },
      //         [
      //           h(ElFormItem, {
      //             label: "出库站台",
      //             prop: "selectedPlatform",
      //             style: {
      //               marginBottom: "24px",
      //             },
      //           }, [
      //             h(ElSelect, {
      //               placeholder: "请选择出库站台(3-12)",
      //               modelValue: formData.selectedPlatform,
      //               "onUpdate:modelValue": (val) => {
      //                 formData.selectedPlatform = val;
      //               },
      //               style: {
      //                 width: "100%",
      //                 height: "40px",
      //                 borderRadius: "4px",
      //                 borderColor: "#dcdfe6",
      //               },
      //             }, platformOptions.map((platform) =>
      //               h(ElOption, { label: platform.label, value: platform.value })
      //             )),
      //           ]),
      //           h("div", {
      //             style: {
      //               textAlign: "right",
      //               marginTop: "8px",
      //               paddingRight: "4px",
      //             },
      //           }, [
      //             h(ElButton, {
      //               type: "text",
      //               onClick: () => {
      //                 render(null, mountNode);
      //                 document.body.removeChild(mountNode);
      //                 ElMessage.info("取消出库操作");
      //               },
      //               style: {
      //                 marginRight: "8px",
      //                 color: "#606266",
      //               },
      //             }, "取消"),
      //             h(ElButton, {
      //               type: "primary",
      //               onClick: async () => {
      //                 const formRef = vnode.component.refs.outboundForm;
      //                 try {
      //                   await formRef.validate();
      //                 } catch (err) {
      //                   return;
      //                 }
      //                 const keys = this.selection.map((item) => item.id);
      //                 const requestParams = {
      //                   detailIds: keys,
      //                   outboundTargetLocation: formData.selectedPlatform,
      //                   outboundQuantity: 1,
      //                   operator: "",
      //                   orderNo: this.row.orderNo,
      //                 };
      //                 this.http
      //                   .post(
      //                     "api/Outbound/ProcessPickingOutbound",
      //                     requestParams,
      //                     "数据处理中"
      //                   )
      //                   .then((x) => {
      //                     if (!x.status) return ElMessage.error(x.message);
      //                     ElMessage.success("操作成功");
      //                     this.showDetialBox = false;
      //                     this.$emit("parentCall", ($vue) => {
      //                       $vue.getData();
      //                     });
      //                     render(null, mountNode);
      //                     document.body.removeChild(mountNode);
      //                   })
      //                 // .catch(() => {
      //                 //   ElMessage.error("请求失败,请稍后重试");
      //                 // });
      //               },
      //               style: {
      //                 borderRadius: "4px",
      //                 padding: "8px 20px",
      //               },
      //             }, "确定出库"),
      //           ]),
      //         ]),
      //   }
      // );
      // vnode.appContext = this.$.appContext;
      // render(vnode, mountNode);
    },
    outboundbatch() {
      if (this.selection.length === 0) {
ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/extension/outbound/extend/newAllocateOrderDetail.vue
@@ -315,19 +315,149 @@
      });
    },
    outbound() {
      if (this.selection.length === 0) {
        return this.$message.error("请选择单据明细");
      }
      // if (this.selection.length === 0) {
      //   return this.$message.error("请选择单据明细");
      // }
      // const platformOptions = [
      //   { label: "站台2", value: "2-1" },
      //   { label: "站台3", value: "3-1" },
      // ];
      // const mountNode = document.createElement("div");
      // document.body.appendChild(mountNode);
      const keys = this.selection.map((item) => item.id);
      const requestParams = {
        detailIds: keys,
        outboundQuantity: 1,
        operator: "",
        orderNo: this.row.orderNo,
        isBatch: this.isBatch
      };
      this.$refs.DirectOutbound.open(requestParams);
      // const formData = reactive({
      //   selectedPlatform: platformOptions[0].value,
      // });
      // const vnode = createVNode(
      //   ElDialog,
      //   {
      //     title: "出库操作 - é€‰æ‹©å‡ºåº“站台",
      //     width: "500px",
      //     modelValue: true,
      //     appendToBody: true,
      //     "onUpdate:modelValue": (isVisible) => {
      //       if (!isVisible) {
      //         render(null, mountNode);
      //         document.body.removeChild(mountNode);
      //       }
      //     },
      //     style: {
      //       padding: "20px 0",
      //       borderRadius: "8px",
      //     },
      //   },
      //   {
      //     default: () =>
      //       h(
      //         ElForm,
      //         {
      //           model: formData,
      //           rules: {
      //             selectedPlatform: [
      //               { required: true, message: "请选择出库站台", trigger: "change" },
      //             ],
      //           },
      //           ref: "outboundForm",
      //           labelWidth: "100px",
      //           style: {
      //             padding: "0 30px",
      //           },
      //         },
      //         [
      //           h(ElFormItem, {
      //             label: "出库站台",
      //             prop: "selectedPlatform",
      //             style: {
      //               marginBottom: "24px",
      //             },
      //           }, [
      //             h(ElSelect, {
      //               placeholder: "请选择出库站台(3-12)",
      //               modelValue: formData.selectedPlatform,
      //               "onUpdate:modelValue": (val) => {
      //                 formData.selectedPlatform = val;
      //               },
      //               style: {
      //                 width: "100%",
      //                 height: "40px",
      //                 borderRadius: "4px",
      //                 borderColor: "#dcdfe6",
      //               },
      //             }, platformOptions.map((platform) =>
      //               h(ElOption, { label: platform.label, value: platform.value })
      //             )),
      //           ]),
      //           h("div", {
      //             style: {
      //               textAlign: "right",
      //               marginTop: "8px",
      //               paddingRight: "4px",
      //             },
      //           }, [
      //             h(ElButton, {
      //               type: "text",
      //               onClick: () => {
      //                 render(null, mountNode);
      //                 document.body.removeChild(mountNode);
      //                 ElMessage.info("取消出库操作");
      //               },
      //               style: {
      //                 marginRight: "8px",
      //                 color: "#606266",
      //               },
      //             }, "取消"),
      //             h(ElButton, {
      //               type: "primary",
      //               onClick: async () => {
      //                 const formRef = vnode.component.refs.outboundForm;
      //                 try {
      //                   await formRef.validate();
      //                 } catch (err) {
      //                   return;
      //                 }
      //                 const keys = this.selection.map((item) => item.id);
      //                 const requestParams = {
      //                   detailIds: keys,
      //                   outboundTargetLocation: formData.selectedPlatform,
      //                   outboundQuantity: 1,
      //                   operator: "",
      //                   orderNo: this.row.orderNo,
      //                 };
      //                 this.http
      //                   .post(
      //                     "api/Outbound/ProcessPickingOutbound",
      //                     requestParams,
      //                     "数据处理中"
      //                   )
      //                   .then((x) => {
      //                     if (!x.status) return ElMessage.error(x.message);
      //                     ElMessage.success("操作成功");
      //                     this.showDetialBox = false;
      //                     this.$emit("parentCall", ($vue) => {
      //                       $vue.getData();
      //                     });
      //                     render(null, mountNode);
      //                     document.body.removeChild(mountNode);
      //                   })
      //                 // .catch(() => {
      //                 //   ElMessage.error("请求失败,请稍后重试");
      //                 // });
      //               },
      //               style: {
      //                 borderRadius: "4px",
      //                 padding: "8px 20px",
      //               },
      //             }, "确定出库"),
      //           ]),
      //         ]),
      //   }
      // );
      // vnode.appContext = this.$.appContext;
      // render(vnode, mountNode);
    },
    outboundbatch() {
      if (this.selection.length === 0) {
ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js
@@ -385,10 +385,13 @@
    if (rows.length == 0) return this.$error("请选择数据!");
    if (rows.length > 1) return this.$error("请选择一条数据!");
    
    // ç¡®ä¿é€‰ä¸­è¡Œæœ‰id(根据实际表格数据字段调整,比如rows[0].detailId等)
    const selectedId = rows[0].id || rows[0].detailId;
    if (!selectedId) return this.$error("选中数据缺少必要ID字段!");
    if(rows[0].orderStatus!=0&&rows[0].orderStatus!=1)return this.$error("该单据已经完成");
    const platformOptions = [
      { label: "站台2", value: "2-1" },
      { label: "站台3", value: "3-1" },
ÏîÄ¿´úÂë/WIDESEA_WMSClient/src/views/Login.vue
@@ -68,8 +68,8 @@
    const codeImgSrc = ref("");
    const value = ref("");
    const userInfo = reactive({
      userName: "admin",
      password: "123456",
      userName: "",
      password: "",
      verificationCode: "1234",
      UUID: undefined,
    });
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_BasicService/ESSApiService.cs
@@ -8,6 +8,8 @@
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
using WIDESEA_Core.Helper;
using WIDESEA_Core.LogHelper;
using WIDESEA_DTO.Basic;
using WIDESEA_IBasicService;
@@ -66,6 +68,8 @@
                var result = await PostAsync<TaskModel, ApiResponse<TasksData>>(url, request);
                if (result != null && result.Code == 0)
                {
                    _logger.LogInformation(result.Serialize());
                    return true;
                }
                return false;
@@ -81,7 +85,9 @@
        private async Task<TResponse> PostAsync<TRequest, TResponse>(string url, TRequest request)
        {
            TResponse response1 = (TResponse)Activator.CreateInstance(typeof(TResponse));
            try
            {
            string json = JsonConvert.SerializeObject(request, new JsonSerializerSettings
            {
                ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver()
@@ -100,7 +106,19 @@
                throw new HttpRequestException(body);
            }
            return JsonConvert.DeserializeObject<TResponse>(body);
                response1 = JsonConvert.DeserializeObject<TResponse>(body);
                return response1;
            }
            catch (Exception ex)
            {
                Logger.Add(request == null ? "" : JsonConvert.SerializeObject(request), response1 == null ? ex.ToString() : JsonConvert.SerializeObject(response1));
                throw new Exception(ex.Message);
            }
            finally
            {
                Logger.Add(request == null ? "" : JsonConvert.SerializeObject(request), response1 == null ? "" : JsonConvert.SerializeObject(response1));
            }
        }
    }
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_BasicService/MESOperation/FeedbackMesService.cs
@@ -12,6 +12,7 @@
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
using WIDESEA_Core.HttpContextUser;
using WIDESEA_Core.LogHelper;
using WIDESEA_Core.Util;
using WIDESEA_DTO.Base;
using WIDESEA_DTO.ReturnMES;
@@ -42,12 +43,13 @@
        public WebResponseContent OutboundFeedback(string orderNo)
        {
            WebResponseContent webResponse = new WebResponseContent();
            try
            {
                Dt_OutboundOrder outboundOrder = _outboundOrderRepository.Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == orderNo).Includes(x => x.Details).First();
                if (outboundOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到对应的出库单信息");
                    return webResponse = WebResponseContent.Instance.Error($"未找到对应的出库单信息");
                }
                List<Dt_MesReturnRecord> returnRecords = BaseDal.QueryData(x => x.OrderNo == orderNo && x.OrderId == outboundOrder.Id && x.ReturnStatus == 2);
@@ -91,12 +93,12 @@
                    MaterialOutboundReturnDTO? returnDTO = BuildOutboundFeedbackData(outboundOrder);
                    if (returnDTO == null)
                    {
                        return WebResponseContent.Instance.Error($"构建回调对象失败");
                        return webResponse = WebResponseContent.Instance.Error($"构建回调对象失败");
                    }
                    if (returnDTO.Details.Count <= 0)
                    {
                        return WebResponseContent.Instance.Error($"该单据无明细可回传");
                        return webResponse = WebResponseContent.Instance.Error($"该单据无明细可回传");
                    }
                    string apiUrl = AppSettings.GetValue("MaterialOutboundFeedbackUrl");
@@ -116,18 +118,18 @@
                    Dt_AllocateOrder allocateOrder = _allocateRepository.QueryFirst(x => x.OrderNo == outboundOrder.OrderNo);
                    if (allocateOrder == null)
                    {
                        return WebResponseContent.Instance.Error($"未找到对应的调拨单");
                        return webResponse = WebResponseContent.Instance.Error($"未找到对应的调拨单");
                    }
                    AllocationReturnDTO? returnDTO = BuildAllocationFeedbackData(outboundOrder, allocateOrder.FromWarehouse, allocateOrder.ToWarehouse);
                    if (returnDTO == null)
                    {
                        return WebResponseContent.Instance.Error($"构建回调对象失败");
                        return webResponse = WebResponseContent.Instance.Error($"构建回调对象失败");
                    }
                    if (returnDTO.Details.Count <= 0)
                    {
                        return WebResponseContent.Instance.Error($"该单据无明细可回传");
                        return webResponse = WebResponseContent.Instance.Error($"该单据无明细可回传");
                    }
                    string apiUrl = AppSettings.GetValue("AllocationFeedbackUrl"); ;
@@ -141,6 +143,8 @@
                    lineNos = returnDTO.Details.Select(x => x.LineNo).ToList();
                    httpResponseResult = _httpClientHelper.Post<MesResponseDTO>(apiUrl, requestData);
                    httpResponseResult.ApiUrl = apiUrl;
                    Logger.Add(requestData, httpResponseResult.Serialize());
                }
                bool isSuccess = httpResponseResult.IsSuccess && httpResponseResult.Data.Code == "200";
@@ -210,14 +214,19 @@
                _unitOfWorkManage.CommitTran();
                int successCount = returnRecords.Where(x => x.ReturnStatus == 1).Count() + (isSuccess ? 1 : 0);
                int failCount = returnRecords.Where(x => x.ReturnStatus == 2).Count() + (isSuccess ? 1 : 0);
                WebResponseContent responseContent = new WebResponseContent();
                responseContent.Status = true;
                responseContent.Message = $"回调成功条数:{successCount},回调失败条数:{failCount}";
                return responseContent;
                webResponse.Status = true;
                webResponse.Message = $"回调成功条数:{successCount},回调失败条数:{failCount}";
                return webResponse;
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
                return webResponse = WebResponseContent.Instance.Error(ex.Message);
            }
            finally
            {
                Logger.Add(orderNo, webResponse.Serialize());
            }
        }
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_InboundService/InboundService.cs
@@ -120,6 +120,7 @@
                        StockId = stockInfo == null ? 0 : stockInfo.Id,
                        Barcode = item.Barcode,
                        MaterielCode = item.MaterielCode,
                        MaterielName = item.MaterielName,
                        BatchNo = item.BatchNo,
                        Unit = item.Unit,
                        InboundOrderRowNo = item.lineNo,
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs
@@ -1435,7 +1435,7 @@
                        List<Barcodes> barcodesList = new List<Barcodes>();
                        Barcodes barcodes = new Barcodes
                        {
                            Barcode = newBarcode,
                            Barcode = isUnpacked ? newBarcode : stockDetail?.Barcode,
                            Qty = barcodeQuantity,
                            SupplyCode = stockDetail?.SupplyCode ?? "",
                            BatchNo = stockDetail?.BatchNo ?? "",
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Allocate/AllocateOrderController.cs
@@ -71,7 +71,7 @@
                {
                    return WebResponseContent.Instance.Error($"条码不能为空");
                }
                var materialName = _materialInfoRepository.QueryFirst(x => x.MaterielCode == detailDto.materialCode).MaterielName;
                var materialName = _materialInfoRepository.QueryFirst(x => x.MaterielCode == detailDto.MaterialCode).MaterielName;
                if (detailDto.Barcodes != null && detailDto.Barcodes.Any())
                {
                    foreach (var barcodeDto in detailDto.Barcodes)
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Jobs/InventoryLockJob.cs
@@ -22,13 +22,13 @@
        {
            // ç¬¬ä¸€æ­¥ï¼šæ›´æ–°ValidDate的原生SQL(SQL Server)
            string updateSql = @"
    UPDATE s
    SET s.ValidDate = DATEADD(DAY, m.ValidityDays, s.CreateDate)
    FROM Dt_StockInfoDetail s
    INNER JOIN Dt_MaterialExpirationDate m ON SUBSTRING(s.MaterielCode, 1, 6) = m.MaterialCode
    WHERE s.ValidDate IS NULL";
            int updateValidDateResult = _db.Ado.ExecuteCommand(updateSql);
    //        string updateSql = @"
    //UPDATE s
    //SET s.ValidDate = DATEADD(DAY, m.ValidityDays, s.CreateDate)
    //FROM Dt_StockInfoDetail s
    //INNER JOIN Dt_MaterialExpirationDate m ON SUBSTRING(s.MaterielCode, 1, 6) = m.MaterialCode
    //WHERE s.ValidDate IS NULL";
    //        int updateValidDateResult = _db.Ado.ExecuteCommand(updateSql);
            // ç¬¬äºŒæ­¥ï¼šæ›´æ–°è¿‡æœŸçŠ¶æ€çš„åŽŸç”ŸSQL
            string updateStatusSql = @"
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Jobs/QuartzJobMildd.cs
@@ -21,19 +21,19 @@
            {
                var allQzServices = new List<TasksQz>()
                {
                    //new TasksQz()
                    //{
                    //     Id = 1,
                    //     AssemblyName = "WIDESEA_WMSServer",
                    //     ClassName = "AgvTaskJob",
                    //     CreateTime = DateTime.Now,
                    //     IntervalSecond = 3,
                    //     IsDeleted = false,
                    //     IsStart = false,
                    //     JobGroup = "WIDESEA_WMSServer",
                    //     Name = "AgvTaskJob",
                    //     TriggerType = 0
                    //},
                    new TasksQz()
                    {
                         Id = 1,
                         AssemblyName = "WIDESEA_WMSServer",
                         ClassName = "AgvTaskJob",
                         CreateTime = DateTime.Now,
                         IntervalSecond = 3,
                         IsDeleted = false,
                         IsStart = false,
                         JobGroup = "WIDESEA_WMSServer",
                         Name = "AgvTaskJob",
                         TriggerType = 0
                    },
                   
                };
                foreach (var item in allQzServices)