1
dengjunjie
2025-01-15 68a2cc40b6d7f438267f9dc74bb2f6045cf4f01d
1
已删除6个文件
已修改28个文件
已添加5个文件
622 ■■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0ab50d0d-a6f6-4ee8-8c70-1d34f5126aeb.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6d6fd497-0513-41bc-af51-04d63cd9843e.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8cc7cbb4-d887-4b48-8514-053a923806f4.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9d850b17-0be4-494b-9f52-085d0b20437e.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c27c829f-7a3d-4626-bb9f-b920ddec36a6.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/ConveyorLineJob_BC.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/RGVJob_BC.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/StackerCraneJob_BC.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/油墨仓/CommonHoisterJob.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/config/buttons.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/addMesOutOrder.vue 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/mesOutboundOrder.js 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/outbound/mesOutboundOrder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2ad7410e-7b16-4692-8ca2-e7055946c8fa.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4b3148ac-ac73-4f51-871c-b180e5505f3e.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d7c583d9-acf0-49bb-8248-e69ce4ffd40c.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/dd0e45d4-3741-49da-b1eb-25a4729fc53f.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/MesOutboundOrderType.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IMesOutboundOrderService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/MesOutboundOrderController.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/淮安PDA/common/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/淮安PDA/pages/stash/TakeStock.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/淮安PDA/pages/stash/boxing.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/淮安PDA/pages/stash/pickingMat.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/淮安PDA/pages/stash/raworderboxing.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/淮安PDA/pages/stash/receiveorder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/淮安PDA/pages/stash/receiveorderoutbound.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0ab50d0d-a6f6-4ee8-8c70-1d34f5126aeb.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6d6fd497-0513-41bc-af51-04d63cd9843e.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8cc7cbb4-d887-4b48-8514-053a923806f4.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9d850b17-0be4-494b-9f52-085d0b20437e.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c27c829f-7a3d-4626-bb9f-b920ddec36a6.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj
@@ -8,7 +8,7 @@
    <ItemGroup>
        <PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
        <PackageReference Include="WIDESEAWCS_Core" Version="1.0.11" />
        <PackageReference Include="WIDESEAWCS_Core" Version="1.0.12" />
    </ItemGroup>
    <ItemGroup>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs
@@ -53,6 +53,7 @@
                        {
                            agvTask.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
                            //agvTask.Remark = content.Data.ObjToString();
                            _taskService.UpdateTask(agvTask, TaskStatusEnum.AGV_Executing);
                        }
                        else
                        {
@@ -88,7 +89,7 @@
                {
                    if (WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                    {
                        if (WaitToTasks.FirstOrDefault(x=>x.TaskState==TaskStatusEnum.AGV_Puting.ObjToInt())!=null)
                        if (WaitToTasks.FirstOrDefault(x=>x.TaskState==TaskStatusEnum.AGV_Puting.ObjToInt() || x.TaskState == TaskStatusEnum.Finish.ObjToInt()) !=null)
                        {
                            continue;
                        }
@@ -150,16 +151,19 @@
                    if (content.Status && WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                    {
                        WaitToTask.TaskState = TaskStatusEnum.AGV_Puting.ObjToInt();
                        _taskService.UpdateTask(WaitToTask, TaskStatusEnum.AGV_Puting);
                        break;
                    }
                    else if (content.Status && WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                    {
                        WaitToTask.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
                        _taskService.UpdateTask(WaitToTask, TaskStatusEnum.AGV_Executing);
                    }
                    else
                    {
                        WaitToTask.TaskState = TaskStatusEnum.Exception.ObjToInt();
                        WaitToTask.ExceptionMessage = content.Message;
                        _taskService.UpdateTask(WaitToTask, TaskStatusEnum.Exception);
                    }
                }
                _taskService.UpdateData(WaitToTasks);
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/°å²Ä²Ö/ConveyorLineJob_BC.cs
@@ -114,6 +114,13 @@
                                        _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: item.StationDeviceCode, roadwayNo: responseContent.Data.ToString() ?? "");
                                    }
                                }
                                else
                                {
                                    if (conveyorLineInfoWrite.Spare2 != 0)
                                    {
                                        WriteDebug(device.DeviceName, $"启动信号已写入");
                                    }
                                }
                                #endregion
                            }
@@ -173,6 +180,10 @@
                                        device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                                        _taskService.UpdateTask(task, taskState, currentAddress: currentAddress, nextAddress: nextAddress, targetAddress: targetAddress, deviceCode: deviceCode);
                                    }
                                    else
                                    {
                                        WriteInfo(device.DeviceName, $"未找到托盘{conveyorLineInfoRead.Barcode}对应的任务信息");
                                    }
                                    #endregion
                                }
                                else//生产退库
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/°å²Ä²Ö/RGVJob_BC.cs
@@ -201,6 +201,7 @@
                            }
                            else if (conveyorLineSignalRead.STB /*&& conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm*/ && !conveyorLineSignalWrite.ACK && conveyorLineInfoRead.TaskNum > 0)//出库
                            {
                                WriteDebug(device.DeviceName, $"任务完成,任务号:{conveyorLineInfoRead.TaskNum}");
                                _taskService.TaskCompleted(conveyorLineInfoRead.TaskNum);
                                device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                            }
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/°å²Ä²Ö/StackerCraneJob_BC.cs
@@ -169,16 +169,17 @@
                        Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneStationCode == task.NextAddress);
                        if (stationManger == null)
                        {
                            _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"输送线出库站点未配置,{task.NextAddress}");
                            //_taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"输送线出库站点未配置,{task.NextAddress}");
                            _taskService.UpdateTaskExceptionMessage(taskNum, $"输送线出库站点未配置,{task.NextAddress}");
                            WriteInfo(deviceCode, $"输送线出库站点未配置,{task.NextAddress}");
                            WriteError(deviceCode, $"输送线出库站点未配置,{task.NextAddress}");
                            return WebResponseContent.Instance.Error($"输送线出库站点未配置,{task.NextAddress}");
                        }
                        Dt_Router router = _routerRepository.QueryFirst(x => x.InOutType == task.TaskType && x.StartPosi == stationManger.StationCode);
                        if (router == null)
                        {
                            _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"未找到路由信息,{task.NextAddress}");
                            //_taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"未找到路由信息,{task.NextAddress}");
                            _taskService.UpdateTaskExceptionMessage(taskNum, $"未找到路由信息,{task.NextAddress}");
                            WriteError(deviceCode, $"未找到路由信息,{task.NextAddress}");
                            return WebResponseContent.Instance.Error($"未找到路由信息,{task.NextAddress}");
                        }
@@ -338,7 +339,7 @@
            stackerCraneTaskCommand.Barcode = task.PalletCode;
            stackerCraneTaskCommand.TaskNum = task.TaskNum;
            stackerCraneTaskCommand.WorkType = 1;
            stackerCraneTaskCommand.TrayType = (Int16)task.PalletType;
            stackerCraneTaskCommand.TrayType = (short)task.PalletType;
            if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//判断是否是入库任务
            {
                string[] startCodes = task.CurrentAddress.Split("-");
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ÓÍÄ«²Ö/CommonHoisterJob.cs
@@ -103,7 +103,13 @@
                        }
                        else if (leisure && !tray && !requestIn && !inbounding && !requestOut && !outbounding)
                        {
                            Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.TaskType != TaskTypeEnum.MesOutbound.ObjToInt());
                            Dt_StationManger? stationManger = stationMangers.FirstOrDefault(x => x.StationCode == deviceChildCode);
                            if (stationManger == null)
                            {
                                WriteError(hoister.DeviceName, $"未找到对应站台信息,设备编号:{deviceChildCode}");
                                break;
                            }
                            Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.TaskType != TaskTypeEnum.MesOutbound.ObjToInt() && x.Roadway== stationManger.StackerCraneCode);
                            if (task != null)
                            {
                                task.TaskState=TaskStatusEnum.HT_Executing.ObjToInt();
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/config/buttons.js
@@ -171,6 +171,15 @@
    onClick: function () {
    }
},
{
    name: "执行出库",
    icon: '',
    class: '',
    value: 'ExecuteOutbound',
    type: 'success',
    onClick: function () {
    }
},
]
export default buttons
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/addMesOutOrder.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,163 @@
<template>
  <div>
    <vol-box
      v-model="showDetailBox"
      :lazy="true"
      width="60%"
      :padding="15"
      title="Mes出库单(新建)"
    >
      <div>
        <el-form :inline="true" :model="formData" ref="formData">
          <el-form-item
            label="所属仓库:"
            style="width: 30%"
            required
            prop="warehouseId"
          >
            <el-select v-model="formData.warehouseId" placeholder="请选择仓库">
              <el-option label="板材仓" value="3"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item
            label="物料编码:"
            style="width: 30%"
            required
            prop="materialCode"
          >
            <el-input
              v-model="formData.materialCode"
              placeholder="请输入物料编码"
            ></el-input>
          </el-form-item>
          <el-form-item
            label="出库数量:"
            style="width: 30%"
            required
            prop="num"
          >
            <el-input-number
              v-model="formData.num"
              :min="1"
              label="请输入出库数量"
            ></el-input-number>
          </el-form-item>
          <el-form-item
            label="出库地址:"
            style="width: 30%"
            required
            prop="outAddress"
          >
            <el-select
              v-model="formData.outAddress"
              placeholder="请选择出库地址"
            >
              <el-option label="一巷道二层上料位" value="1011"></el-option>
              <el-option label="SCUTL-001" value="SCUTL-001"></el-option>
            </el-select>
          </el-form-item>
          <!-- <el-form-item label="仓库">
            <el-col :span="8">
              <el-select v-model="warehouseId" placeholder="请选择仓库">
                <el-option label="板材仓" value="3"></el-option>
              </el-select>
            </el-col>
          </el-form-item> -->
        </el-form>
      </div>
      <template #footer>
        <el-button type="primary" size="small" @click="add">确定</el-button>
        <el-button type="danger" size="small" @click="showDetailBox = false"
          >关闭</el-button
        >
      </template>
    </vol-box>
  </div>
</template>
  <script>
import VolBox from "@/components/basic/VolBox.vue";
export default {
  components: { VolBox },
  data() {
    return {
      showDetailBox: false,
      formData: {
        warehouseId: "",
        materialCode: "",
        num: 1,
        outAddress: "",
      },
    };
  },
  methods: {
    open() {
      this.showDetailBox = true;
    },
    add() {
      var params = {
        //warehouseId: this.formData.warehouseId,
        materialCode: this.formData.materialCode,
        requiredQuantity: this.formData.num,
        line: this.formData.outAddress,
      };
      this.http
        .post("/api/mesOutboundOrder/AddMesOrder", params, "数据处理中...")
        .then((res) => {
          if (!res.status) return this.$message.error(x.message);
          this.$message.success("操作成功");
          this.showDetailBox = false;
          this.$emit("parentCall", ($vue) => {
            $vue.refresh();
          });
        });
    },
  },
};
</script>
  <style scoped>
.less-style {
  color: black;
}
.equle-style {
  color: green;
}
.more-style {
  color: red;
}
</style>
  <style>
.text-button:hover {
  background-color: #f0f9eb !important;
}
.el-table .warning-row {
  background: oldlace;
}
.box-table .el-table tbody tr:hover > td {
  background-color: #d8e0d4 !important;
  /* color: #ffffff; */
}
.box-table .el-table tbody tr.current-row > td {
  background-color: #f0f9eb !important;
  /* color: #ffffff; */
}
.el-table .success-row {
  background: #f0f9eb;
}
.box-table .el-table {
  border: 1px solid #ebeef5;
}
.box-head .el-alert__content {
  width: 100%;
}
</style>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/outbound/mesOutboundOrder.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
import gridBody from './extend/addMesOutOrder.vue'
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: '',
    gridBody: gridBody,
    gridFooter: '',
    //新建、编辑弹出框扩展组件
    modelHeader: '',
    modelBody: '',
    modelFooter: ''
  },
  tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
    //下面这些方法可以保留也可以删除
    onInit() {
      let addButton = this.buttons.find(item => item.value == 'Add');
      if (addButton) {
        addButton.onClick = () => {
          this.$refs.gridBody.open();
        }
      }
      let executeOutbound = this.buttons.find(item => item.value == 'ExecuteOutbound');
      if (executeOutbound) {
        executeOutbound.onClick = () => {
          let rows = this.$refs.table.getSelected();
          if (rows.length == 0) return this.$error("请选择数据!");
          if (rows.length > 1) return this.$error("请选择一条数据!");
          var param = rows[0].taskNum;
          this.http
            .post("api/Task/HandSubstrateOut?orderId=" + rows[0].id, "数据处理中...")
            .then((x) => {
              if (x.status) {
                this.$Message.success('数据处理成功.');
                this.refresh();
              } else {
                return this.$error(x.message);
              }
            });
        }
      }
      //扩展页面初始化操作
      this.columns.push({
        field: '操作',
        title: '操作',
        width: 90,
        fixed: 'right',
        align: 'center',
        formatter: (row) => {
          return (
            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">查看明细</i>'
          );
        },
        click: (row) => {
          this.$refs.gridBody.open(row);
        }
      });
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      //this.detailOptions.columns.forEach(column=>{ });
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false,则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象,包括明细表、删除行的Id
      return true;
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
    }
  }
};
export default extension;
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/outbound/mesOutboundOrder.vue
@@ -14,7 +14,7 @@
    </view-grid>
  </template>
    <script>
  import extend from "@/extension/outbound/outboundOrderDetail.js";
  import extend from "@/extension/outbound/mesOutboundOrder.js";
  import { ref, defineComponent } from "vue";
  export default defineComponent({
    setup() {
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2ad7410e-7b16-4692-8ca2-e7055946c8fa.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4b3148ac-ac73-4f51-871c-b180e5505f3e.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d7c583d9-acf0-49bb-8248-e69ce4ffd40c.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/dd0e45d4-3741-49da-b1eb-25a4729fc53f.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/MesOutboundOrderType.cs
@@ -23,5 +23,17 @@
        /// </summary>
        [Description("基板余料退库")]
        SubstrateBack = 200,
        /// <summary>
        /// æ‰‹åŠ¨åŸºæ¿å‡ºåº“
        /// </summary>
        [Description("手动基板出库")]
        HandSubstrateOut = 300,
        /// <summary>
        /// æ‰‹åŠ¨åŸºæ¿å‡ºåº“æ‹£é€‰
        /// </summary>
        [Description("手动基板出库拣选")]
        HandSubstrateOutPick = 400,
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs
@@ -41,6 +41,19 @@
        /// </summary>
        [Description("MES出库")]
        MesOutbound = 200,
        /// <summary>
        /// MES手动出库
        /// </summary>
        [Description("MES手动出库")]
        MesHandOutbound = 210,
        /// <summary>
        /// MES手动拣选出库
        /// </summary>
        [Description("MES手动拣选出库")]
        MesHandPickOutbound = 220,
        /// <summary>
        /// é‡‡è´­å…¥åº“
        /// </summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IMesOutboundOrderService.cs
@@ -37,5 +37,12 @@
        /// <param name="tasks"></param>
        /// <returns></returns>
        WebResponseContent LockOutboundStockDataUpdate(List<Dt_StockInfo> stockInfos, List<Dt_OutStockLockInfo> outStockLockInfos, List<Dt_LocationInfo> locationInfos, LocationStatusEnum locationStatus = LocationStatusEnum.Lock, List<Dt_Task>? tasks = null);
        /// <summary>
        ///
        /// </summary>
        /// <param name="substrateOutModel"></param>
        /// <returns></returns>
        WebResponseContent AddMesOrder(SubstrateOutModel substrateOutModel);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -239,11 +239,20 @@
        WebResponseContent AssignRoadway(List<string> roadwayNos);
        /// <summary>
        ///
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        WebResponseContent HandSubstrateOut(int orderId);
        /// <summary>
        /// ä¿®æ”¹ä»»åŠ¡çŠ¶æ€
        /// </summary>
        /// <param name="task"></param>
        /// <returns></returns>
        WebResponseContent UpdateTaskInfo(WCSTaskDTO task);
        WebResponseContent GeneratePKOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs
@@ -94,20 +94,21 @@
                {
                    return WebResponseContent.Instance.Error($"该采购单明细收货已完成");
                }
                //判断是否存在对应采购明细的收货明细
                Dt_ReceiveOrderDetail? detail = receiveOrder.Details.FirstOrDefault(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo);
                if (detail != null && detail.ReceivedQuantity == purchaseOrderDetail.PurchaseDetailQuantity)
                //判断该采购单明细是否已存在明细
                List<Dt_ReceiveOrderDetail> details = receiveOrder.Details.Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo && x.MaterielCode == model.MaterielCode).ToList();
                if (details.Count >0 && details.Sum(x=>x.ReceivedQuantity) == purchaseOrderDetail.PurchaseDetailQuantity)
                {
                    return WebResponseContent.Instance.Error($"该收货单明细已收货");
                }
                //获取具体批次
                Dt_ReceiveOrderDetail? detail = details.FirstOrDefault(x => x.LotNo == model.LotNo);
                lock (_rowNoLocker)
                {
                    if (detail != null)
                    {
                        //原有收货明细增加收货数量
                        detail.ReceivedQuantity += model.Quantity;
                        purchaseOrderDetail.PurchaseDetailReceiveQty = detail.ReceivedQuantity;
                        purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity;
                        if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity)
                        {
                            return WebResponseContent.Instance.Error($"采购单该物料数量和收货数量不一致");
@@ -182,7 +183,11 @@
                        {
                            purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt();
                        }
                        float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty);
                        else
                        {
                            purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Receiving.ObjToInt();
                        }
                        float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty); //+ model.Quantity
                        _unitOfWorkManage.BeginTran();
                        BaseDal.AddData(receiveOrderDetail);
                        if (purchaseOrder.OrderQuantity == sumQty)
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs
@@ -21,6 +21,7 @@
using WIDESEA_Common.LocationEnum;
using WIDESEA_IRecordService;
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.TaskEnum;
namespace WIDESEA_OutboundService
{
@@ -144,5 +145,54 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent AddMesOrder(SubstrateOutModel substrateOutModel)
        {
            try
            {
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA57.ToString());
                if (warehouse == null)
                {
                    return WebResponseContent.Instance.Error($"仓库基础信息未配置");
                }
                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == substrateOutModel.MaterialCode);
                if (materielInfo == null)
                {
                    return WebResponseContent.Instance.Error($"未找到该物料信息");
                }
                int orderType = 0;
                if(substrateOutModel.Line == "1011")
                {
                    orderType = MesOutboundOrderTypeEnum.HandSubstrateOutPick.ObjToInt();
                }
                else
                {
                    orderType = MesOutboundOrderTypeEnum.HandSubstrateOut.ObjToInt();
                }
                Dt_MesOutboundOrder mesOutboundOrder = new Dt_MesOutboundOrder()
                {
                    CreateType = OrderCreateTypeEnum.CreateInSystem.ObjToInt(),
                    Line = substrateOutModel.Line,
                    MaterialCode = substrateOutModel.MaterialCode,
                    MaterialName = materielInfo.MaterielName,
                    OrderQuantity = substrateOutModel.RequiredQuantity,
                    TaskNo = DateTime.Now.ToString("yyyyMMddHHmmss"),
                    Unit = substrateOutModel.Unit,
                    OrderType = orderType,
                    OrderStatus = OutOrderStatusEnum.未开始.ObjToInt(),
                    WarehouseId = warehouse.WarehouseId
                };
                AddData(mesOutboundOrder);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs
@@ -333,7 +333,7 @@
                    x.AuthValue = "";
                });
                //将取消的权限设置为""
                _RoleAuthRepository.UpdateData(delAuths);
                _RoleAuthRepository.DeleteData(delAuths);
                int addCount = updateAuths.Where(x => x.AuthId <= 0).Count();
                int updateCount = updateAuths.Where(x => x.AuthId > 0).Count();
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs
@@ -5,9 +5,13 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.LocationEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.TaskEnum;
using WIDESEA_Core;
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_DTO.MES;
using WIDESEA_Model.Models;
namespace WIDESEA_TaskInfoService
@@ -20,11 +24,11 @@
        /// <param name="taskNum">任务号</param>
        /// <param name="roadwayNos">巷道号</param>
        /// <returns></returns>
        public WebResponseContent AssignRoadway(List<string> roadwayNos, int taskNum,  int heightType = 0)
        public WebResponseContent AssignRoadway(List<string> roadwayNos, int taskNum, int heightType = 0)
        {
            try
            {
                if(heightType == 0 || heightType > 3)
                if (heightType == 0 || heightType > 3)
                {
                    return WebResponseContent.Instance.Error($"高度错误");
                }
@@ -89,8 +93,8 @@
                List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == task.PalletType || x.LocationType == LocationTypeEnum.Undefined.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && roadwayNos.Contains(x.RoadwayNo)).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
                string roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
                return !string.IsNullOrEmpty(roadwayNo) ? WebResponseContent.Instance.OK(data: roadwayNo): WebResponseContent.Instance.Error("未找到可分配巷道");
                return !string.IsNullOrEmpty(roadwayNo) ? WebResponseContent.Instance.OK(data: roadwayNo) : WebResponseContent.Instance.Error("未找到可分配巷道");
            }
            catch (Exception ex)
            {
@@ -121,11 +125,99 @@
            }
        }
        public class LocationCount
        public WebResponseContent HandSubstrateOut(int orderId)
        {
            public string RoadwayNo { get; set; }
            try
            {
                Dt_MesOutboundOrder mesOutboundOrder = _outboundService.MesOutboundOrderService.Repository.QueryFirst(x => x.Id == orderId);
                if (mesOutboundOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到该订单");
                }
            public int Count { get; set; }
                if (mesOutboundOrder.OrderStatus != OutOrderStatusEnum.未开始.ObjToInt())
                {
                    return WebResponseContent.Instance.Error($"该订单不可再出库");
                }
                List<Dt_Task> tasks = new List<Dt_Task>();
                List<Dt_StockInfo>? stockInfos = null;
                List<Dt_OutStockLockInfo>? outStockLockInfos = null;
                List<Dt_LocationInfo>? locationInfos = null;
                {
                    (List<Dt_StockInfo>, Dt_MesOutboundOrder, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.MesOutboundOrderService.AssignStockOutbound(mesOutboundOrder);
                    if (result.Item1 != null && result.Item1.Count > 0)
                    {
                        tasks = GetTasks(result.Item1, TaskTypeEnum.MesOutbound);
                        result.Item2.OrderStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
                        result.Item3.ForEach(x =>
                        {
                            x.Status = OutLockStockStatusEnum.出库中.ObjToInt();
                        });
                        stockInfos = result.Item1;
                        mesOutboundOrder = result.Item2;
                        outStockLockInfos = result.Item3;
                        locationInfos = result.Item4;
                    }
                    else
                    {
                        throw new Exception("无库存");
                    }
                }
                tasks.ForEach(x =>
                {
                    if (mesOutboundOrder.OrderType == MesOutboundOrderTypeEnum.HandSubstrateOut.ObjToInt())
                    {
                        x.TaskType = TaskTypeEnum.MesHandOutbound.ObjToInt();
                    }
                    else if (mesOutboundOrder.OrderType == MesOutboundOrderTypeEnum.HandSubstrateOutPick.ObjToInt())
                    {
                        x.TaskType = TaskTypeEnum.MesHandPickOutbound.ObjToInt();
                    }
                });
                mesOutboundOrder.OrderStatus = OutOrderStatusEnum.出库中.ObjToInt();
                _unitOfWorkManage.BeginTran();
                int id = BaseDal.AddData(tasks);
                outStockLockInfos.ForEach(x =>
                {
                    x.OrderNo = mesOutboundOrder.TaskNo;
                    x.OrderDetailId = id;
                });
                _outboundService.MesOutboundOrderService.Repository.UpdateData(mesOutboundOrder);
                if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0)
                {
                    WebResponseContent content = _outboundService.MesOutboundOrderService.LockOutboundStockDataUpdate(stockInfos, outStockLockInfos, locationInfos, tasks: tasks);
                    if (!content.Status)
                    {
                        _unitOfWorkManage.RollbackTran();
                        return WebResponseContent.Instance.Error(content.Message);
                    }
                }
                _unitOfWorkManage.CommitTran();
                PushTasksToWCS(tasks);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
    public class LocationCount
    {
        public string RoadwayNo { get; set; }
        public int Count { get; set; }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -422,7 +422,7 @@
                }
                if (task.TaskType == TaskTypeEnum.MesOutbound.ObjToInt())
                {
                    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, mesOutboundOrders.FirstOrDefault().OrderQuantity);
                    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity));
                    UploadMesMaterialLotaAcept(model);
                }
                return WebResponseContent.Instance.OK();
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs
@@ -36,6 +36,7 @@
                {
                    return WebResponseContent.Instance.Error($"未找到库区");
                }
                Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode && x.WarehouseId == warehouseId);
                if (task != null)
                {
@@ -95,6 +96,7 @@
                    {
                        stockInfo.StockStatus = StockStatusEmun.入库确认.ObjToInt();
                    }
                    _unitOfWorkManage.BeginTran();
                    int taskId = BaseDal.AddData(newTask);
                    newTask.TaskId = taskId;
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/MesOutboundOrderController.cs
@@ -5,6 +5,7 @@
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.MES;
using WIDESEA_DTO.Outbound;
using WIDESEA_IOutboundService;
using WIDESEA_Model.Models;
@@ -22,5 +23,15 @@
        {
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="substrateOutModel"></param>
        /// <returns></returns>
        [HttpPost, Route("AddMesOrder"), AllowAnonymous]
        public WebResponseContent AddMesOrder([FromBody] SubstrateOutModel substrateOutModel)
        {
            return Service.AddMesOrder(substrateOutModel);
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs
@@ -23,6 +23,12 @@
        {
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpPost, Route("TestOutUpload"), AllowAnonymous]
        public WebResponseContent TestOutUpload(int id)
        {
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -256,6 +256,17 @@
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        [HttpPost, Route("HandSubstrateOut")]
        public WebResponseContent HandSubstrateOut(int orderId)
        {
            return Service.HandSubstrateOut(orderId);
        }
        /// <summary>
        /// ä¿®æ”¹ä»»åŠ¡çŠ¶æ€
        /// </summary>
        /// <param name="task"></param>
´úÂë¹ÜÀí/»´°²PDA/common/config.js
@@ -1,5 +1,5 @@
let config = {
    baseUrl: 'http://10.30.4.92:9283',
    baseUrl: 'http://localhost:9293',
    urls: [
        'http://10.30.4.92:9283',
        'http://10.30.4.92:9283'
´úÂë¹ÜÀí/»´°²PDA/pages/stash/TakeStock.vue
@@ -90,7 +90,7 @@
                                placeholder="请扫描托盘条码" ref='midInput' @input="inputChangebarcode3" />
                        </uni-forms-item>
                        <uni-forms-item label="地址条码">
                            <uni-easyinput type="text" v-model="address" placeholder="请扫描地址条码" ref='midInput'
                            <uni-easyinput type="text" v-model="address" :disabled="addressdisabled" placeholder="请扫描地址条码" ref='midInput'
                                :focus="addressFocus" />
                        </uni-forms-item>
                        <uni-forms-item>
@@ -133,15 +133,21 @@
                addressFocus: false,
                inboundBarcode: "",
                address: "",
                addressdisabled: true,
                warehouseId:""
            }
        },
        onLoad(res) {
            this.barcodefocus = false;
            this.istrue = false;
            this.warehouseId = res.warehouseId;
            if (this.warehouseId == 3) { //辅料仓库区ID
                this.address = "1011";
                this.addressdisabled = true;
            }
        },
        methods: {
            onClickItem(e) {
                this.barcodeFo = true;
                this.focus = false;
                this.addressFocus = false;
                if (this.current !== e.currentIndex) {
´úÂë¹ÜÀí/»´°²PDA/pages/stash/boxing.vue
@@ -64,7 +64,7 @@
                                placeholder="请扫描托盘条码" ref='midInput' @input="inputChangebarcode" />
                        </uni-forms-item>
                        <uni-forms-item label="地址条码">
                            <uni-easyinput type="text" v-model="address" placeholder="请扫描地址条码" ref='midInput'
                            <uni-easyinput type="text" v-model="address" :disabled="addressdisabled" placeholder="请扫描地址条码" ref='midInput'
                                :focus="addressFocus" />
                        </uni-forms-item>
                        <uni-forms-item>
@@ -209,7 +209,8 @@
                Testplaceholder: "",
                Testcheck: false,
                Summmary:0,
                stockInfoDetail:[]
                stockInfoDetail:[],
                addressdisabled: false
            }
        },
        onShow() {},
@@ -229,6 +230,9 @@
                this.Initiallife = 16;
            } else if (this.warehouseId == 5) { //辅料仓库区ID
                this.address = "8005";
            }else if (this.warehouseId == 3) { //辅料仓库区ID
                this.address = "1011";
                this.addressdisabled = true;
            }
            this.label = "单据编号:" + this.orderNo;
            this.getData();
´úÂë¹ÜÀí/»´°²PDA/pages/stash/pickingMat.vue
@@ -61,7 +61,7 @@
                                placeholder="请扫描托盘条码" ref='midInput' @input="inputChangebarcode3" />
                        </uni-forms-item>
                        <uni-forms-item label="地址条码">
                            <uni-easyinput type="text" v-model="address" placeholder="请扫描地址条码" ref='midInput'
                            <uni-easyinput type="text" v-model="address" :disabled = "addressdisabled" placeholder="请扫描地址条码" ref='midInput'
                                :focus="addressFocus" />
                        </uni-forms-item>
                        <uni-forms-item>
@@ -135,7 +135,8 @@
                address: "",
                warehouseId: 0,
                Summmary: 0,
                stockInfoDetail: []
                stockInfoDetail: [],
                addressdisabled: false
            }
        },
        onLoad(res) {
@@ -143,6 +144,9 @@
            this.warehouseId = res.warehouseId;
            if (this.warehouseId == 5) {
                this.address = "8005"
            }else if (this.warehouseId == 3) {
                this.address = "1011";
                this.addressdisabled = true;
            }
            this.istrue = false;
            this.addressFocus = false;
´úÂë¹ÜÀí/»´°²PDA/pages/stash/raworderboxing.vue
@@ -68,7 +68,7 @@
                                placeholder="请扫描托盘条码" ref='midInput' @input="inputChangebarcode" />
                        </uni-forms-item>
                        <uni-forms-item label="地址条码">
                            <uni-easyinput type="text" v-model="address" placeholder="请扫描地址条码" ref='midInput'
                            <uni-easyinput type="text" v-model="address" :disabled="addressdisabled" placeholder="请扫描地址条码" ref='midInput'
                                :focus="addressFocus" />
                        </uni-forms-item>
                        <uni-forms-item>
@@ -147,12 +147,12 @@
                label: "",
                orderInfo: [],
                focus: false,
                pkfocus:false,
                pkfocus: false,
                barcode: "",
                materSn: "",
                Initiallife: 1000,
                sns: [],
                pksns:[],
                pksns: [],
                addressFocus: false,
                inboundBarcode: "",
                address: "",
@@ -167,7 +167,8 @@
                Testplaceholder: "",
                Testcheck: false,
                pkmaterSn: "",
                pkmatInfos: []
                pkmatInfos: [],
                addressdisabled: false
            }
        },
        onShow() {},
@@ -189,6 +190,9 @@
                this.items.push("入平库");
                this.items[1] = "入立库";
                this.address = "8005";
            } else if (this.warehouseId == 3) { //辅料
                this.address = "1011";
                this.addressdisabled = true;
            }
            this.label = "单据编号:" + this.orderNo;
            this.getData();
@@ -478,7 +482,7 @@
                this.pkmatInfos.splice(res, 1);
                this.pksns.splice(res, 1);
            },
            pksubmit(){
            pksubmit() {
                if (this.pkmatInfos.length == 0) {
                    this.$refs.uToast.show({
                        title: "请扫描内箱标签",
@@ -486,7 +490,8 @@
                    })
                    return;
                }
                this.$u.post('/api/InboundOrder/InPinKu?warehouseId=' + this.warehouseId+"&orderNo="+ this.orderNo, this.pksns).then(res => {
                this.$u.post('/api/InboundOrder/InPinKu?warehouseId=' + this.warehouseId + "&orderNo=" + this.orderNo, this
                    .pksns).then(res => {
                    if (res.status) {
                        this.$refs.uToast.show({
                            title: "入库成功",
´úÂë¹ÜÀí/»´°²PDA/pages/stash/receiveorder.vue
@@ -7,7 +7,7 @@
        </u-sticky>
        <uni-list :border="true">
            <uni-list-item direction="column" clickable @click="groupClick(item.receiveOrderNo)" link
                :to="page+item.receiveOrderNo+'&receiveOrderId='+item.receiveOrderId" v-for="item in allReceivingOrders"
                :to="page+item.receiveOrderNo+'&receiveOrderId='+item.receiveOrderId+'&warehouseId='+warehouseId" v-for="item in allReceivingOrders"
                :key="item.receiveOrderNo">
                <template v-slot:body>
                    <uni-group margin-top="20">
´úÂë¹ÜÀí/»´°²PDA/pages/stash/receiveorderoutbound.vue
@@ -43,7 +43,7 @@
                    </uni-forms-item>
                </uni-forms> -->
                <uni-list :border="true">
                    <uni-list-item direction="column" v-for="(item,index) in orderInfo" :key="item.id">
                    <uni-list-item direction="column" v-for="item in orderinfoDetails" :key="item.id">
                        <template v-slot:body>
                                <view class="uni-content">
                                    <view>收货单号:{{orderNo}}</view>
@@ -175,6 +175,7 @@
                current: 0,
                orderNo: "",
                orderInfo: [],
                orderinfoDetails:[],
                label: "",
                innerCode: "",
                PurchaseOrderNo: "采购单号:",
@@ -218,6 +219,7 @@
                endTypeRange: [],
                sns: "",
                receiveOrderId: 0,
                warehouseId:""
            }
        },
@@ -233,6 +235,7 @@
            this.orderNo = res.orderNo;
            this.receiveOrderId = res.receiveOrderId;
            this.label = "收货单号:" + this.orderNo;
            this.warehouseId=res.warehouseId;
            this.getData();
        },
        mounted() {
@@ -363,6 +366,12 @@
                    })
                    return;
                }
                if(this.warehouseId==2){
                    //替换指定两个字符间的字符
                    this.sns = this.sns.replace(/(Q:)([^,PO]+)(,PO)/, (match, p1, p2, p3) => {
                      return p1 + this.Quantity + p3;
                    });
                }
                this.$u.post('/api/ReceiveOrderDetail/AddReceiveOrderDetail?serNum=' + this.sns + '&orderNo=' + this
                    .orderNo, {}).then(res => {
                    if (res.status) {
@@ -464,8 +473,8 @@
                }
                this.$u.post('/api/ReceiveOrderDetail/GetReceiveOrderInfos', postData).then((res) => {
                    if (res.status) {
                        this.orderInfo = res.data;
                        if (this.orderInfo.length > 3) {
                        this.orderinfoDetails = res.data;
                        if (this.orderinfoDetails.length > 3) {
                            this.loadVisible = true;
                        }
                    }