| | |
| | | /// <summary> |
| | | /// 设备类型 |
| | | /// </summary> |
| | | public int Dodevicetype { get; set; } |
| | | public DodevicetypeEnum Dodevicetype { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设备类型Desc |
| | | /// </summary> |
| | | public string DodevicetypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(Dodevicetype); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设备任务状态 |
| | | /// </summary> |
| | | public int TaskDodeviceStatus { get; set; } |
| | | public TaskDodeviceStatus TaskDodeviceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 设备类型Desc |
| | | /// </summary> |
| | | public string TaskDodeviceStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(TaskDodeviceStatus); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WCS是否可以读取 |
| | |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Id]); |
| | | } |
| | | //var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.MaterialId); |
| | | //if (exist) |
| | | //{ |
| | | // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); |
| | | //} |
| | | |
| | | var maxSort = await wmsInOutStockRecordRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await wmsInOutStockRecordRepository.GetAsync(id); |
| | | var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.Id, updateObj.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Id]); |
| | | } |
| | | //var exist = await wmsInOutStockRecordRepository.NameExistAsync(input.Id, updateObj.Id); |
| | | //if (exist) |
| | | //{ |
| | | // throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Id]); |
| | | //} |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | |
| | | #region 导入校验 |
| | | |
| | | // 判断名称是否重复,并输出第几行重复 |
| | | var duplicateWmsInOutStockRecords = importItems.GroupBy(x => x.Id).Where(x => x.Count() > 1).ToList(); |
| | | var duplicateWmsInOutStockRecords = importItems.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsInOutStockRecords?.Any() == true) |
| | | { |
| | | var duplicateWmsInOutStockRecordMsgs = duplicateWmsInOutStockRecords.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} 行:{x.Key} 名称重复"); |
| | |
| | | |
| | | foreach (var impItem in importItems) |
| | | { |
| | | if (impItem.Id.IsNullOrWhiteSpace()) |
| | | if (impItem.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (impItem.Id.IsNullOrWhiteSpace()) |
| | | if (impItem.MaterialNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导入失败!配置,第{impItem.RowIndex}行:WmsInOutStockRecord名称不能为空"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsInOutStockRecord = await wmsInOutStockRecordRepository.FindByNameAsync(impItem.Id); |
| | | var oldWmsInOutStockRecord = await wmsInOutStockRecordRepository.FindByNameAsync(impItem.MaterialNo); |
| | | if (oldWmsInOutStockRecord != null) |
| | | { |
| | | var wmsInOutStockRecordUpdateDto = new WmsInOutStockRecordUpdateDto |
| | |
| | | ["配置"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "出入库记录列表" : result.Count == 1 ? result[0]?.Id : "WmsInOutStockRecord模版"; |
| | | var fileName = result.Count > 1 ? "出入库记录列表" : result.Count == 1 ? result[0]?.MaterialNo : "WmsInOutStockRecord模版"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | |
| | | public class WmsTaskAppService : CMSPluginAppService, IWmsTaskAppService |
| | | { |
| | | private readonly IWmsTaskRepository wmsTaskRepository; |
| | | private readonly IWmsContainerRepository _wmsContainerRepository; |
| | | private readonly IWmsPlaceRepository _wmsPlaceRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsTaskAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="WmsTaskRepository">The task job repository.</param> |
| | | public WmsTaskAppService(IWmsTaskRepository _WmsTaskRepository) |
| | | public WmsTaskAppService(IWmsTaskRepository _WmsTaskRepository, IWmsContainerRepository wmsContainerRepository, IWmsPlaceRepository wmsPlaceRepository) |
| | | { |
| | | wmsTaskRepository = _WmsTaskRepository; |
| | | _wmsContainerRepository = wmsContainerRepository; |
| | | _wmsPlaceRepository = wmsPlaceRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskNo]); |
| | | } |
| | | // 校验托盘是否存在 |
| | | var existContainer = await _wmsContainerRepository.NameExistAsync(input.ContainerNo); |
| | | if (existContainer) |
| | | { |
| | | throw new UserFriendlyException("托盘不存在,请先添加托盘"); |
| | | } |
| | | // 校验物料是否存在 |
| | | var existSourcePlace = await _wmsPlaceRepository.NameExistAsync(input.SourcePlace); |
| | | if (existSourcePlace) |
| | | { |
| | | throw new UserFriendlyException("起始库位不存在,请先添加库位"); |
| | | } |
| | | //校验库位是否存在 |
| | | var existToPlace = await _wmsPlaceRepository.NameExistAsync(input.ToPlace); |
| | | if (existToPlace) |
| | | { |
| | | throw new UserFriendlyException("目标库位不存在,请先添加库位"); |
| | | } |
| | | |
| | | var maxSort = await wmsTaskRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | |
| | | updateObj.MutableParam2 = input.MutableParam2; |
| | | updateObj.MutableParam3 = input.MutableParam3; |
| | | updateObj.IsDisabled = input.IsDisabled; |
| | | |
| | | |
| | | await wmsTaskRepository.UpdateAsync(updateObj); |
| | | |
| | |
| | | Check.NotNull(input.TaskLevel, "任务等级"); |
| | | Check.NotNull(input.TaskStatus, "任务状态"); |
| | | Check.NotNull(input.Dodevicetype, "设备类型"); |
| | | Check.NotNull(input.ContainerNo, "托盘号"); |
| | | Check.NotNull(input.SourcePlace, "起始位置"); |
| | | Check.NotNull(input.ToPlace, "目标未知"); |
| | | Check.NotNull(input.TaskDodeviceStatus, "设备任务状态"); |
| | | Check.NotNull(input.IsRead, "WCS是否可以读取"); |
| | | |
| | |
| | | /// <summary> |
| | | /// 按照名称查找Wms任务管理 |
| | | /// </summary> |
| | | /// <param name="name"></param> |
| | | /// <param name="taskNo"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task<WmsTask> FindByNameAsync(string name, CancellationToken cancellationToken = default); |
| | | Task<WmsTask> FindByNameAsync(string taskNo, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// 验证名称是否存在Wms任务管理 |
| | | /// </summary> |
| | | /// <param name="name"></param> |
| | | /// <param name="taskNo"></param> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | Task<bool> NameExistAsync(string name, Guid? id = null); |
| | | Task<bool> NameExistAsync(string taskNo, Guid? id = null); |
| | | |
| | | /// <summary> |
| | | /// 获取最大排序Wms任务管理 |
| | |
| | | .IncludeDetails() |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(t => t.Sort) |
| | | .FirstOrDefaultAsync(t => t.Id == name, GetCancellationToken(cancellationToken)); |
| | | .FirstOrDefaultAsync(t => t.MaterialNo == name, GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <returns></returns> |
| | | public async Task<bool> NameExistAsync(string name, Guid? id = null) |
| | | { |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.Id == name); |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialNo == name); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// 按照名称查找Wms任务管理 |
| | | /// </summary> |
| | | /// <param name="name"></param> |
| | | /// <param name="taskNo"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsTask> FindByNameAsync(string name, CancellationToken cancellationToken = default) |
| | | public virtual async Task<WmsTask> FindByNameAsync(string taskNo, CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails() |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(t => t.Sort) |
| | | .FirstOrDefaultAsync(t => t.TaskNo == name, GetCancellationToken(cancellationToken)); |
| | | .FirstOrDefaultAsync(t => t.TaskNo == taskNo, GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 验证名称是否存在Wms任务管理 |
| | | /// </summary> |
| | | /// <param name="name">校验值</param> |
| | | /// <param name="taskNo">校验值</param> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public async Task<bool> NameExistAsync(string name, Guid? id = null) |
| | | public async Task<bool> NameExistAsync(string taskNo, Guid? id = null) |
| | | { |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.TaskNo == name); |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.TaskNo == taskNo); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | import { cloneDeep } from 'lodash' |
| | | |
| | | export const useWmsInOutStockRecordQueryDrawer = (props: any, ctx?: any) => { |
| | | const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>('WmsInOutStockRecordDrawer') |
| | | const wmsInOutStockRecordDrawer = injectModel<WmsInOutStockRecordDrawer>( |
| | | 'WmsInOutStockRecordDrawer' |
| | | ) |
| | | /** |
| | | * 用来对比的初始化数据 |
| | | */ |
| | |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入操作时间', |
| | | }, |
| | |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入是否禁用', |
| | | options: [{label: '是',value: 'true'}, {label: '否',value: 'false'}] |
| | | options: [ |
| | | { label: '是', value: 'true' }, |
| | | { label: '否', value: 'false' }, |
| | | ], |
| | | }, |
| | | { |
| | | label: '', |
| | | label: '创建时间', |
| | | prop: 'creationTime', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(dateTimePickerRange, { |
| | |
| | | }) |
| | | }, |
| | | width: '100%', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | placeholder: '请输入', |
| | | }, |
| | |
| | | isDisabled: formData.value.isDisabled || '', |
| | | creationTime: formData.value.creationTime || '', |
| | | } |
| | | return data; |
| | | return data |
| | | } |
| | | const onClose = (done: () => void) => { |
| | | if (visible.value) { |
| | | visible.value = false |
| | | const data =commonGetFormData(); |
| | | const data = commonGetFormData() |
| | | ctx.emit('close', data) |
| | | } |
| | | } |
| | |
| | | * 确认查询 |
| | | */ |
| | | const onConfirmQuery = async () => { |
| | | const data =commonGetFormData(); |
| | | const data = commonGetFormData() |
| | | ctx.emit('confirmQuery', data) |
| | | } |
| | | /** |
| | |
| | | formData.value.SourcePlace = '' |
| | | formData.value.ToPlace = '' |
| | | //向父组件发送自定义事件 |
| | | ctx.emit('restQuery'); |
| | | ctx.emit('restQuery') |
| | | } |
| | | |
| | | const updateCheckData = () => { |
| | |
| | | EnumName: 'StockTypeEnum', |
| | | }) |
| | | updateFormItemOptions('stockType', stockTypeEnumEnum) |
| | | |
| | | } |
| | | commonQueryEnumForFrom() |
| | | /** |
| | |
| | | <DyForm |
| | | ref={formRef} |
| | | formData={formData.value} |
| | | labelWidth="106px" |
| | | labelWidth="150px" |
| | | formItemProps={formItems} |
| | | ></DyForm> |
| | | </BaseDrawer> |
| | |
| | | //枚举类型字典 |
| | | enumListDict:{ |
| | | type: Array as () => Array<{ key: string; value: object }>, // 定义数组元素类型 |
| | | default: () => [] // 默认值 |
| | | default: () => [], // 默认值 |
| | | }, |
| | | modelValue: { |
| | | type: Boolean, |
| | |
| | | <DyForm |
| | | ref={formRef} |
| | | formData={formData.value} |
| | | labelWidth="106px" |
| | | labelWidth="150px" |
| | | formItemProps={formItems} |
| | | ></DyForm> |
| | | </BaseQueryDrawer> |
| | |
| | | title: '物料件号', |
| | | }, |
| | | { |
| | | field: 'stockTypeDesc', |
| | | title: '操作类型', |
| | | }, |
| | | { |
| | | field: 'containerNo', |
| | | title: '容器编号', |
| | | }, |
| | | { |
| | | field: 'materialModel', |
| | | title: '机型', |
| | | }, |
| | | { |
| | | field: 'operateTime', |
| | | title: '操作时间', |
| | | }, |
| | | { |
| | | field: 'remark', |
| | | title: '备注', |
| | | }, |
| | | { |
| | | field: 'materialId', |
| | | title: '物料ID', |
| | | }, |
| | |
| | | title: '目标库位', |
| | | }, |
| | | { |
| | | field: 'sort', |
| | | title: '排序', |
| | | field: 'stockTypeDesc', |
| | | title: '操作类型', |
| | | }, |
| | | { |
| | | field: 'containerNo', |
| | | title: '容器编号', |
| | | }, |
| | | { |
| | | field: 'materialModel', |
| | | title: '机型', |
| | | }, |
| | | { |
| | | field: 'remark', |
| | | title: '备注', |
| | | }, |
| | | // { |
| | | // field: 'sort', |
| | | // title: '排序', |
| | | // }, |
| | | { |
| | | field: 'operateTime', |
| | | title: '操作时间', |
| | | width: 180, |
| | | }, |
| | | { |
| | | field: 'creationTime', |
| | | title: '', |
| | | }, |
| | | { |
| | | field: 'deletionTime', |
| | | title: '', |
| | | title: '创建时间', |
| | | width: 180, |
| | | }, |
| | | ] |
| | |
| | | import { columns } from './Config' |
| | | import TdButton from '@/components/TdButton/TdButton' |
| | | import { vPermission } from '@/libs/Permission/Permission' |
| | | import { |
| | | getWmsEnumData |
| | | } from '@/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer' |
| | | import { getWmsEnumData } from '@/widgets/WmsInOutStockRecord/Models/Service/WmsInOutStockRecordDrawer' |
| | | import dayjs from 'dayjs' |
| | | import { |
| | | ElInput, |
| | | ElSelect, |
| | |
| | | } = useWmsInOutStockRecord(props, ctx) |
| | | |
| | | //定义高级查询引用 |
| | | const wmsInOutStockRecordQueryDrawerRef=ref(null); |
| | | const wmsInOutStockRecordQueryDrawerRef = ref(null) |
| | | // 新增的查询条件 |
| | | const queryForm = ref({ |
| | | searchVal: '', |
| | | str_searchFormInputAttrs:[] |
| | | str_searchFormInputAttrs: [], |
| | | }) |
| | | //定义整体模糊查询的列数组(注意:必须大小写跟后端的实体类属性名一致,否则会导致匹配不对的问题) |
| | | const _searchFormInputAttrs = ref([ |
| | | 'MaterialNo', 'ContainerNo' |
| | | ]); |
| | | const searchFormInputAttrs_Placeholder = ref('请输入物料编码/托盘'); |
| | | |
| | | const _searchFormInputAttrs = ref(['MaterialNo', 'ContainerNo']) |
| | | const searchFormInputAttrs_Placeholder = ref('请输入物料编码/托盘') |
| | | |
| | | // 动态枚举选项 |
| | | const enumOptions = reactive({ |
| | |
| | | label: item.description, |
| | | value: item.value, |
| | | })) |
| | | |
| | | } catch (error) { |
| | | console.error('获取枚举数据失败:', error) |
| | | } |
| | |
| | | }) |
| | | |
| | | // 定义响应式查询数据 |
| | | const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[] }); |
| | | const _curHighQueryData = ref({ |
| | | searchVal: '', |
| | | str_searchFormInputAttrs: [], |
| | | }) |
| | | // 新版的查询方法(主页面中的按钮【查询】) |
| | | const handleQueryForMain = async () => { |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal; |
| | | _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal |
| | | _curHighQueryData.value.str_searchFormInputAttrs = |
| | | _searchFormInputAttrs.value |
| | | tableRef.value.getList(_curHighQueryData.value) |
| | | } |
| | | // 新版的查询方法(高级查询中的按钮【查询】) |
| | | const handleQuery = async (extraParams = {}) => { |
| | | let filteredData = commonGetHighQueryForm(extraParams); |
| | | commonSaveCurHighQueryData(filteredData); |
| | | let filteredData = commonGetHighQueryForm(extraParams) |
| | | commonSaveCurHighQueryData(filteredData) |
| | | tableRef.value.getList(filteredData) |
| | | } |
| | | // 新版的查询重置 |
| | | const resetQuery = () => { |
| | | queryForm.value.searchVal = '' |
| | | queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; |
| | | queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value |
| | | } |
| | | //新版的导出方法 |
| | | const handleExport=()=>{ |
| | | onExport(_curHighQueryData.value); |
| | | onExport(_curHighQueryData.value) |
| | | } |
| | | // 新版的查询弹出框关闭方法 |
| | | const closeQuery = (extraParams={}) => { |
| | | let filteredData = commonGetHighQueryForm(extraParams); |
| | | console.log("closeQuery方法"); |
| | | console.log(filteredData); |
| | | commonSaveCurHighQueryData(filteredData); |
| | | let filteredData = commonGetHighQueryForm(extraParams) |
| | | console.log('closeQuery方法') |
| | | console.log(filteredData) |
| | | commonSaveCurHighQueryData(filteredData) |
| | | } |
| | | //保存查询值 |
| | | const commonSaveCurHighQueryData=(filteredData={})=>{ |
| | | _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; |
| | | _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData } |
| | | _curHighQueryData.value.searchVal = queryForm.value.searchVal |
| | | _curHighQueryData.value.str_searchFormInputAttrs =_searchFormInputAttrs.value; |
| | | _curHighQueryData.value.str_searchFormInputAttrs = |
| | | _searchFormInputAttrs.value |
| | | } |
| | | //获取高级查询弹出框的查询值 |
| | | const commonGetHighQueryForm=(extraParams={})=>{ |
| | |
| | | ) |
| | | //组合模糊查询 |
| | | filteredData.searchVal = queryForm.value.searchVal |
| | | filteredData.str_searchFormInputAttrs =_searchFormInputAttrs.value; |
| | | return filteredData; |
| | | filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value |
| | | return filteredData |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @returns 表格 |
| | |
| | | isHidePagination={isHidePagination} |
| | | pageSize={20} |
| | | v-slots={{ |
| | | creationTime: ({ row }: any) => { |
| | | return ( |
| | | <div> |
| | | {row.creationTime != null |
| | | ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') |
| | | : '-'} |
| | | </div> |
| | | ) |
| | | }, |
| | | operateTime: ({ row }: any) => { |
| | | return ( |
| | | <div> |
| | | {row.operateTime != null |
| | | ? dayjs(row.operateTime).format('YYYY-MM-DD HH:mm:ss') |
| | | : '-'} |
| | | </div> |
| | | ) |
| | | }, |
| | | name: ({ row }: any) => { |
| | | return row?.name ? ( |
| | | <TdButton |
| | |
| | | <el-divider direction="vertical" /> |
| | | |
| | | <el-divider direction="vertical" /> |
| | | <el-upload |
| | | {/* <el-upload |
| | | v-permission="wmsInOutStockRecord-import" |
| | | name="file" |
| | | accept=".xlsx,.xls,.csv" |
| | |
| | | action="/api/v1/HIAWms/wmsInOutStockRecord/import" |
| | | > |
| | | <IconButton icon="in">导入</IconButton> |
| | | </el-upload> |
| | | </el-upload> */} |
| | | |
| | | <IconButton |
| | | v-permission="wmsInOutStockRecord-output" |
| | |
| | | class={styles.formItem} |
| | | /> |
| | | </ElFormItem> |
| | | <IconButton type="primary" icon="search" onClick={handleQueryForMain}> |
| | | <IconButton |
| | | type="primary" |
| | | icon="search" |
| | | onClick={handleQueryForMain} |
| | | > |
| | | 查询 |
| | | </IconButton> |
| | | {/* <IconButton style="" icon="refresh" onClick={resetQuery}> |
| | |
| | | rules: [{required: true, message: '任务类型不能为空', trigger: 'blur' }], |
| | | }, |
| | | { |
| | | label: '子任务类型', |
| | | prop: 'sonTaskType', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入子任务类型', |
| | | }, |
| | | { |
| | | label: '任务等级', |
| | | prop: 'taskLevel', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | |
| | | label: '任务状态', |
| | | prop: 'taskStatus', |
| | | el: 'select', |
| | | options: [], |
| | | //disabled: disabled, |
| | | placeholder: '请输入任务状态', |
| | | rules: [{required: true, message: '任务状态不能为空', trigger: 'blur' }], |
| | |
| | | label: '托盘编号', |
| | | prop: 'containerNo', |
| | | el: 'input', |
| | | rules: [{ required: true, message: '托盘编号不能为空', trigger: 'blur' }], |
| | | //disabled: disabled, |
| | | placeholder: '请输入托盘编号', |
| | | }, |
| | |
| | | prop: 'sourcePlace', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | rules: [{ required: true, message: '起始库位不能为空', trigger: 'blur' }], |
| | | placeholder: '请输入起始库位', |
| | | }, |
| | | { |
| | |
| | | prop: 'toPlace', |
| | | el: 'input', |
| | | //disabled: disabled, |
| | | rules: [{ required: true, message: '目标库位不能为空', trigger: 'blur' }], |
| | | placeholder: '请输入目标库位', |
| | | }, |
| | | { |
| | |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | rules: [{ required: true, message: '巷道不能为空', trigger: 'blur' }], |
| | | //disabled: disabled, |
| | | placeholder: '请输入巷道', |
| | | }, |
| | |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | rules: [{ required: true, message: '堆垛机ID不能为空', trigger: 'blur' }], |
| | | //disabled: disabled, |
| | | placeholder: '请输入堆垛机ID', |
| | | }, |
| | | { |
| | | label: '设备类型', |
| | | prop: 'dodevicetype', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | el: 'select', |
| | | options: [], |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入设备类型', |
| | | rules: [{required: true, message: '设备类型不能为空', trigger: 'blur' }], |
| | |
| | | { |
| | | label: '设备任务状态', |
| | | prop: 'taskDodeviceStatus', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | | ...props, |
| | | clearable: true, |
| | | ...attrs, |
| | | }) |
| | | }, |
| | | el: 'select', |
| | | options: [], |
| | | width: '100%', |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入设备任务状态', |
| | | rules: [{required: true, message: '设备任务状态不能为空', trigger: 'blur' }], |
| | | rules: [ |
| | | { required: true, message: '设备任务状态不能为空', trigger: 'blur' }, |
| | | ], |
| | | }, |
| | | { |
| | | label: 'WCS是否可以读取', |
| | |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入WCS是否可以读取', |
| | | rules: [{required: true, message: 'WCS是否可以读取不能为空', trigger: 'blur' }], |
| | | options: [{label: '是',value: 'true'}, {label: '否',value: 'false'}] |
| | | }, |
| | | { |
| | | label: '子任务类型', |
| | | prop: 'sonTaskType', |
| | | el: 'select', |
| | | //disabled: disabled, |
| | | placeholder: '请输入子任务类型', |
| | | rules: [ |
| | | { required: true, message: 'WCS是否可以读取不能为空', trigger: 'blur' }, |
| | | ], |
| | | options: [ |
| | | { label: '是', value: true }, |
| | | { label: '否', value: false }, |
| | | ], |
| | | }, |
| | | { |
| | | label: '来源单据号', |
| | |
| | | placeholder: '请输入来源单据号', |
| | | }, |
| | | { |
| | | label: '下个任务是否生成成功', |
| | | label: '下个任务是否生成', |
| | | prop: 'isNextTask', |
| | | el: (props: any, { attrs }: SetupContext) => { |
| | | return h(inputNumber, { |
| | |
| | | }) |
| | | updateFormItemOptions('sonTaskType', sonTaskTypeEnumEnum) |
| | | |
| | | const dodevicetypeEnum = await wmsTaskDrawer.getWmsEnumData({ |
| | | EnumName: 'DodevicetypeEnum', |
| | | }) |
| | | updateFormItemOptions('dodevicetype', dodevicetypeEnum) |
| | | |
| | | const taskDodeviceStatus = await wmsTaskDrawer.getWmsEnumData({ |
| | | EnumName: 'TaskDodeviceStatus', |
| | | }) |
| | | updateFormItemOptions('taskDodeviceStatus', taskDodeviceStatus) |
| | | } |
| | | commonQueryEnumForFrom() |
| | | /** |
| | |
| | | disabled.value = true |
| | | updateCheckData() |
| | | } else { |
| | | formData.value = {} |
| | | formData.value = { |
| | | taskDodeviceStatus: 1, |
| | | isRead: true, |
| | | isNextTask: 1, |
| | | taskStatus: 1, |
| | | } |
| | | |
| | | disabled.value = false |
| | | updateCheckData() |
| | |
| | | step: 1, |
| | | precision: 0, |
| | | //disabled: disabled, |
| | | placeholder: '请输入下个任务是否生成成功', |
| | | placeholder: '请输入下个任务是否生成', |
| | | }, |
| | | { |
| | | label: '可变变量1', |
| | |
| | | <DyForm |
| | | ref={formRef} |
| | | formData={formData.value} |
| | | labelWidth="106px" |
| | | labelWidth="150px" |
| | | formItemProps={formItems} |
| | | ></DyForm> |
| | | </BaseDrawer> |
| | |
| | | //枚举类型字典 |
| | | enumListDict:{ |
| | | type: Array as () => Array<{ key: string; value: object }>, // 定义数组元素类型 |
| | | default: () => [] // 默认值 |
| | | default: () => [], // 默认值 |
| | | }, |
| | | modelValue: { |
| | | type: Boolean, |
| | |
| | | <DyForm |
| | | ref={formRef} |
| | | formData={formData.value} |
| | | labelWidth="106px" |
| | | labelWidth="150px" |
| | | formItemProps={formItems} |
| | | ></DyForm> |
| | | </BaseQueryDrawer> |
| | |
| | | title: '任务类型', |
| | | }, |
| | | { |
| | | field: 'sonTaskTypeDesc', |
| | | title: '子任务类型', |
| | | }, |
| | | { |
| | | field: 'taskStatusDesc', |
| | | title: '任务状态', |
| | | }, |
| | |
| | | // title: '堆垛机ID', |
| | | // }, |
| | | { |
| | | field: 'dodevicetype', |
| | | field: 'dodevicetypeDesc', |
| | | title: '设备类型', |
| | | }, |
| | | { |
| | | field: 'taskDodeviceStatus', |
| | | field: 'taskDodeviceStatusDesc', |
| | | title: '设备状态', |
| | | }, |
| | | { |
| | | field: 'isRead', |
| | | title: 'WCS可读取', |
| | | }, |
| | | { |
| | | field: 'sonTaskTypeDesc', |
| | | title: '子任务类型', |
| | | }, |
| | | { |
| | | field: 'sourceOrderNo', |
| | |
| | | { |
| | | field: 'creationTime', |
| | | title: '创建时间', |
| | | width: 180, |
| | | }, |
| | | ] |
| | |
| | | <el-divider direction="vertical" /> |
| | | |
| | | <el-divider direction="vertical" /> |
| | | <el-upload |
| | | {/* <el-upload |
| | | v-permission="wmsTask-import" |
| | | name="file" |
| | | accept=".xlsx,.xls,.csv" |
| | |
| | | action="/api/v1/HIAWms/wmsTask/import" |
| | | > |
| | | <IconButton icon="in">导入</IconButton> |
| | | </el-upload> |
| | | </el-upload> */} |
| | | |
| | | <IconButton |
| | | {/* <IconButton |
| | | v-permission="wmsTask-output" |
| | | icon="out" |
| | | onClick={handleExport} |
| | | > |
| | | 导出 |
| | | </IconButton> |
| | | </IconButton> */} |
| | | </div> |
| | | <ElFormItem style={{ marginTop: '15px' }}> |
| | | <ElFormItem label="关键字"> |