已添加54个文件
已重命名2个文件
已修改29个文件
已删除13个文件
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åºåºä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsAreaPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åºåºä¿¡æ¯å表 |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsAreaList (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å åºåºä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsAreaAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾åºåºä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsAreaEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åºåºä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsAreaDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导åºåºåºä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsAreaToExcel (parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/toExcel', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥åºåºä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsAreaImportExcel (data, parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/importExcel', |
| | | method: 'post', |
| | | data: data, |
| | | params: parameter |
| | | |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½åºåºä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsAreaDownloadExcelTemplate(parameter) { |
| | | return axios({ |
| | | url: '/WmsArea/downloadExcelTemplate', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢å®¹å¨ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainer/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 容å¨ä¿¡æ¯å表 |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerList (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainer/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å 容å¨ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainer/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾å®¹å¨ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainer/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤å®¹å¨ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainer/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导åºå®¹å¨ä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerToExcel (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainer/toExcel', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥å®¹å¨ä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerImportExcel (data, parameter) { |
| | | return axios({ |
| | | url: '/WmsContainer/importExcel', |
| | | method: 'post', |
| | | data: data, |
| | | params: parameter |
| | | |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½å®¹å¨ä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerDownloadExcelTemplate(parameter) { |
| | | return axios({ |
| | | url: '/WmsContainer/downloadExcelTemplate', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢å
è£
å
³ç³»åºç¡è¡¨ |
| | | * æ¥è¯¢å®¹å¨å
³ç³» |
| | | * |
| | | * @author ly |
| | | */ |
| | |
| | | } |
| | | |
| | | /** |
| | | * å
è£
å
³ç³»åºç¡è¡¨å表 |
| | | * 容å¨å
³ç³»å表 |
| | | * |
| | | * @author ly |
| | | */ |
| | |
| | | } |
| | | |
| | | /** |
| | | * æ·»å å
è£
å
³ç³»åºç¡è¡¨ |
| | | * æ·»å 容å¨å
³ç³» |
| | | * |
| | | * @author ly |
| | | */ |
| | |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾å
è£
å
³ç³»åºç¡è¡¨ |
| | | * ç¼è¾å®¹å¨å
³ç³» |
| | | * |
| | | * @author ly |
| | | */ |
| | |
| | | } |
| | | |
| | | /** |
| | | * å é¤å
è£
å
³ç³»åºç¡è¡¨ |
| | | * å é¤å®¹å¨å
³ç³» |
| | | * |
| | | * @author ly |
| | | */ |
| | |
| | | |
| | | |
| | | /** |
| | | * 导åºå
è£
å
³ç³»åºç¡è¡¨çExcelæä»¶ |
| | | * 导åºå®¹å¨å
³ç³»çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | */ |
| | |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥å
è£
å
³ç³»åºç¡è¡¨çExcelæä»¶ |
| | | * 导å
¥å®¹å¨å
³ç³»çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | */ |
| | |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½å
è£
å
³ç³»åºç¡è¡¨çExcel导å
¥æ¨¡æ¿ |
| | | * ä¸è½½å®¹å¨å
³ç³»çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author ly |
| | | */ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢å®¹å¨ç±»å |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerTypePage (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 容å¨ç±»åå表 |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerTypeList (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å 容å¨ç±»å |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerTypeAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾å®¹å¨ç±»å |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerTypeEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤å®¹å¨ç±»å |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerTypeDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导åºå®¹å¨ç±»åçExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerTypeToExcel (parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/toExcel', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥å®¹å¨ç±»åçExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerTypeImportExcel (data, parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/importExcel', |
| | | method: 'post', |
| | | data: data, |
| | | params: parameter |
| | | |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½å®¹å¨ç±»åçExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsContainerTypeDownloadExcelTemplate(parameter) { |
| | | return axios({ |
| | | url: '/WmsContainerType/downloadExcelTemplate', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢å·¥åä¿¡æ¯è¡¨ |
| | | * æ¥è¯¢å·¥åä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsFactoryPage (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * å·¥åä¿¡æ¯è¡¨å表 |
| | | * å·¥åä¿¡æ¯å表 |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsFactoryList (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * æ·»å å·¥åä¿¡æ¯è¡¨ |
| | | * æ·»å å·¥åä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsFactoryAdd (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾å·¥åä¿¡æ¯è¡¨ |
| | | * ç¼è¾å·¥åä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsFactoryEdit (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * å é¤å·¥åä¿¡æ¯è¡¨ |
| | | * å é¤å·¥åä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsFactoryDelete (parameter) { |
| | | return axios({ |
| | |
| | | |
| | | |
| | | /** |
| | | * 导åºå·¥åä¿¡æ¯è¡¨çExcelæä»¶ |
| | | * 导åºå·¥åä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsFactoryToExcel (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥å·¥åä¿¡æ¯è¡¨çExcelæä»¶ |
| | | * 导å
¥å·¥åä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsFactoryImportExcel (data, parameter) { |
| | | return axios({ |
| | |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½å·¥åä¿¡æ¯è¡¨çExcel导å
¥æ¨¡æ¿ |
| | | * ä¸è½½å·¥åä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsFactoryDownloadExcelTemplate(parameter) { |
| | | return axios({ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åºä½ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsPlacePage (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlace/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åºä½ä¿¡æ¯å表 |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsPlaceList (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlace/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å åºä½ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsPlaceAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlace/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾åºä½ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsPlaceEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlace/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åºä½ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsPlaceDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlace/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导åºåºä½ä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsPlaceToExcel (parameter) { |
| | | return axios({ |
| | | url: '/WmsPlace/toExcel', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥åºä½ä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsPlaceImportExcel (data, parameter) { |
| | | return axios({ |
| | | url: '/WmsPlace/importExcel', |
| | | method: 'post', |
| | | data: data, |
| | | params: parameter |
| | | |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½åºä½ä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsPlaceDownloadExcelTemplate(parameter) { |
| | | return axios({ |
| | | url: '/WmsPlace/downloadExcelTemplate', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢åä½ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsUnitPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsUnit/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * åä½ä¿¡æ¯å表 |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsUnitList (parameter) { |
| | | return axios({ |
| | | url: '/WmsUnit/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å åä½ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsUnitAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsUnit/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾åä½ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsUnitEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsUnit/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤åä½ä¿¡æ¯ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsUnitDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsUnit/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导åºåä½ä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsUnitToExcel (parameter) { |
| | | return axios({ |
| | | url: '/WmsUnit/toExcel', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥åä½ä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsUnitImportExcel (data, parameter) { |
| | | return axios({ |
| | | url: '/WmsUnit/importExcel', |
| | | method: 'post', |
| | | data: data, |
| | | params: parameter |
| | | |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½åä½ä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author liuwq |
| | | */ |
| | | export function WmsUnitDownloadExcelTemplate(parameter) { |
| | | return axios({ |
| | | url: '/WmsUnit/downloadExcelTemplate', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢ä»åºè¡¨ |
| | | * æ¥è¯¢ä»åºä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsWarehousePage (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * ä»åºè¡¨å表 |
| | | * ä»åºä¿¡æ¯å表 |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsWarehouseList (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * æ·»å ä»åºè¡¨ |
| | | * æ·»å ä»åºä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsWarehouseAdd (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾ä»åºè¡¨ |
| | | * ç¼è¾ä»åºä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsWarehouseEdit (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * å é¤ä»åºè¡¨ |
| | | * å é¤ä»åºä¿¡æ¯ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsWarehouseDelete (parameter) { |
| | | return axios({ |
| | |
| | | |
| | | |
| | | /** |
| | | * 导åºä»åºè¡¨çExcelæä»¶ |
| | | * 导åºä»åºä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsWarehouseToExcel (parameter) { |
| | | return axios({ |
| | |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥ä»åºè¡¨çExcelæä»¶ |
| | | * 导å
¥ä»åºä¿¡æ¯çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsWarehouseImportExcel (data, parameter) { |
| | | return axios({ |
| | |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½ä»åºè¡¨çExcel导å
¥æ¨¡æ¿ |
| | | * ä¸è½½ä»åºä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author ly |
| | | * @author liuwq |
| | | */ |
| | | export function WmsWarehouseDownloadExcelTemplate(parameter) { |
| | | return axios({ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢åºåºä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="åºåºç¼ç " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºç¼ç " v-decorator="['areaCode', {rules: [{required: true, message: '请è¾å
¥åºåºç¼ç ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ä»åºç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ä»åºç¼å·" v-decorator="['warehouseCode', {rules: [{required: true, message: '请è¾å
¥ä»åºç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ä»åºåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ä»åºåç§°" v-decorator="['warehouseName', {rules: [{required: true, message: '请è¾å
¥ä»åºåç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºåç§°" v-decorator="['areaName', {rules: [{required: true, message: '请è¾å
¥åºåºåç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºæè¿°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºæè¿°" v-decorator="['areaDesc']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºç¶æ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥åºåºç¶æ" style="width: 100%" v-decorator="['areaStatus', {rules: [{required: true, message: '请è¾å
¥åºåºç¶æï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ERP代ç " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ERP代ç " v-decorator="['erpCode', {rules: [{required: true, message: '请è¾å
¥ERP代ç ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æå±ä»åº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æå±ä»åº" v-decorator="['warehouseId', {rules: [{required: true, message: '请è¾å
¥æå±ä»åºï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="é¶ä»¶çº§ç®¡æ§" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isBarcodeLevelControl',{rules: [{ required: true, message: 'è¯·éæ©é¶ä»¶çº§ç®¡æ§ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ£éªå
è¿å
åº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isFIFO',{rules: [{ required: true, message: 'è¯·éæ©æ£éªå
è¿å
åºï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="é¶ä»¶çº§ç®¡æ§" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isPartLevelControl',{rules: [{ required: true, message: 'è¯·éæ©é¶ä»¶çº§ç®¡æ§ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="å
许混æ·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isAllowConfusion',{rules: [{ required: true, message: 'è¯·éæ©å
许混æ·ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="å
许è´åºå" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isAllowNegativeInventory',{rules: [{ required: true, message: 'è¯·éæ©å
许è´åºåï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦èæ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isVirtually', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsAreaAdd |
| | | } from '@/api/modular/main/WmsBase/WmsAreaManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | add (record) { |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | |
| | | }); |
| | | }, |
| | | /** |
| | | * æäº¤è¡¨å |
| | | */ |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | } |
| | | } |
| | | WmsAreaAdd(values).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('æ°å¢æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', values) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('æ°å¢å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | } else { |
| | | this.confirmLoading = false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾åºåºä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="åºåºç¼ç " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºç¼ç " v-decorator="['areaCode', {rules: [{required: true, message: '请è¾å
¥åºåºç¼ç ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ä»åºç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ä»åºç¼å·" v-decorator="['warehouseCode', {rules: [{required: true, message: '请è¾å
¥ä»åºç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ä»åºåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ä»åºåç§°" v-decorator="['warehouseName', {rules: [{required: true, message: '请è¾å
¥ä»åºåç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºåç§°" v-decorator="['areaName', {rules: [{required: true, message: '请è¾å
¥åºåºåç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºæè¿°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºæè¿°" v-decorator="['areaDesc']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºç¶æ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥åºåºç¶æ" style="width: 100%" v-decorator="['areaStatus', {rules: [{required: true, message: '请è¾å
¥åºåºç¶æï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ERP代ç " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ERP代ç " v-decorator="['erpCode', {rules: [{required: true, message: '请è¾å
¥ERP代ç ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æå±ä»åº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æå±ä»åº" v-decorator="['warehouseId', {rules: [{required: true, message: '请è¾å
¥æå±ä»åºï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="é¶ä»¶çº§ç®¡æ§" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isBarcodeLevelControl',{rules: [{ required: true, message: 'è¯·éæ©é¶ä»¶çº§ç®¡æ§ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ£éªå
è¿å
åº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isFIFO',{rules: [{ required: true, message: 'è¯·éæ©æ£éªå
è¿å
åºï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="é¶ä»¶çº§ç®¡æ§" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isPartLevelControl',{rules: [{ required: true, message: 'è¯·éæ©é¶ä»¶çº§ç®¡æ§ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="å
许混æ·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isAllowConfusion',{rules: [{ required: true, message: 'è¯·éæ©å
许混æ·ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="å
许è´åºå" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isAllowNegativeInventory',{rules: [{ required: true, message: 'è¯·éæ©å
许è´åºåï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦èæ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isVirtually', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsAreaEdit |
| | | } from '@/api/modular/main/WmsBase/WmsAreaManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | Id: 0, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | record: {}, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | edit (record) { |
| | | this.visible = true; |
| | | this.Id = record.id; |
| | | this.$nextTick(() => { |
| | | }); |
| | | //深度æ·è´ ç§»é¤VUEççå¬ï¼é²æ¢INDEX页é¢å¼åå¨ |
| | | this.record = JSON.parse(JSON.stringify(record)) |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue( |
| | | { |
| | | id: record.id, |
| | | areaCode: record.areaCode, |
| | | warehouseCode: record.warehouseCode, |
| | | warehouseName: record.warehouseName, |
| | | areaName: record.areaName, |
| | | areaDesc: record.areaDesc, |
| | | areaStatus: record.areaStatus, |
| | | erpCode: record.erpCode, |
| | | warehouseId: record.warehouseId, |
| | | isBarcodeLevelControl: record.isBarcodeLevelControl, |
| | | isFIFO: record.isFIFO, |
| | | isPartLevelControl: record.isPartLevelControl, |
| | | isAllowConfusion: record.isAllowConfusion, |
| | | isAllowNegativeInventory: record.isAllowNegativeInventory, |
| | | isVirtually: record.isVirtually, |
| | | isDisabled: record.isDisabled |
| | | } |
| | | ) |
| | | }) |
| | | }, |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (values[key] == null) continue |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | this.record[key] = values[key] |
| | | } else { |
| | | this.record[key] = values[key] |
| | | } |
| | | } |
| | | WmsAreaEdit(this.record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('ç¼è¾æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', this.record) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('ç¼è¾å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | }else{ |
| | | this.confirmLoading = false |
| | | } |
| | | }); |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :width="850" |
| | | :destroyOnClose="true" |
| | | :visible="visible" |
| | | :forceRender="true" |
| | | title="æ¹é导å
¥" |
| | | cancelText="åæ¶ä¸ä¼ " |
| | | okText="å¼å§ä¸ä¼ " |
| | | @cancel="handleCancel" |
| | | @ok="handleSubmit"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-row :span="24"> |
| | | <span>è¯·éæ©è¦å¯¼å
¥çæ°æ®æä»¶ï¼Excelæ ¼å¼ï¼</span> |
| | | </a-row> |
| | | <p></p> |
| | | <a-row> |
| | | <a-col :span="16"> |
| | | <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload"> |
| | | <a-icon style="font-size: 40px;" type="cloud-upload" /> |
| | | </a-upload-dragger> |
| | | </a-col> |
| | | <!--<a-col :span="8"> |
| | | <span>导å
¥æ¨¡å¼ï¼</span> |
| | | <a-select |
| | | style="width: 130px" |
| | | placeholder="è¯·éæ©å¯¼å
¥æ¨¡å¼" |
| | | v-model="importExcelType"> |
| | | <a-select-option |
| | | v-for="(item,index) in importExcelTypeData" |
| | | :key="index" |
| | | :value="item.code">{{ item.name }} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-col>--> |
| | | </a-row> |
| | | <a-row :span="24"> |
| | | <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed"> |
| | | ç¹å»æ¥çæä»¶ä¸ä¼ è¦æ± |
| | | </a-button>--> |
| | | <span>ã</span> |
| | | <a-button style="width: 90px;text-align: left;" @click="wmsAreaDownloadExcelTemplate" type="link">ä¸è½½å¯¼å
¥æ¨¡æ¿</a-button>ï¼å¡«åå¹¶ä¸ä¼ |
| | | <span>ã</span> |
| | | <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed"> |
| | | æ¶èµ· |
| | | </a-button> |
| | | </a-row> |
| | | <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24"> |
| | | <a-breadcrumb> |
| | | <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">æä»¶ä¸ä¼ è¦æ±</a-breadcrumb-item> |
| | | </a-breadcrumb> |
| | | </a-row> |
| | | <pre v-show="detailed"> |
| | | <div v-html="demandText"></div> |
| | | </pre> |
| | | <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table> |
| | | <pre v-show="detailed"> |
| | | <div v-html="columnText"></div> |
| | | </pre> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util' |
| | | |
| | | import { WmsAreaImportExcel, WmsAreaDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsAreaManage' |
| | | import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage' |
| | | export default { |
| | | components: { |
| | | }, |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | detailed: false, |
| | | confirmLoading: false, |
| | | fileList: [], |
| | | importExcelTypeData: [], |
| | | importExcelType: '1', |
| | | uploadFile: null, |
| | | columns: [], |
| | | dataList: [], |
| | | demandText:'', |
| | | columnText: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | index() { |
| | | this.visible = true; |
| | | this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type') |
| | | this.demandText = parseDemandText("wmsAreaDownloadExcelTemplate") |
| | | window.downloadFile = this.wmsAreaDownloadExcelTemplate; |
| | | this.getTable(); |
| | | }, |
| | | showDemand() { |
| | | this.detailed = !this.detailed; |
| | | }, |
| | | customRequest(document) { |
| | | this.uploadFile = document |
| | | }, |
| | | getTable() { |
| | | sysExcelTemplateGetColumnList({className: "WmsArea"}).then(res => |
| | | { |
| | | if (res.success) { |
| | | this.columns =[]; |
| | | this.dataList = [{}]; |
| | | res.data.forEach(x => { |
| | | this.columns.push({ |
| | | dataIndex: x.columnName, |
| | | key: x.columnName, |
| | | title: x.columnComment |
| | | }); |
| | | this.dataList[0][x.columnName] = x.isRequired ? "å¿
å¡«" : "éå¿
å¡«" |
| | | }); |
| | | this.columnText = parseExcelFieldText(res.data); |
| | | } |
| | | }); |
| | | }, |
| | | beforeUpload(fileInfo) { |
| | | let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']); |
| | | if (!res.success) { |
| | | this.$message.warning(res.msg) |
| | | return false |
| | | } |
| | | setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000) |
| | | }, |
| | | handleChange(fileInfo) { |
| | | if (fileInfo.file.status === 'error') { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | if (fileInfo.file.status === 'done') { |
| | | if (fileInfo.fileList.length > 1) { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | this.fileList = fileInfo.file |
| | | } |
| | | }, |
| | | handleSubmit() { |
| | | this.confirmLoading = true |
| | | const formData = new FormData() |
| | | formData.append('file', this.uploadFile.file) |
| | | WmsAreaImportExcel(formData, {importExcelType: this.importExcelType}).then(res => { |
| | | this.$message.success('æä½æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', []) |
| | | this.handleCancel() |
| | | }).finally((res)=>{this.confirmLoading = false}) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.detailed = false |
| | | }, |
| | | wmsAreaDownloadExcelTemplate() { |
| | | WmsAreaDownloadExcelTemplate({version: "v2"}).then((res) => { |
| | | downloadFile(res); |
| | | }).catch((err) => { |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | ::v-deep .ant-upload.ant-upload-drag { |
| | | position: relative; |
| | | width: 140px; |
| | | height: 135px; |
| | | text-align: center; |
| | | background: #fafafa; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 2px; |
| | | cursor: pointer; |
| | | -webkit-transition: border-color 0.3s; |
| | | transition: border-color 0.3s; |
| | | } |
| | | ::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { |
| | | color: #ffc53d; |
| | | border-color: white; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div ref="boxOutWrap" class="boxOutWrap"> |
| | | <div ref="boxForm" class="boxForm"> |
| | | <a-card :bordered="false" :bodyStyle="tstyle"> |
| | | |
| | | <div class="table-page-search-wrapper" v-if="hasPerm('WmsArea:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºåºç¼ç "> |
| | | <a-input v-model="queryParam.areaCode" allow-clear placeholder="请è¾å
¥åºåºç¼ç "/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä»åºç¼å·"> |
| | | <a-input v-model="queryParam.warehouseCode" allow-clear placeholder="请è¾å
¥ä»åºç¼å·"/> |
| | | </a-form-item> |
| | | </a-col><template v-if="advanced"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä»åºåç§°"> |
| | | <a-input v-model="queryParam.warehouseName" allow-clear placeholder="请è¾å
¥ä»åºåç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºåºåç§°"> |
| | | <a-input v-model="queryParam.areaName" allow-clear placeholder="请è¾å
¥åºåºåç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºåºæè¿°"> |
| | | <a-input v-model="queryParam.areaDesc" allow-clear placeholder="请è¾å
¥åºåºæè¿°"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºåºç¶æ"> |
| | | <a-input-number v-model="queryParam.areaStatus" style="width: 100%" allow-clear placeholder="请è¾å
¥åºåºç¶æ"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ERP代ç "> |
| | | <a-input v-model="queryParam.erpCode" allow-clear placeholder="请è¾å
¥ERP代ç "/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æå±ä»åº"> |
| | | <a-input v-model="queryParam.warehouseId" allow-clear placeholder="请è¾å
¥æå±ä»åº"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="é¶ä»¶çº§ç®¡æ§"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isBarcodeLevelControl" placeholder="è¯·éæ©é¶ä»¶çº§ç®¡æ§"> |
| | | <a-select-option v-for="(item,index) in isBarcodeLevelControlData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ£éªå
è¿å
åº"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isFIFO" placeholder="è¯·éæ©æ£éªå
è¿å
åº"> |
| | | <a-select-option v-for="(item,index) in isFIFOData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="é¶ä»¶çº§ç®¡æ§"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isPartLevelControl" placeholder="è¯·éæ©é¶ä»¶çº§ç®¡æ§"> |
| | | <a-select-option v-for="(item,index) in isPartLevelControlData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å
许混æ·"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isAllowConfusion" placeholder="è¯·éæ©å
许混æ·"> |
| | | <a-select-option v-for="(item,index) in isAllowConfusionData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å
许è´åºå"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isAllowNegativeInventory" placeholder="è¯·éæ©å
许è´åºå"> |
| | | <a-select-option v-for="(item,index) in isAllowNegativeInventoryData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦èæ"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isVirtually" placeholder="è¯·éæ©æ¯å¦èæ"> |
| | | <a-select-option v-for="(item,index) in isVirtuallyData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦ç¦ç¨"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="è¯·éæ©æ¯å¦ç¦ç¨"> |
| | | <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ´æ°æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建è
åç§°"> |
| | | <a-input v-model="queryParam.createdUserName" allow-clear placeholder="请è¾å
¥å建è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä¿®æ¹è
åç§°"> |
| | | <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å
¥ä¿®æ¹è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> </template> |
| | | |
| | | <a-col :md="8" :sm="24" > |
| | | <span class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="$refs.table.refresh(true)" >æ¥è¯¢</a-button> |
| | | <a-button style="margin-left: 8px" @click="() => queryParam = {}">éç½®</a-button> |
| | | <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="advanced ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | <a-card :bordered="false"> |
| | | <s-table |
| | | ref="table" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | :alert="true" |
| | | @changeTablePage="pageInfo = $event" |
| | | :scroll="{x: true,y:tableHeight}" |
| | | :rowKey="(record) => record.id" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> |
| | | <template class="table-operator" slot="operator" v-if="hasPerm('WmsArea:add')" > |
| | | <div ref="actionBar" class="actionBar"> |
| | | <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> |
| | | 导å
¥ |
| | | </a-button> |
| | | <a-button type="info" v-if="hasPerm('WmsArea:exportExcel')" icon="download" @click="WmsAreaToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsArea:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢åºåºä¿¡æ¯</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="isBarcodeLevelControlscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isFIFOscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isPartLevelControlscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isAllowConfusionscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isAllowNegativeInventoryscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isVirtuallyscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a v-if="hasPerm('WmsArea:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('WmsArea:edit') & hasPerm('WmsArea:delete')"/> |
| | | <a-popconfirm v-if="hasPerm('WmsArea:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsAreaDelete(record)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </s-table> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <edit-form ref="editForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsAreaPage, WmsAreaDelete, WmsAreaToExcel } from '@/api/modular/main/WmsBase/WmsAreaManage' |
| | | //èªå®ä¹tableé«åº¦ |
| | | import setTableHtMixin from '@/mixins/handleTableHt.js' |
| | | import addForm from './addForm.vue' |
| | | import { exportExcel } from '@/utils/exportToExcel' |
| | | import { downloadFile } from '@/utils/util' |
| | | import editForm from './editForm.vue' |
| | | import excelForm from './excelForm.vue' |
| | | export default { |
| | | mixins: [setTableHtMixin], |
| | | components: { |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | }, |
| | | data () { |
| | | return { |
| | | advanced: false, // é«çº§æç´¢ å±å¼/å
³é |
| | | queryParam: {}, |
| | | pageInfo: { |
| | | current: 1, |
| | | pageSize: 10 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title:'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'åºåºç¼ç ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'areaCode' |
| | | }, |
| | | { |
| | | title: 'ä»åºç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'warehouseCode' |
| | | }, |
| | | { |
| | | title: 'ä»åºåç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'warehouseName' |
| | | }, |
| | | { |
| | | title: 'åºåºåç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'areaName' |
| | | }, |
| | | { |
| | | title: 'åºåºæè¿°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'areaDesc' |
| | | }, |
| | | { |
| | | title: 'åºåºç¶æ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'areaStatus' |
| | | }, |
| | | { |
| | | title: 'ERP代ç ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'erpCode' |
| | | }, |
| | | { |
| | | title: 'æå±ä»åº', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'warehouseId' |
| | | }, |
| | | { |
| | | title: 'é¶ä»¶çº§ç®¡æ§', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isBarcodeLevelControl', |
| | | scopedSlots: { customRender: 'isBarcodeLevelControlscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'æ£éªå
è¿å
åº', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isFIFO', |
| | | scopedSlots: { customRender: 'isFIFOscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'é¶ä»¶çº§ç®¡æ§', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isPartLevelControl', |
| | | scopedSlots: { customRender: 'isPartLevelControlscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å
许混æ·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isAllowConfusion', |
| | | scopedSlots: { customRender: 'isAllowConfusionscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å
许è´åºå', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isAllowNegativeInventory', |
| | | scopedSlots: { customRender: 'isAllowNegativeInventoryscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'æ¯å¦èæ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isVirtually', |
| | | scopedSlots: { customRender: 'isVirtuallyscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdTime' |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedTime' |
| | | }, |
| | | { |
| | | title: 'å建è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdUserName' |
| | | }, |
| | | { |
| | | title: 'ä¿®æ¹è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedUserName' |
| | | } |
| | | ], |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return WmsAreaPage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('WmsArea:edit') || this.hasPerm('WmsArea:delete')) { |
| | | this.columns.push({ |
| | | title: 'æä½', |
| | | width: '150px', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' } |
| | | }) |
| | | } |
| | | const path = this.$route.path |
| | | const columnStr = window.localStorage.getItem(path) |
| | | if(columnStr) { |
| | | var _columns = JSON.parse(columnStr) |
| | | this.columns.forEach(element => { |
| | | var fObj = _columns.find((item, index) => { |
| | | return item.dataIndex === element.dataIndex; |
| | | }) |
| | | if(fObj!=undefined && fObj!=null){ |
| | | element.checked=fObj.checked; |
| | | } |
| | | }); |
| | | } |
| | | const isBarcodeLevelControlOption = this.$options |
| | | this.isBarcodeLevelControlData = isBarcodeLevelControlOption.filters['dictData']('yes_true_false') |
| | | const isFIFOOption = this.$options |
| | | this.isFIFOData = isFIFOOption.filters['dictData']('yes_true_false') |
| | | const isPartLevelControlOption = this.$options |
| | | this.isPartLevelControlData = isPartLevelControlOption.filters['dictData']('yes_true_false') |
| | | const isAllowConfusionOption = this.$options |
| | | this.isAllowConfusionData = isAllowConfusionOption.filters['dictData']('yes_true_false') |
| | | const isAllowNegativeInventoryOption = this.$options |
| | | this.isAllowNegativeInventoryData = isAllowNegativeInventoryOption.filters['dictData']('yes_true_false') |
| | | const isVirtuallyOption = this.$options |
| | | this.isVirtuallyData = isVirtuallyOption.filters['dictData']('yes_true_false') |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsAreaDelete (record) { |
| | | WmsAreaDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | WmsAreaToExcel() { |
| | | this.loading = true |
| | | let entozh = {}; |
| | | const path = this.$route.path; |
| | | if (window.localStorage.getItem(path)) { |
| | | JSON.parse(window.localStorage.getItem(path)).forEach(item => { |
| | | if (item.dataIndex != 'action' && item.checked) { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } else { //ç´æ¥ç¹å¯¼åº |
| | | this.columns.forEach(item => { |
| | | if (item.dataIndex != 'action') { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } |
| | | WmsAreaPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { |
| | | this.loading = false; |
| | | //éè¦æªåæ¥æçåæ®µ |
| | | var arrDataCutout = this.columns.filter(v => v.customCutout == true); |
| | | res.data.rows.forEach(item => { |
| | | var arrKeys = Object.keys(item); |
| | | arrKeys.forEach(key => { |
| | | var strFieldDic = key + 'Data'; |
| | | //æä¸¾è½¬å¼ |
| | | if (this[strFieldDic] && this[strFieldDic].length > 0) { |
| | | let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); |
| | | if (arrFieldDic.length > 0) { |
| | | item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼'; |
| | | } |
| | | } |
| | | // æ¥ææªå |
| | | if (arrDataCutout.length > 0) { |
| | | arrDataCutout.forEach(itemIn => { |
| | | if (key == itemIn.dataIndex && item[key]) { |
| | | item[key] = item[key].split(" ")[0] |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) |
| | | }).catch((err) => { |
| | | this.loading = false |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | toggleAdvanced () { |
| | | this.advanced = !this.advanced |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | }, |
| | | onChangecreatedTime(date, dateString) { |
| | | this.queryParam.createdTime = dateString |
| | | }, |
| | | onChangeupdatedTime(date, dateString) { |
| | | this.queryParam.updatedTime = dateString |
| | | }, |
| | | handleOk () { |
| | | this.$refs.table.refresh() |
| | | }, |
| | | onSelectChange (selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢å®¹å¨ä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç¼å·" v-decorator="['containerCode', {rules: [{required: true, message: '请è¾å
¥ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åç§°" v-decorator="['containerName', {rules: [{required: true, message: '请è¾å
¥åç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»åID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»åID" v-decorator="['containerTypeId', {rules: [{required: true, message: '请è¾å
¥ç±»åIDï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»ååç§°" v-decorator="['containerTypeName', {rules: [{required: true, message: '请è¾å
¥ç±»ååç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="容å¨å
³ç³»ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¹å¨å
³ç³»ID" v-decorator="['packagingId', {rules: [{required: true, message: '请è¾å
¥å®¹å¨å
³ç³»IDï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="é¿åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é¿åº¦" v-decorator="['specLength']" /> |
| | | </a-form-item> |
| | | <a-form-item label="宽度" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®½åº¦" v-decorator="['specWidth']" /> |
| | | </a-form-item> |
| | | <a-form-item label="é«åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é«åº¦" v-decorator="['specHeight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="éé¿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥éé¿" v-decorator="['limitLength']" /> |
| | | </a-form-item> |
| | | <a-form-item label="é宽" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é宽" v-decorator="['limitWidth']" /> |
| | | </a-form-item> |
| | | <a-form-item label="éé«" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥éé«" v-decorator="['limitHeight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="è½½éä¸é" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥è½½éä¸é" v-decorator="['maxWeight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç¶å®¹å¨åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç¶å®¹å¨åç§°" v-decorator="['parentContainerName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç¶å®¹å¨Id" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç¶å®¹å¨Id" v-decorator="['parentContainerId']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦èæ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥æ¯å¦èæ" style="width: 100%" v-decorator="['isVirtually']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsContainerAdd |
| | | } from '@/api/modular/main/WmsBase/WmsContainerManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | add (record) { |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | |
| | | }); |
| | | }, |
| | | /** |
| | | * æäº¤è¡¨å |
| | | */ |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | } |
| | | } |
| | | WmsContainerAdd(values).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('æ°å¢æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', values) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('æ°å¢å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | } else { |
| | | this.confirmLoading = false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾å®¹å¨ä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç¼å·" v-decorator="['containerCode', {rules: [{required: true, message: '请è¾å
¥ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åç§°" v-decorator="['containerName', {rules: [{required: true, message: '请è¾å
¥åç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»åID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»åID" v-decorator="['containerTypeId', {rules: [{required: true, message: '请è¾å
¥ç±»åIDï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»ååç§°" v-decorator="['containerTypeName', {rules: [{required: true, message: '请è¾å
¥ç±»ååç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="容å¨å
³ç³»ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®¹å¨å
³ç³»ID" v-decorator="['packagingId', {rules: [{required: true, message: '请è¾å
¥å®¹å¨å
³ç³»IDï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="é¿åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é¿åº¦" v-decorator="['specLength']" /> |
| | | </a-form-item> |
| | | <a-form-item label="宽度" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å®½åº¦" v-decorator="['specWidth']" /> |
| | | </a-form-item> |
| | | <a-form-item label="é«åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é«åº¦" v-decorator="['specHeight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="éé¿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥éé¿" v-decorator="['limitLength']" /> |
| | | </a-form-item> |
| | | <a-form-item label="é宽" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é宽" v-decorator="['limitWidth']" /> |
| | | </a-form-item> |
| | | <a-form-item label="éé«" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥éé«" v-decorator="['limitHeight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="è½½éä¸é" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥è½½éä¸é" v-decorator="['maxWeight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç¶å®¹å¨åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç¶å®¹å¨åç§°" v-decorator="['parentContainerName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç¶å®¹å¨Id" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç¶å®¹å¨Id" v-decorator="['parentContainerId']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦èæ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥æ¯å¦èæ" style="width: 100%" v-decorator="['isVirtually']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsContainerEdit |
| | | } from '@/api/modular/main/WmsBase/WmsContainerManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | Id: 0, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | record: {}, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | edit (record) { |
| | | this.visible = true; |
| | | this.Id = record.id; |
| | | this.$nextTick(() => { |
| | | }); |
| | | //深度æ·è´ ç§»é¤VUEççå¬ï¼é²æ¢INDEX页é¢å¼åå¨ |
| | | this.record = JSON.parse(JSON.stringify(record)) |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue( |
| | | { |
| | | id: record.id, |
| | | containerCode: record.containerCode, |
| | | containerName: record.containerName, |
| | | containerTypeId: record.containerTypeId, |
| | | containerTypeName: record.containerTypeName, |
| | | packagingId: record.packagingId, |
| | | specLength: record.specLength, |
| | | specWidth: record.specWidth, |
| | | specHeight: record.specHeight, |
| | | limitLength: record.limitLength, |
| | | limitWidth: record.limitWidth, |
| | | limitHeight: record.limitHeight, |
| | | maxWeight: record.maxWeight, |
| | | parentContainerName: record.parentContainerName, |
| | | parentContainerId: record.parentContainerId, |
| | | isVirtually: record.isVirtually, |
| | | isDisabled: record.isDisabled |
| | | } |
| | | ) |
| | | }) |
| | | }, |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (values[key] == null) continue |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | this.record[key] = values[key] |
| | | } else { |
| | | this.record[key] = values[key] |
| | | } |
| | | } |
| | | WmsContainerEdit(this.record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('ç¼è¾æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', this.record) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('ç¼è¾å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | }else{ |
| | | this.confirmLoading = false |
| | | } |
| | | }); |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :width="850" |
| | | :destroyOnClose="true" |
| | | :visible="visible" |
| | | :forceRender="true" |
| | | title="æ¹é导å
¥" |
| | | cancelText="åæ¶ä¸ä¼ " |
| | | okText="å¼å§ä¸ä¼ " |
| | | @cancel="handleCancel" |
| | | @ok="handleSubmit"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-row :span="24"> |
| | | <span>è¯·éæ©è¦å¯¼å
¥çæ°æ®æä»¶ï¼Excelæ ¼å¼ï¼</span> |
| | | </a-row> |
| | | <p></p> |
| | | <a-row> |
| | | <a-col :span="16"> |
| | | <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload"> |
| | | <a-icon style="font-size: 40px;" type="cloud-upload" /> |
| | | </a-upload-dragger> |
| | | </a-col> |
| | | <!--<a-col :span="8"> |
| | | <span>导å
¥æ¨¡å¼ï¼</span> |
| | | <a-select |
| | | style="width: 130px" |
| | | placeholder="è¯·éæ©å¯¼å
¥æ¨¡å¼" |
| | | v-model="importExcelType"> |
| | | <a-select-option |
| | | v-for="(item,index) in importExcelTypeData" |
| | | :key="index" |
| | | :value="item.code">{{ item.name }} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-col>--> |
| | | </a-row> |
| | | <a-row :span="24"> |
| | | <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed"> |
| | | ç¹å»æ¥çæä»¶ä¸ä¼ è¦æ± |
| | | </a-button>--> |
| | | <span>ã</span> |
| | | <a-button style="width: 90px;text-align: left;" @click="wmsContainerDownloadExcelTemplate" type="link">ä¸è½½å¯¼å
¥æ¨¡æ¿</a-button>ï¼å¡«åå¹¶ä¸ä¼ |
| | | <span>ã</span> |
| | | <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed"> |
| | | æ¶èµ· |
| | | </a-button> |
| | | </a-row> |
| | | <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24"> |
| | | <a-breadcrumb> |
| | | <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">æä»¶ä¸ä¼ è¦æ±</a-breadcrumb-item> |
| | | </a-breadcrumb> |
| | | </a-row> |
| | | <pre v-show="detailed"> |
| | | <div v-html="demandText"></div> |
| | | </pre> |
| | | <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table> |
| | | <pre v-show="detailed"> |
| | | <div v-html="columnText"></div> |
| | | </pre> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util' |
| | | |
| | | import { WmsContainerImportExcel, WmsContainerDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsContainerManage' |
| | | import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage' |
| | | export default { |
| | | components: { |
| | | }, |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | detailed: false, |
| | | confirmLoading: false, |
| | | fileList: [], |
| | | importExcelTypeData: [], |
| | | importExcelType: '1', |
| | | uploadFile: null, |
| | | columns: [], |
| | | dataList: [], |
| | | demandText:'', |
| | | columnText: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | index() { |
| | | this.visible = true; |
| | | this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type') |
| | | this.demandText = parseDemandText("wmsContainerDownloadExcelTemplate") |
| | | window.downloadFile = this.wmsContainerDownloadExcelTemplate; |
| | | this.getTable(); |
| | | }, |
| | | showDemand() { |
| | | this.detailed = !this.detailed; |
| | | }, |
| | | customRequest(document) { |
| | | this.uploadFile = document |
| | | }, |
| | | getTable() { |
| | | sysExcelTemplateGetColumnList({className: "WmsContainer"}).then(res => |
| | | { |
| | | if (res.success) { |
| | | this.columns =[]; |
| | | this.dataList = [{}]; |
| | | res.data.forEach(x => { |
| | | this.columns.push({ |
| | | dataIndex: x.columnName, |
| | | key: x.columnName, |
| | | title: x.columnComment |
| | | }); |
| | | this.dataList[0][x.columnName] = x.isRequired ? "å¿
å¡«" : "éå¿
å¡«" |
| | | }); |
| | | this.columnText = parseExcelFieldText(res.data); |
| | | } |
| | | }); |
| | | }, |
| | | beforeUpload(fileInfo) { |
| | | let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']); |
| | | if (!res.success) { |
| | | this.$message.warning(res.msg) |
| | | return false |
| | | } |
| | | setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000) |
| | | }, |
| | | handleChange(fileInfo) { |
| | | if (fileInfo.file.status === 'error') { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | if (fileInfo.file.status === 'done') { |
| | | if (fileInfo.fileList.length > 1) { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | this.fileList = fileInfo.file |
| | | } |
| | | }, |
| | | handleSubmit() { |
| | | this.confirmLoading = true |
| | | const formData = new FormData() |
| | | formData.append('file', this.uploadFile.file) |
| | | WmsContainerImportExcel(formData, {importExcelType: this.importExcelType}).then(res => { |
| | | this.$message.success('æä½æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', []) |
| | | this.handleCancel() |
| | | }).finally((res)=>{this.confirmLoading = false}) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.detailed = false |
| | | }, |
| | | wmsContainerDownloadExcelTemplate() { |
| | | WmsContainerDownloadExcelTemplate({version: "v2"}).then((res) => { |
| | | downloadFile(res); |
| | | }).catch((err) => { |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | ::v-deep .ant-upload.ant-upload-drag { |
| | | position: relative; |
| | | width: 140px; |
| | | height: 135px; |
| | | text-align: center; |
| | | background: #fafafa; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 2px; |
| | | cursor: pointer; |
| | | -webkit-transition: border-color 0.3s; |
| | | transition: border-color 0.3s; |
| | | } |
| | | ::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { |
| | | color: #ffc53d; |
| | | border-color: white; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div ref="boxOutWrap" class="boxOutWrap"> |
| | | <div ref="boxForm" class="boxForm"> |
| | | <a-card :bordered="false" :bodyStyle="tstyle"> |
| | | |
| | | <div class="table-page-search-wrapper" v-if="hasPerm('WmsContainer:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç¼å·"> |
| | | <a-input v-model="queryParam.containerCode" allow-clear placeholder="请è¾å
¥ç¼å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åç§°"> |
| | | <a-input v-model="queryParam.containerName" allow-clear placeholder="请è¾å
¥åç§°"/> |
| | | </a-form-item> |
| | | </a-col><template v-if="advanced"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç±»åID"> |
| | | <a-input v-model="queryParam.containerTypeId" allow-clear placeholder="请è¾å
¥ç±»åID"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç±»ååç§°"> |
| | | <a-input v-model="queryParam.containerTypeName" allow-clear placeholder="请è¾å
¥ç±»ååç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="容å¨å
³ç³»ID"> |
| | | <a-input v-model="queryParam.packagingId" allow-clear placeholder="请è¾å
¥å®¹å¨å
³ç³»ID"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="é¿åº¦"> |
| | | <a-input v-model="queryParam.specLength" allow-clear placeholder="请è¾å
¥é¿åº¦"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="宽度"> |
| | | <a-input v-model="queryParam.specWidth" allow-clear placeholder="请è¾å
¥å®½åº¦"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="é«åº¦"> |
| | | <a-input v-model="queryParam.specHeight" allow-clear placeholder="请è¾å
¥é«åº¦"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="éé¿"> |
| | | <a-input v-model="queryParam.limitLength" allow-clear placeholder="请è¾å
¥éé¿"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="é宽"> |
| | | <a-input v-model="queryParam.limitWidth" allow-clear placeholder="请è¾å
¥é宽"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="éé«"> |
| | | <a-input v-model="queryParam.limitHeight" allow-clear placeholder="请è¾å
¥éé«"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="è½½éä¸é"> |
| | | <a-input v-model="queryParam.maxWeight" allow-clear placeholder="请è¾å
¥è½½éä¸é"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç¶å®¹å¨åç§°"> |
| | | <a-input v-model="queryParam.parentContainerName" allow-clear placeholder="请è¾å
¥ç¶å®¹å¨åç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç¶å®¹å¨Id"> |
| | | <a-input v-model="queryParam.parentContainerId" allow-clear placeholder="请è¾å
¥ç¶å®¹å¨Id"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦èæ"> |
| | | <a-input-number v-model="queryParam.isVirtually" style="width: 100%" allow-clear placeholder="请è¾å
¥æ¯å¦èæ"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦ç¦ç¨"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="è¯·éæ©æ¯å¦ç¦ç¨"> |
| | | <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ´æ°æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建è
åç§°"> |
| | | <a-input v-model="queryParam.createdUserName" allow-clear placeholder="请è¾å
¥å建è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä¿®æ¹è
åç§°"> |
| | | <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å
¥ä¿®æ¹è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> </template> |
| | | |
| | | <a-col :md="8" :sm="24" > |
| | | <span class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="$refs.table.refresh(true)" >æ¥è¯¢</a-button> |
| | | <a-button style="margin-left: 8px" @click="() => queryParam = {}">éç½®</a-button> |
| | | <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="advanced ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | <a-card :bordered="false"> |
| | | <s-table |
| | | ref="table" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | :alert="true" |
| | | @changeTablePage="pageInfo = $event" |
| | | :scroll="{x: true,y:tableHeight}" |
| | | :rowKey="(record) => record.id" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> |
| | | <template class="table-operator" slot="operator" v-if="hasPerm('WmsContainer:add')" > |
| | | <div ref="actionBar" class="actionBar"> |
| | | <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> |
| | | 导å
¥ |
| | | </a-button> |
| | | <a-button type="info" v-if="hasPerm('WmsContainer:exportExcel')" icon="download" @click="WmsContainerToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsContainer:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢å®¹å¨ä¿¡æ¯</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a v-if="hasPerm('WmsContainer:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('WmsContainer:edit') & hasPerm('WmsContainer:delete')"/> |
| | | <a-popconfirm v-if="hasPerm('WmsContainer:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsContainerDelete(record)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </s-table> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <edit-form ref="editForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsContainerPage, WmsContainerDelete, WmsContainerToExcel } from '@/api/modular/main/WmsBase/WmsContainerManage' |
| | | //èªå®ä¹tableé«åº¦ |
| | | import setTableHtMixin from '@/mixins/handleTableHt.js' |
| | | import addForm from './addForm.vue' |
| | | import { exportExcel } from '@/utils/exportToExcel' |
| | | import { downloadFile } from '@/utils/util' |
| | | import editForm from './editForm.vue' |
| | | import excelForm from './excelForm.vue' |
| | | export default { |
| | | mixins: [setTableHtMixin], |
| | | components: { |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | }, |
| | | data () { |
| | | return { |
| | | advanced: false, // é«çº§æç´¢ å±å¼/å
³é |
| | | queryParam: {}, |
| | | pageInfo: { |
| | | current: 1, |
| | | pageSize: 10 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title:'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'ç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'containerCode' |
| | | }, |
| | | { |
| | | title: 'åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'containerName' |
| | | }, |
| | | { |
| | | title: 'ç±»åID', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'containerTypeId' |
| | | }, |
| | | { |
| | | title: 'ç±»ååç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'containerTypeName' |
| | | }, |
| | | { |
| | | title: '容å¨å
³ç³»ID', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'packagingId' |
| | | }, |
| | | { |
| | | title: 'é¿åº¦', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'specLength' |
| | | }, |
| | | { |
| | | title: '宽度', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'specWidth' |
| | | }, |
| | | { |
| | | title: 'é«åº¦', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'specHeight' |
| | | }, |
| | | { |
| | | title: 'éé¿', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'limitLength' |
| | | }, |
| | | { |
| | | title: 'é宽', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'limitWidth' |
| | | }, |
| | | { |
| | | title: 'éé«', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'limitHeight' |
| | | }, |
| | | { |
| | | title: 'è½½éä¸é', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'maxWeight' |
| | | }, |
| | | { |
| | | title: 'ç¶å®¹å¨åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'parentContainerName' |
| | | }, |
| | | { |
| | | title: 'ç¶å®¹å¨Id', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'parentContainerId' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦èæ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isVirtually' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdTime' |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedTime' |
| | | }, |
| | | { |
| | | title: 'å建è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdUserName' |
| | | }, |
| | | { |
| | | title: 'ä¿®æ¹è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedUserName' |
| | | } |
| | | ], |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return WmsContainerPage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('WmsContainer:edit') || this.hasPerm('WmsContainer:delete')) { |
| | | this.columns.push({ |
| | | title: 'æä½', |
| | | width: '150px', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' } |
| | | }) |
| | | } |
| | | const path = this.$route.path |
| | | const columnStr = window.localStorage.getItem(path) |
| | | if(columnStr) { |
| | | var _columns = JSON.parse(columnStr) |
| | | this.columns.forEach(element => { |
| | | var fObj = _columns.find((item, index) => { |
| | | return item.dataIndex === element.dataIndex; |
| | | }) |
| | | if(fObj!=undefined && fObj!=null){ |
| | | element.checked=fObj.checked; |
| | | } |
| | | }); |
| | | } |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsContainerDelete (record) { |
| | | WmsContainerDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | WmsContainerToExcel() { |
| | | this.loading = true |
| | | let entozh = {}; |
| | | const path = this.$route.path; |
| | | if (window.localStorage.getItem(path)) { |
| | | JSON.parse(window.localStorage.getItem(path)).forEach(item => { |
| | | if (item.dataIndex != 'action' && item.checked) { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } else { //ç´æ¥ç¹å¯¼åº |
| | | this.columns.forEach(item => { |
| | | if (item.dataIndex != 'action') { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } |
| | | WmsContainerPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { |
| | | this.loading = false; |
| | | //éè¦æªåæ¥æçåæ®µ |
| | | var arrDataCutout = this.columns.filter(v => v.customCutout == true); |
| | | res.data.rows.forEach(item => { |
| | | var arrKeys = Object.keys(item); |
| | | arrKeys.forEach(key => { |
| | | var strFieldDic = key + 'Data'; |
| | | //æä¸¾è½¬å¼ |
| | | if (this[strFieldDic] && this[strFieldDic].length > 0) { |
| | | let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); |
| | | if (arrFieldDic.length > 0) { |
| | | item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼'; |
| | | } |
| | | } |
| | | // æ¥ææªå |
| | | if (arrDataCutout.length > 0) { |
| | | arrDataCutout.forEach(itemIn => { |
| | | if (key == itemIn.dataIndex && item[key]) { |
| | | item[key] = item[key].split(" ")[0] |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) |
| | | }).catch((err) => { |
| | | this.loading = false |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | toggleAdvanced () { |
| | | this.advanced = !this.advanced |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | }, |
| | | onChangecreatedTime(date, dateString) { |
| | | this.queryParam.createdTime = dateString |
| | | }, |
| | | onChangeupdatedTime(date, dateString) { |
| | | this.queryParam.updatedTime = dateString |
| | | }, |
| | | handleOk () { |
| | | this.$refs.table.refresh() |
| | | }, |
| | | onSelectChange (selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢å
è£
å
³ç³»åºç¡è¡¨" |
| | | title="æ°å¢å®¹å¨å
³ç³»" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾å
è£
å
³ç³»åºç¡è¡¨" |
| | | title="ç¼è¾å®¹å¨å
³ç³»" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | |
| | | <a-button type="info" v-if="hasPerm('WmsContainerPackaging:exportExcel')" icon="download" @click="WmsContainerPackagingToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsContainerPackaging:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢å
è£
å
³ç³»åºç¡è¡¨</a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsContainerPackaging:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢å®¹å¨å
³ç³»</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="action" slot-scope="text, record"> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢å®¹å¨ç±»å" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="ç±»åç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»åç¼å·" v-decorator="['typeCode', {rules: [{required: true, message: '请è¾å
¥ç±»åç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»ååç§°" v-decorator="['typeName', {rules: [{required: true, message: '请è¾å
¥ç±»ååç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦åæ¶" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isAllowReclaim',{rules: [{ required: true, message: 'è¯·éæ©æ¯å¦åæ¶ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åä½" v-decorator="['unit', {rules: [{required: true, message: '请è¾å
¥åä½ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ä½¿ç¨æé" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ä½¿ç¨æé" v-decorator="['usagePeriod']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsContainerTypeAdd |
| | | } from '@/api/modular/main/WmsBase/WmsContainerTypeManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | add (record) { |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | |
| | | }); |
| | | }, |
| | | /** |
| | | * æäº¤è¡¨å |
| | | */ |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | } |
| | | } |
| | | WmsContainerTypeAdd(values).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('æ°å¢æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', values) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('æ°å¢å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | } else { |
| | | this.confirmLoading = false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾å®¹å¨ç±»å" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="ç±»åç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»åç¼å·" v-decorator="['typeCode', {rules: [{required: true, message: '请è¾å
¥ç±»åç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç±»ååç§°" v-decorator="['typeName', {rules: [{required: true, message: '请è¾å
¥ç±»ååç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦åæ¶" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isAllowReclaim',{rules: [{ required: true, message: 'è¯·éæ©æ¯å¦åæ¶ï¼' }], valuePropName: 'checked'}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åä½" v-decorator="['unit', {rules: [{required: true, message: '请è¾å
¥åä½ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ä½¿ç¨æé" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ä½¿ç¨æé" v-decorator="['usagePeriod']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsContainerTypeEdit |
| | | } from '@/api/modular/main/WmsBase/WmsContainerTypeManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | Id: 0, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | record: {}, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | edit (record) { |
| | | this.visible = true; |
| | | this.Id = record.id; |
| | | this.$nextTick(() => { |
| | | }); |
| | | //深度æ·è´ ç§»é¤VUEççå¬ï¼é²æ¢INDEX页é¢å¼åå¨ |
| | | this.record = JSON.parse(JSON.stringify(record)) |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue( |
| | | { |
| | | id: record.id, |
| | | typeCode: record.typeCode, |
| | | typeName: record.typeName, |
| | | isAllowReclaim: record.isAllowReclaim, |
| | | unit: record.unit, |
| | | usagePeriod: record.usagePeriod, |
| | | isDisabled: record.isDisabled |
| | | } |
| | | ) |
| | | }) |
| | | }, |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (values[key] == null) continue |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | this.record[key] = values[key] |
| | | } else { |
| | | this.record[key] = values[key] |
| | | } |
| | | } |
| | | WmsContainerTypeEdit(this.record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('ç¼è¾æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', this.record) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('ç¼è¾å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | }else{ |
| | | this.confirmLoading = false |
| | | } |
| | | }); |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :width="850" |
| | | :destroyOnClose="true" |
| | | :visible="visible" |
| | | :forceRender="true" |
| | | title="æ¹é导å
¥" |
| | | cancelText="åæ¶ä¸ä¼ " |
| | | okText="å¼å§ä¸ä¼ " |
| | | @cancel="handleCancel" |
| | | @ok="handleSubmit"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-row :span="24"> |
| | | <span>è¯·éæ©è¦å¯¼å
¥çæ°æ®æä»¶ï¼Excelæ ¼å¼ï¼</span> |
| | | </a-row> |
| | | <p></p> |
| | | <a-row> |
| | | <a-col :span="16"> |
| | | <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload"> |
| | | <a-icon style="font-size: 40px;" type="cloud-upload" /> |
| | | </a-upload-dragger> |
| | | </a-col> |
| | | <!--<a-col :span="8"> |
| | | <span>导å
¥æ¨¡å¼ï¼</span> |
| | | <a-select |
| | | style="width: 130px" |
| | | placeholder="è¯·éæ©å¯¼å
¥æ¨¡å¼" |
| | | v-model="importExcelType"> |
| | | <a-select-option |
| | | v-for="(item,index) in importExcelTypeData" |
| | | :key="index" |
| | | :value="item.code">{{ item.name }} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-col>--> |
| | | </a-row> |
| | | <a-row :span="24"> |
| | | <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed"> |
| | | ç¹å»æ¥çæä»¶ä¸ä¼ è¦æ± |
| | | </a-button>--> |
| | | <span>ã</span> |
| | | <a-button style="width: 90px;text-align: left;" @click="wmsContainerTypeDownloadExcelTemplate" type="link">ä¸è½½å¯¼å
¥æ¨¡æ¿</a-button>ï¼å¡«åå¹¶ä¸ä¼ |
| | | <span>ã</span> |
| | | <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed"> |
| | | æ¶èµ· |
| | | </a-button> |
| | | </a-row> |
| | | <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24"> |
| | | <a-breadcrumb> |
| | | <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">æä»¶ä¸ä¼ è¦æ±</a-breadcrumb-item> |
| | | </a-breadcrumb> |
| | | </a-row> |
| | | <pre v-show="detailed"> |
| | | <div v-html="demandText"></div> |
| | | </pre> |
| | | <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table> |
| | | <pre v-show="detailed"> |
| | | <div v-html="columnText"></div> |
| | | </pre> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util' |
| | | |
| | | import { WmsContainerTypeImportExcel, WmsContainerTypeDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsContainerTypeManage' |
| | | import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage' |
| | | export default { |
| | | components: { |
| | | }, |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | detailed: false, |
| | | confirmLoading: false, |
| | | fileList: [], |
| | | importExcelTypeData: [], |
| | | importExcelType: '1', |
| | | uploadFile: null, |
| | | columns: [], |
| | | dataList: [], |
| | | demandText:'', |
| | | columnText: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | index() { |
| | | this.visible = true; |
| | | this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type') |
| | | this.demandText = parseDemandText("wmsContainerTypeDownloadExcelTemplate") |
| | | window.downloadFile = this.wmsContainerTypeDownloadExcelTemplate; |
| | | this.getTable(); |
| | | }, |
| | | showDemand() { |
| | | this.detailed = !this.detailed; |
| | | }, |
| | | customRequest(document) { |
| | | this.uploadFile = document |
| | | }, |
| | | getTable() { |
| | | sysExcelTemplateGetColumnList({className: "WmsContainerType"}).then(res => |
| | | { |
| | | if (res.success) { |
| | | this.columns =[]; |
| | | this.dataList = [{}]; |
| | | res.data.forEach(x => { |
| | | this.columns.push({ |
| | | dataIndex: x.columnName, |
| | | key: x.columnName, |
| | | title: x.columnComment |
| | | }); |
| | | this.dataList[0][x.columnName] = x.isRequired ? "å¿
å¡«" : "éå¿
å¡«" |
| | | }); |
| | | this.columnText = parseExcelFieldText(res.data); |
| | | } |
| | | }); |
| | | }, |
| | | beforeUpload(fileInfo) { |
| | | let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']); |
| | | if (!res.success) { |
| | | this.$message.warning(res.msg) |
| | | return false |
| | | } |
| | | setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000) |
| | | }, |
| | | handleChange(fileInfo) { |
| | | if (fileInfo.file.status === 'error') { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | if (fileInfo.file.status === 'done') { |
| | | if (fileInfo.fileList.length > 1) { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | this.fileList = fileInfo.file |
| | | } |
| | | }, |
| | | handleSubmit() { |
| | | this.confirmLoading = true |
| | | const formData = new FormData() |
| | | formData.append('file', this.uploadFile.file) |
| | | WmsContainerTypeImportExcel(formData, {importExcelType: this.importExcelType}).then(res => { |
| | | this.$message.success('æä½æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', []) |
| | | this.handleCancel() |
| | | }).finally((res)=>{this.confirmLoading = false}) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.detailed = false |
| | | }, |
| | | wmsContainerTypeDownloadExcelTemplate() { |
| | | WmsContainerTypeDownloadExcelTemplate({version: "v2"}).then((res) => { |
| | | downloadFile(res); |
| | | }).catch((err) => { |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | ::v-deep .ant-upload.ant-upload-drag { |
| | | position: relative; |
| | | width: 140px; |
| | | height: 135px; |
| | | text-align: center; |
| | | background: #fafafa; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 2px; |
| | | cursor: pointer; |
| | | -webkit-transition: border-color 0.3s; |
| | | transition: border-color 0.3s; |
| | | } |
| | | ::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { |
| | | color: #ffc53d; |
| | | border-color: white; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div ref="boxOutWrap" class="boxOutWrap"> |
| | | <div ref="boxForm" class="boxForm"> |
| | | <a-card :bordered="false" :bodyStyle="tstyle"> |
| | | |
| | | <div class="table-page-search-wrapper" v-if="hasPerm('WmsContainerType:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç±»åç¼å·"> |
| | | <a-input v-model="queryParam.typeCode" allow-clear placeholder="请è¾å
¥ç±»åç¼å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç±»ååç§°"> |
| | | <a-input v-model="queryParam.typeName" allow-clear placeholder="请è¾å
¥ç±»ååç§°"/> |
| | | </a-form-item> |
| | | </a-col><template v-if="advanced"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦åæ¶"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isAllowReclaim" placeholder="è¯·éæ©æ¯å¦åæ¶"> |
| | | <a-select-option v-for="(item,index) in isAllowReclaimData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åä½"> |
| | | <a-input v-model="queryParam.unit" allow-clear placeholder="请è¾å
¥åä½"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä½¿ç¨æé"> |
| | | <a-input v-model="queryParam.usagePeriod" allow-clear placeholder="请è¾å
¥ä½¿ç¨æé"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦ç¦ç¨"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="è¯·éæ©æ¯å¦ç¦ç¨"> |
| | | <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ´æ°æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建è
åç§°"> |
| | | <a-input v-model="queryParam.createdUserName" allow-clear placeholder="请è¾å
¥å建è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä¿®æ¹è
åç§°"> |
| | | <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å
¥ä¿®æ¹è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> </template> |
| | | |
| | | <a-col :md="8" :sm="24" > |
| | | <span class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="$refs.table.refresh(true)" >æ¥è¯¢</a-button> |
| | | <a-button style="margin-left: 8px" @click="() => queryParam = {}">éç½®</a-button> |
| | | <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="advanced ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | <a-card :bordered="false"> |
| | | <s-table |
| | | ref="table" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | :alert="true" |
| | | @changeTablePage="pageInfo = $event" |
| | | :scroll="{x: true,y:tableHeight}" |
| | | :rowKey="(record) => record.id" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> |
| | | <template class="table-operator" slot="operator" v-if="hasPerm('WmsContainerType:add')" > |
| | | <div ref="actionBar" class="actionBar"> |
| | | <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> |
| | | 导å
¥ |
| | | </a-button> |
| | | <a-button type="info" v-if="hasPerm('WmsContainerType:exportExcel')" icon="download" @click="WmsContainerTypeToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsContainerType:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢å®¹å¨ç±»å</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="isAllowReclaimscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a v-if="hasPerm('WmsContainerType:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('WmsContainerType:edit') & hasPerm('WmsContainerType:delete')"/> |
| | | <a-popconfirm v-if="hasPerm('WmsContainerType:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsContainerTypeDelete(record)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </s-table> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <edit-form ref="editForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsContainerTypePage, WmsContainerTypeDelete, WmsContainerTypeToExcel } from '@/api/modular/main/WmsBase/WmsContainerTypeManage' |
| | | //èªå®ä¹tableé«åº¦ |
| | | import setTableHtMixin from '@/mixins/handleTableHt.js' |
| | | import addForm from './addForm.vue' |
| | | import { exportExcel } from '@/utils/exportToExcel' |
| | | import { downloadFile } from '@/utils/util' |
| | | import editForm from './editForm.vue' |
| | | import excelForm from './excelForm.vue' |
| | | export default { |
| | | mixins: [setTableHtMixin], |
| | | components: { |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | }, |
| | | data () { |
| | | return { |
| | | advanced: false, // é«çº§æç´¢ å±å¼/å
³é |
| | | queryParam: {}, |
| | | pageInfo: { |
| | | current: 1, |
| | | pageSize: 10 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title:'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'ç±»åç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'typeCode' |
| | | }, |
| | | { |
| | | title: 'ç±»ååç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'typeName' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦åæ¶', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isAllowReclaim', |
| | | scopedSlots: { customRender: 'isAllowReclaimscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'åä½', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'unit' |
| | | }, |
| | | { |
| | | title: 'ä½¿ç¨æé', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'usagePeriod' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdTime' |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedTime' |
| | | }, |
| | | { |
| | | title: 'å建è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdUserName' |
| | | }, |
| | | { |
| | | title: 'ä¿®æ¹è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedUserName' |
| | | } |
| | | ], |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return WmsContainerTypePage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('WmsContainerType:edit') || this.hasPerm('WmsContainerType:delete')) { |
| | | this.columns.push({ |
| | | title: 'æä½', |
| | | width: '150px', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' } |
| | | }) |
| | | } |
| | | const path = this.$route.path |
| | | const columnStr = window.localStorage.getItem(path) |
| | | if(columnStr) { |
| | | var _columns = JSON.parse(columnStr) |
| | | this.columns.forEach(element => { |
| | | var fObj = _columns.find((item, index) => { |
| | | return item.dataIndex === element.dataIndex; |
| | | }) |
| | | if(fObj!=undefined && fObj!=null){ |
| | | element.checked=fObj.checked; |
| | | } |
| | | }); |
| | | } |
| | | const isAllowReclaimOption = this.$options |
| | | this.isAllowReclaimData = isAllowReclaimOption.filters['dictData']('yes_true_false') |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsContainerTypeDelete (record) { |
| | | WmsContainerTypeDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | WmsContainerTypeToExcel() { |
| | | this.loading = true |
| | | let entozh = {}; |
| | | const path = this.$route.path; |
| | | if (window.localStorage.getItem(path)) { |
| | | JSON.parse(window.localStorage.getItem(path)).forEach(item => { |
| | | if (item.dataIndex != 'action' && item.checked) { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } else { //ç´æ¥ç¹å¯¼åº |
| | | this.columns.forEach(item => { |
| | | if (item.dataIndex != 'action') { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } |
| | | WmsContainerTypePage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { |
| | | this.loading = false; |
| | | //éè¦æªåæ¥æçåæ®µ |
| | | var arrDataCutout = this.columns.filter(v => v.customCutout == true); |
| | | res.data.rows.forEach(item => { |
| | | var arrKeys = Object.keys(item); |
| | | arrKeys.forEach(key => { |
| | | var strFieldDic = key + 'Data'; |
| | | //æä¸¾è½¬å¼ |
| | | if (this[strFieldDic] && this[strFieldDic].length > 0) { |
| | | let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); |
| | | if (arrFieldDic.length > 0) { |
| | | item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼'; |
| | | } |
| | | } |
| | | // æ¥ææªå |
| | | if (arrDataCutout.length > 0) { |
| | | arrDataCutout.forEach(itemIn => { |
| | | if (key == itemIn.dataIndex && item[key]) { |
| | | item[key] = item[key].split(" ")[0] |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) |
| | | }).catch((err) => { |
| | | this.loading = false |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | toggleAdvanced () { |
| | | this.advanced = !this.advanced |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | }, |
| | | onChangecreatedTime(date, dateString) { |
| | | this.queryParam.createdTime = dateString |
| | | }, |
| | | onChangeupdatedTime(date, dateString) { |
| | | this.queryParam.updatedTime = dateString |
| | | }, |
| | | handleOk () { |
| | | this.$refs.table.refresh() |
| | | }, |
| | | onSelectChange (selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢å·¥åä¿¡æ¯è¡¨" |
| | | title="æ°å¢å·¥åä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾å·¥åä¿¡æ¯è¡¨" |
| | | title="ç¼è¾å·¥åä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | |
| | | <template> |
| | | <div ref="boxOutWrap" class="boxOutWrap"> |
| | | <div ref="boxForm" class="boxForm"> |
| | | <a-card :bordered="false" :bodyStyle="tstyle"> |
| | | <div class="table-page-search-wrapper" v-if="hasPerm('WmsFactory:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <div ref="boxForm" class="boxForm"> |
| | | <a-card :bordered="false" :bodyStyle="tstyle"> |
| | | |
| | | <div class="table-page-search-wrapper" v-if="hasPerm('WmsFactory:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç¼å·"> |
| | | <a-input v-model="queryParam.factoryCode" allow-clear placeholder="请è¾å
¥ç¼å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åç§°"> |
| | | <a-input v-model="queryParam.factoryName" allow-clear placeholder="请è¾å
¥åç§°"/> |
| | | </a-form-item> |
| | | </a-col><template v-if="advanced"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç¼å·"> |
| | | <a-input v-model="queryParam.factoryCode" allow-clear placeholder="请è¾å
¥ç¼å·" /> |
| | | <a-form-item label="å°å"> |
| | | <a-input v-model="queryParam.factoryAddress" allow-clear placeholder="请è¾å
¥å°å"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦ç¦ç¨"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="è¯·éæ©æ¯å¦ç¦ç¨"> |
| | | <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ´æ°æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建è
åç§°"> |
| | | <a-input v-model="queryParam.createdUserName" allow-clear placeholder="请è¾å
¥å建è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åç§°"> |
| | | <a-input v-model="queryParam.factoryName" allow-clear placeholder="请è¾å
¥åç§°" /> |
| | | </a-form-item> </a-col |
| | | ><template v-if="advanced"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å°å"> |
| | | <a-input v-model="queryParam.factoryAddress" allow-clear placeholder="请è¾å
¥å°å" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦ç¦ç¨"> |
| | | <a-select |
| | | :allowClear="true" |
| | | style="width: 100%" |
| | | v-model="queryParam.isDisabled" |
| | | placeholder="è¯·éæ©æ¯å¦ç¦ç¨" |
| | | > |
| | | <a-select-option v-for="(item, index) in isDisabledData" :key="index" :value="item.code">{{ |
| | | item.name |
| | | }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | <a-form-item label="ä¿®æ¹è
åç§°"> |
| | | <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å
¥ä¿®æ¹è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> </template> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建æ¶é´"> |
| | | <a-range-picker |
| | | style="width: 100%" |
| | | :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" |
| | | :show-time="{ |
| | | format: 'HH:mm:ss', |
| | | defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')] |
| | | }" |
| | | v-model="queryParam.createdTime" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | format="YYYY-MM-DD HH:mm:ss" |
| | | @change="onChangecreatedTime" |
| | | /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | <a-col :md="8" :sm="24" > |
| | | <span class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="$refs.table.refresh(true)" >æ¥è¯¢</a-button> |
| | | <a-button style="margin-left: 8px" @click="() => queryParam = {}">éç½®</a-button> |
| | | <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="advanced ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ´æ°æ¶é´"> |
| | | <a-range-picker |
| | | style="width: 100%" |
| | | :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" |
| | | :show-time="{ |
| | | format: 'HH:mm:ss', |
| | | defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')] |
| | | }" |
| | | v-model="queryParam.updatedTime" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | format="YYYY-MM-DD HH:mm:ss" |
| | | @change="onChangeupdatedTime" |
| | | /> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建è
åç§°"> |
| | | <a-input v-model="queryParam.createdUserName" allow-clear placeholder="请è¾å
¥å建è
åç§°" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä¿®æ¹è
åç§°"> |
| | | <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å
¥ä¿®æ¹è
åç§°" /> |
| | | </a-form-item> |
| | | </a-col> |
| | | </template> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <span class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="$refs.table.refresh(true)">æ¥è¯¢</a-button> |
| | | <a-button style="margin-left: 8px" @click="() => (queryParam = {})">éç½®</a-button> |
| | | <a @click="toggleAdvanced" style="margin-left: 8px"> |
| | | {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="advanced ? 'up' : 'down'" /> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | <a-card :bordered="false"> |
| | | <s-table |
| | | ref="table" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | :alert="true" |
| | | @changeTablePage="pageInfo = $event" |
| | | :scroll="{ x: true, y: tableHeight }" |
| | | :rowKey="record => record.id" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" |
| | | > |
| | | <template class="table-operator" slot="operator" v-if="hasPerm('WmsFactory:add')"> |
| | | <div ref="actionBar" class="actionBar"> |
| | | <a-button |
| | | type="info" |
| | | v-if="hasPerm('sysExcelTemplate:importExcel')" |
| | | icon="upload" |
| | | @click="$refs.excelForm.index()" |
| | | > |
| | | 导å
¥ |
| | | </a-button> |
| | | <a-button type="info" v-if="hasPerm('WmsFactory:exportExcel')" icon="download" @click="WmsFactoryToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsFactory:add')" icon="plus" @click="$refs.addForm.add()" |
| | | >æ°å¢å·¥åä¿¡æ¯è¡¨</a-button |
| | | > |
| | | </div> |
| | | </template> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text === true"> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text == false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | <a v-if="hasPerm('WmsFactory:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('WmsFactory:edit') & hasPerm('WmsFactory:delete')" /> |
| | | <a-popconfirm |
| | | v-if="hasPerm('WmsFactory:delete')" |
| | | placement="topRight" |
| | | title="确认å é¤ï¼" |
| | | @confirm="() => WmsFactoryDelete(record)" |
| | | > |
| | | @changeTablePage="pageInfo = $event" |
| | | :scroll="{x: true,y:tableHeight}" |
| | | :rowKey="(record) => record.id" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> |
| | | <template class="table-operator" slot="operator" v-if="hasPerm('WmsFactory:add')" > |
| | | <div ref="actionBar" class="actionBar"> |
| | | <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> |
| | | 导å
¥ |
| | | </a-button> |
| | | <a-button type="info" v-if="hasPerm('WmsFactory:exportExcel')" icon="download" @click="WmsFactoryToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsFactory:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢å·¥åä¿¡æ¯</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a v-if="hasPerm('WmsFactory:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('WmsFactory:edit') & hasPerm('WmsFactory:delete')"/> |
| | | <a-popconfirm v-if="hasPerm('WmsFactory:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsFactoryDelete(record)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </s-table> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <edit-form ref="editForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsFactoryPage, WmsFactoryDelete, WmsFactoryToExcel } from '@/api/modular/main/WmsBase/WmsFactoryManage' |
| | | //èªå®ä¹tableé«åº¦ |
| | | import setTableHtMixin from '@/mixins/handleTableHt.js' |
| | | import addForm from './addForm.vue' |
| | | import { exportExcel } from '@/utils/exportToExcel' |
| | | import { downloadFile } from '@/utils/util' |
| | | import editForm from './editForm.vue' |
| | | import excelForm from './excelForm.vue' |
| | | export default { |
| | | mixins: [setTableHtMixin], |
| | | components: { |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | }, |
| | | data() { |
| | | return { |
| | | advanced: false, // é«çº§æç´¢ å±å¼/å
³é |
| | | queryParam: {}, |
| | | pageInfo: { |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsFactoryPage, WmsFactoryDelete, WmsFactoryToExcel } from '@/api/modular/main/WmsBase/WmsFactoryManage' |
| | | //èªå®ä¹tableé«åº¦ |
| | | import setTableHtMixin from '@/mixins/handleTableHt.js' |
| | | import addForm from './addForm.vue' |
| | | import { exportExcel } from '@/utils/exportToExcel' |
| | | import { downloadFile } from '@/utils/util' |
| | | import editForm from './editForm.vue' |
| | | import excelForm from './excelForm.vue' |
| | | export default { |
| | | mixins: [setTableHtMixin], |
| | | components: { |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | }, |
| | | data () { |
| | | return { |
| | | advanced: false, // é«çº§æç´¢ å±å¼/å
³é |
| | | queryParam: {}, |
| | | pageInfo: { |
| | | current: 1, |
| | | pageSize: 10 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title: 'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'ç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryCode' |
| | | }, |
| | | { |
| | | title: 'åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryName' |
| | | }, |
| | | { |
| | | title: 'å°å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryAddress' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdTime' |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedTime' |
| | | }, |
| | | { |
| | | title: 'å建è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdUserName' |
| | | }, |
| | | { |
| | | title: 'ä¿®æ¹è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px' //æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedUserName' |
| | | } |
| | | ], |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return WmsFactoryPage(Object.assign(parameter, this.switchingDate())).then(res => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created() { |
| | | if (this.hasPerm('WmsFactory:edit') || this.hasPerm('WmsFactory:delete')) { |
| | | this.columns.push({ |
| | | title: 'æä½', |
| | | width: '150px', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' } |
| | | }) |
| | | } |
| | | const path = this.$route.path |
| | | const columnStr = window.localStorage.getItem(path) |
| | | if (columnStr) { |
| | | var _columns = JSON.parse(columnStr) |
| | | this.columns.forEach(element => { |
| | | var fObj = _columns.find((item, index) => { |
| | | return item.dataIndex === element.dataIndex |
| | | }) |
| | | if (fObj != undefined && fObj != null) { |
| | | element.checked = fObj.checked |
| | | } |
| | | }) |
| | | } |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | columns: [ |
| | | { |
| | | title:'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'ç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryCode' |
| | | }, |
| | | { |
| | | title: 'åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryName' |
| | | }, |
| | | { |
| | | title: 'å°å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'factoryAddress' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdTime' |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedTime' |
| | | }, |
| | | { |
| | | title: 'å建è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdUserName' |
| | | }, |
| | | { |
| | | title: 'ä¿®æ¹è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedUserName' |
| | | } |
| | | ], |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return WmsFactoryPage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('WmsFactory:edit') || this.hasPerm('WmsFactory:delete')) { |
| | | this.columns.push({ |
| | | title: 'æä½', |
| | | width: '150px', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' } |
| | | }) |
| | | } |
| | | const path = this.$route.path |
| | | const columnStr = window.localStorage.getItem(path) |
| | | if(columnStr) { |
| | | var _columns = JSON.parse(columnStr) |
| | | this.columns.forEach(element => { |
| | | var fObj = _columns.find((item, index) => { |
| | | return item.dataIndex === element.dataIndex; |
| | | }) |
| | | if(fObj!=undefined && fObj!=null){ |
| | | element.checked=fObj.checked; |
| | | } |
| | | }); |
| | | } |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate() { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsFactoryDelete(record) { |
| | | WmsFactoryDelete(record).then(res => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsFactoryDelete (record) { |
| | | WmsFactoryDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | WmsFactoryToExcel() { |
| | | this.loading = true |
| | | let entozh = {} |
| | | const path = this.$route.path |
| | | if (window.localStorage.getItem(path)) { |
| | | JSON.parse(window.localStorage.getItem(path)).forEach(item => { |
| | | if (item.dataIndex != 'action' && item.checked) { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } else { |
| | | //ç´æ¥ç¹å¯¼åº |
| | | this.columns.forEach(item => { |
| | | if (item.dataIndex != 'action') { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } |
| | | WmsFactoryPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)) |
| | | .then(res => { |
| | | this.loading = false |
| | | //éè¦æªåæ¥æçåæ®µ |
| | | var arrDataCutout = this.columns.filter(v => v.customCutout == true) |
| | | res.data.rows.forEach(item => { |
| | | var arrKeys = Object.keys(item) |
| | | arrKeys.forEach(key => { |
| | | var strFieldDic = key + 'Data' |
| | | //æä¸¾è½¬å¼ |
| | | if (this[strFieldDic] && this[strFieldDic].length > 0) { |
| | | let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])) |
| | | if (arrFieldDic.length > 0) { |
| | | item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼' |
| | | } |
| | | } |
| | | // æ¥ææªå |
| | | if (arrDataCutout.length > 0) { |
| | | arrDataCutout.forEach(itemIn => { |
| | | if (key == itemIn.dataIndex && item[key]) { |
| | | item[key] = item[key].split(' ')[0] |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | exportExcel(res.data.rows, entozh, 'xlsx', `${this.$route.meta.title}`) |
| | | }) |
| | | .catch(err => { |
| | | this.loading = false |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | }, |
| | | |
| | | toggleAdvanced() { |
| | | this.advanced = !this.advanced |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | }, |
| | | onChangecreatedTime(date, dateString) { |
| | | this.queryParam.createdTime = dateString |
| | | }, |
| | | onChangeupdatedTime(date, dateString) { |
| | | this.queryParam.updatedTime = dateString |
| | | }, |
| | | handleOk() { |
| | | this.$refs.table.refresh() |
| | | }, |
| | | onSelectChange(selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | WmsFactoryToExcel() { |
| | | this.loading = true |
| | | let entozh = {}; |
| | | const path = this.$route.path; |
| | | if (window.localStorage.getItem(path)) { |
| | | JSON.parse(window.localStorage.getItem(path)).forEach(item => { |
| | | if (item.dataIndex != 'action' && item.checked) { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } else { //ç´æ¥ç¹å¯¼åº |
| | | this.columns.forEach(item => { |
| | | if (item.dataIndex != 'action') { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } |
| | | WmsFactoryPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { |
| | | this.loading = false; |
| | | //éè¦æªåæ¥æçåæ®µ |
| | | var arrDataCutout = this.columns.filter(v => v.customCutout == true); |
| | | res.data.rows.forEach(item => { |
| | | var arrKeys = Object.keys(item); |
| | | arrKeys.forEach(key => { |
| | | var strFieldDic = key + 'Data'; |
| | | //æä¸¾è½¬å¼ |
| | | if (this[strFieldDic] && this[strFieldDic].length > 0) { |
| | | let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); |
| | | if (arrFieldDic.length > 0) { |
| | | item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼'; |
| | | } |
| | | } |
| | | // æ¥ææªå |
| | | if (arrDataCutout.length > 0) { |
| | | arrDataCutout.forEach(itemIn => { |
| | | if (key == itemIn.dataIndex && item[key]) { |
| | | item[key] = item[key].split(" ")[0] |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) |
| | | }).catch((err) => { |
| | | this.loading = false |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | toggleAdvanced () { |
| | | this.advanced = !this.advanced |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | }, |
| | | onChangecreatedTime(date, dateString) { |
| | | this.queryParam.createdTime = dateString |
| | | }, |
| | | onChangeupdatedTime(date, dateString) { |
| | | this.queryParam.updatedTime = dateString |
| | | }, |
| | | handleOk () { |
| | | this.$refs.table.refresh() |
| | | }, |
| | | onSelectChange (selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢åºä½ä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="åºä½ç¼ç " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½ç¼ç " v-decorator="['placeCode', {rules: [{required: true, message: '请è¾å
¥åºä½ç¼ç ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½åç§°" v-decorator="['placeName', {rules: [{required: true, message: '请è¾å
¥åºä½åç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½å«å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½å«å" v-decorator="['placeAlias']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½ç±»å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥åºä½ç±»å" style="width: 100%" v-decorator="['placeType', {rules: [{required: true, message: '请è¾å
¥åºä½ç±»åï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½ç±»ååç§°" v-decorator="['placeTypeName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åæ¾åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åæ¾åä½" v-decorator="['stockUnit']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½å±æ§" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥åºä½å±æ§" style="width: 100%" v-decorator="['placeStatus']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦å åæºåºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isSrmPlace', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="å åæºåºä½å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å åæºåºä½å·" v-decorator="['srmPlaceNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦RGVåºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isRgvPlace', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="RGVåºä½å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥RGVåºä½å·" v-decorator="['rgvPlaceNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦AGVåºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isAgvPlace', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="AGVåºä½å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥AGVåºä½å·" v-decorator="['agvPlaceNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦è¾é线åºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isTransPlace', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="è¾é线åºä½å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥è¾é线åºä½å·" v-decorator="['transPlaceNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isActivateWCS', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåç¯å¢" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåç¯å¢" v-decorator="['environment']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºç¼å·" v-decorator="['areaCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æå¨åºåº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æå¨åºåº" v-decorator="['areaId']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºåç§°" v-decorator="['areaName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ£éªç " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æ£éªç " v-decorator="['verificationCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥æ" style="width: 100%" v-decorator="['rowNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥å" style="width: 100%" v-decorator="['columnNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å±" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥å±" style="width: 100%" v-decorator="['layerNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å··é" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥å··é" style="width: 100%" v-decorator="['laneNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½Xåæ " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½Xåæ " v-decorator="['xzb']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½Yåæ " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½Yåæ " v-decorator="['yzb']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½Zåæ " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½Zåæ " v-decorator="['zzb']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½é¿åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½é¿åº¦" v-decorator="['length']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½å®½åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½å®½åº¦" v-decorator="['width']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½é«åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½é«åº¦" v-decorator="['height']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æå¤§æ¿é" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æå¤§æ¿é" v-decorator="['maxWeight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å
¥åºé¡ºåº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥å
¥åºé¡ºåº" style="width: 100%" v-decorator="['inSequence']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºé¡ºåº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥åºåºé¡ºåº" style="width: 100%" v-decorator="['outSequence']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦èæ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isVirtually', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsPlaceAdd |
| | | } from '@/api/modular/main/WmsBase/WmsPlaceManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | add (record) { |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | |
| | | }); |
| | | }, |
| | | /** |
| | | * æäº¤è¡¨å |
| | | */ |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | } |
| | | } |
| | | WmsPlaceAdd(values).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('æ°å¢æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', values) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('æ°å¢å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | } else { |
| | | this.confirmLoading = false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾åºä½ä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="åºä½ç¼ç " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½ç¼ç " v-decorator="['placeCode', {rules: [{required: true, message: '请è¾å
¥åºä½ç¼ç ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½åç§°" v-decorator="['placeName', {rules: [{required: true, message: '请è¾å
¥åºä½åç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½å«å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½å«å" v-decorator="['placeAlias']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½ç±»å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥åºä½ç±»å" style="width: 100%" v-decorator="['placeType', {rules: [{required: true, message: '请è¾å
¥åºä½ç±»åï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½ç±»ååç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½ç±»ååç§°" v-decorator="['placeTypeName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åæ¾åä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åæ¾åä½" v-decorator="['stockUnit']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½å±æ§" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥åºä½å±æ§" style="width: 100%" v-decorator="['placeStatus']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦å åæºåºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isSrmPlace', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="å åæºåºä½å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å åæºåºä½å·" v-decorator="['srmPlaceNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦RGVåºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isRgvPlace', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="RGVåºä½å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥RGVåºä½å·" v-decorator="['rgvPlaceNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦AGVåºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isAgvPlace', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="AGVåºä½å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥AGVåºä½å·" v-decorator="['agvPlaceNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦è¾é线åºä½" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isTransPlace', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="è¾é线åºä½å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥è¾é线åºä½å·" v-decorator="['transPlaceNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isActivateWCS', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåç¯å¢" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåç¯å¢" v-decorator="['environment']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºç¼å·" v-decorator="['areaCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æå¨åºåº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æå¨åºåº" v-decorator="['areaId']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºåç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºåºåç§°" v-decorator="['areaName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ£éªç " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æ£éªç " v-decorator="['verificationCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥æ" style="width: 100%" v-decorator="['rowNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥å" style="width: 100%" v-decorator="['columnNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å±" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥å±" style="width: 100%" v-decorator="['layerNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å··é" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥å··é" style="width: 100%" v-decorator="['laneNo']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½Xåæ " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½Xåæ " v-decorator="['xzb']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½Yåæ " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½Yåæ " v-decorator="['yzb']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½Zåæ " :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½Zåæ " v-decorator="['zzb']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½é¿åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½é¿åº¦" v-decorator="['length']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½å®½åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½å®½åº¦" v-decorator="['width']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºä½é«åº¦" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åºä½é«åº¦" v-decorator="['height']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æå¤§æ¿é" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æå¤§æ¿é" v-decorator="['maxWeight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å
¥åºé¡ºåº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥å
¥åºé¡ºåº" style="width: 100%" v-decorator="['inSequence']" /> |
| | | </a-form-item> |
| | | <a-form-item label="åºåºé¡ºåº" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input-number placeholder="请è¾å
¥åºåºé¡ºåº" style="width: 100%" v-decorator="['outSequence']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦èæ" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isVirtually', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsPlaceEdit |
| | | } from '@/api/modular/main/WmsBase/WmsPlaceManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | Id: 0, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | record: {}, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | edit (record) { |
| | | this.visible = true; |
| | | this.Id = record.id; |
| | | this.$nextTick(() => { |
| | | }); |
| | | //深度æ·è´ ç§»é¤VUEççå¬ï¼é²æ¢INDEX页é¢å¼åå¨ |
| | | this.record = JSON.parse(JSON.stringify(record)) |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue( |
| | | { |
| | | id: record.id, |
| | | placeCode: record.placeCode, |
| | | placeName: record.placeName, |
| | | placeAlias: record.placeAlias, |
| | | placeType: record.placeType, |
| | | placeTypeName: record.placeTypeName, |
| | | stockUnit: record.stockUnit, |
| | | placeStatus: record.placeStatus, |
| | | isSrmPlace: record.isSrmPlace, |
| | | srmPlaceNo: record.srmPlaceNo, |
| | | isRgvPlace: record.isRgvPlace, |
| | | rgvPlaceNo: record.rgvPlaceNo, |
| | | isAgvPlace: record.isAgvPlace, |
| | | agvPlaceNo: record.agvPlaceNo, |
| | | isTransPlace: record.isTransPlace, |
| | | transPlaceNo: record.transPlaceNo, |
| | | isActivateWCS: record.isActivateWCS, |
| | | environment: record.environment, |
| | | areaCode: record.areaCode, |
| | | areaId: record.areaId, |
| | | areaName: record.areaName, |
| | | verificationCode: record.verificationCode, |
| | | rowNo: record.rowNo, |
| | | columnNo: record.columnNo, |
| | | layerNo: record.layerNo, |
| | | laneNo: record.laneNo, |
| | | xzb: record.xzb, |
| | | yzb: record.yzb, |
| | | zzb: record.zzb, |
| | | length: record.length, |
| | | width: record.width, |
| | | height: record.height, |
| | | maxWeight: record.maxWeight, |
| | | inSequence: record.inSequence, |
| | | outSequence: record.outSequence, |
| | | isVirtually: record.isVirtually, |
| | | isDisabled: record.isDisabled |
| | | } |
| | | ) |
| | | }) |
| | | }, |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (values[key] == null) continue |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | this.record[key] = values[key] |
| | | } else { |
| | | this.record[key] = values[key] |
| | | } |
| | | } |
| | | WmsPlaceEdit(this.record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('ç¼è¾æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', this.record) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('ç¼è¾å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | }else{ |
| | | this.confirmLoading = false |
| | | } |
| | | }); |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :width="850" |
| | | :destroyOnClose="true" |
| | | :visible="visible" |
| | | :forceRender="true" |
| | | title="æ¹é导å
¥" |
| | | cancelText="åæ¶ä¸ä¼ " |
| | | okText="å¼å§ä¸ä¼ " |
| | | @cancel="handleCancel" |
| | | @ok="handleSubmit"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-row :span="24"> |
| | | <span>è¯·éæ©è¦å¯¼å
¥çæ°æ®æä»¶ï¼Excelæ ¼å¼ï¼</span> |
| | | </a-row> |
| | | <p></p> |
| | | <a-row> |
| | | <a-col :span="16"> |
| | | <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload"> |
| | | <a-icon style="font-size: 40px;" type="cloud-upload" /> |
| | | </a-upload-dragger> |
| | | </a-col> |
| | | <!--<a-col :span="8"> |
| | | <span>导å
¥æ¨¡å¼ï¼</span> |
| | | <a-select |
| | | style="width: 130px" |
| | | placeholder="è¯·éæ©å¯¼å
¥æ¨¡å¼" |
| | | v-model="importExcelType"> |
| | | <a-select-option |
| | | v-for="(item,index) in importExcelTypeData" |
| | | :key="index" |
| | | :value="item.code">{{ item.name }} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-col>--> |
| | | </a-row> |
| | | <a-row :span="24"> |
| | | <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed"> |
| | | ç¹å»æ¥çæä»¶ä¸ä¼ è¦æ± |
| | | </a-button>--> |
| | | <span>ã</span> |
| | | <a-button style="width: 90px;text-align: left;" @click="wmsPlaceDownloadExcelTemplate" type="link">ä¸è½½å¯¼å
¥æ¨¡æ¿</a-button>ï¼å¡«åå¹¶ä¸ä¼ |
| | | <span>ã</span> |
| | | <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed"> |
| | | æ¶èµ· |
| | | </a-button> |
| | | </a-row> |
| | | <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24"> |
| | | <a-breadcrumb> |
| | | <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">æä»¶ä¸ä¼ è¦æ±</a-breadcrumb-item> |
| | | </a-breadcrumb> |
| | | </a-row> |
| | | <pre v-show="detailed"> |
| | | <div v-html="demandText"></div> |
| | | </pre> |
| | | <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table> |
| | | <pre v-show="detailed"> |
| | | <div v-html="columnText"></div> |
| | | </pre> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util' |
| | | |
| | | import { WmsPlaceImportExcel, WmsPlaceDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsPlaceManage' |
| | | import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage' |
| | | export default { |
| | | components: { |
| | | }, |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | detailed: false, |
| | | confirmLoading: false, |
| | | fileList: [], |
| | | importExcelTypeData: [], |
| | | importExcelType: '1', |
| | | uploadFile: null, |
| | | columns: [], |
| | | dataList: [], |
| | | demandText:'', |
| | | columnText: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | index() { |
| | | this.visible = true; |
| | | this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type') |
| | | this.demandText = parseDemandText("wmsPlaceDownloadExcelTemplate") |
| | | window.downloadFile = this.wmsPlaceDownloadExcelTemplate; |
| | | this.getTable(); |
| | | }, |
| | | showDemand() { |
| | | this.detailed = !this.detailed; |
| | | }, |
| | | customRequest(document) { |
| | | this.uploadFile = document |
| | | }, |
| | | getTable() { |
| | | sysExcelTemplateGetColumnList({className: "WmsPlace"}).then(res => |
| | | { |
| | | if (res.success) { |
| | | this.columns =[]; |
| | | this.dataList = [{}]; |
| | | res.data.forEach(x => { |
| | | this.columns.push({ |
| | | dataIndex: x.columnName, |
| | | key: x.columnName, |
| | | title: x.columnComment |
| | | }); |
| | | this.dataList[0][x.columnName] = x.isRequired ? "å¿
å¡«" : "éå¿
å¡«" |
| | | }); |
| | | this.columnText = parseExcelFieldText(res.data); |
| | | } |
| | | }); |
| | | }, |
| | | beforeUpload(fileInfo) { |
| | | let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']); |
| | | if (!res.success) { |
| | | this.$message.warning(res.msg) |
| | | return false |
| | | } |
| | | setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000) |
| | | }, |
| | | handleChange(fileInfo) { |
| | | if (fileInfo.file.status === 'error') { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | if (fileInfo.file.status === 'done') { |
| | | if (fileInfo.fileList.length > 1) { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | this.fileList = fileInfo.file |
| | | } |
| | | }, |
| | | handleSubmit() { |
| | | this.confirmLoading = true |
| | | const formData = new FormData() |
| | | formData.append('file', this.uploadFile.file) |
| | | WmsPlaceImportExcel(formData, {importExcelType: this.importExcelType}).then(res => { |
| | | this.$message.success('æä½æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', []) |
| | | this.handleCancel() |
| | | }).finally((res)=>{this.confirmLoading = false}) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.detailed = false |
| | | }, |
| | | wmsPlaceDownloadExcelTemplate() { |
| | | WmsPlaceDownloadExcelTemplate({version: "v2"}).then((res) => { |
| | | downloadFile(res); |
| | | }).catch((err) => { |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | ::v-deep .ant-upload.ant-upload-drag { |
| | | position: relative; |
| | | width: 140px; |
| | | height: 135px; |
| | | text-align: center; |
| | | background: #fafafa; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 2px; |
| | | cursor: pointer; |
| | | -webkit-transition: border-color 0.3s; |
| | | transition: border-color 0.3s; |
| | | } |
| | | ::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { |
| | | color: #ffc53d; |
| | | border-color: white; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div ref="boxOutWrap" class="boxOutWrap"> |
| | | <div ref="boxForm" class="boxForm"> |
| | | <a-card :bordered="false" :bodyStyle="tstyle"> |
| | | |
| | | <div class="table-page-search-wrapper" v-if="hasPerm('WmsPlace:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½ç¼ç "> |
| | | <a-input v-model="queryParam.placeCode" allow-clear placeholder="请è¾å
¥åºä½ç¼ç "/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½åç§°"> |
| | | <a-input v-model="queryParam.placeName" allow-clear placeholder="请è¾å
¥åºä½åç§°"/> |
| | | </a-form-item> |
| | | </a-col><template v-if="advanced"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½å«å"> |
| | | <a-input v-model="queryParam.placeAlias" allow-clear placeholder="请è¾å
¥åºä½å«å"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½ç±»å"> |
| | | <a-input-number v-model="queryParam.placeType" style="width: 100%" allow-clear placeholder="请è¾å
¥åºä½ç±»å"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½ç±»ååç§°"> |
| | | <a-input v-model="queryParam.placeTypeName" allow-clear placeholder="请è¾å
¥åºä½ç±»ååç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åæ¾åä½"> |
| | | <a-input v-model="queryParam.stockUnit" allow-clear placeholder="请è¾å
¥åæ¾åä½"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½å±æ§"> |
| | | <a-input-number v-model="queryParam.placeStatus" style="width: 100%" allow-clear placeholder="请è¾å
¥åºä½å±æ§"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦å åæºåºä½"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isSrmPlace" placeholder="è¯·éæ©æ¯å¦å åæºåºä½"> |
| | | <a-select-option v-for="(item,index) in isSrmPlaceData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å åæºåºä½å·"> |
| | | <a-input v-model="queryParam.srmPlaceNo" allow-clear placeholder="请è¾å
¥å åæºåºä½å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦RGVåºä½"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isRgvPlace" placeholder="è¯·éæ©æ¯å¦RGVåºä½"> |
| | | <a-select-option v-for="(item,index) in isRgvPlaceData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="RGVåºä½å·"> |
| | | <a-input v-model="queryParam.rgvPlaceNo" allow-clear placeholder="请è¾å
¥RGVåºä½å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦AGVåºä½"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isAgvPlace" placeholder="è¯·éæ©æ¯å¦AGVåºä½"> |
| | | <a-select-option v-for="(item,index) in isAgvPlaceData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="AGVåºä½å·"> |
| | | <a-input v-model="queryParam.agvPlaceNo" allow-clear placeholder="请è¾å
¥AGVåºä½å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦è¾é线åºä½"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isTransPlace" placeholder="è¯·éæ©æ¯å¦è¾é线åºä½"> |
| | | <a-select-option v-for="(item,index) in isTransPlaceData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="è¾é线åºä½å·"> |
| | | <a-input v-model="queryParam.transPlaceNo" allow-clear placeholder="请è¾å
¥è¾é线åºä½å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isActivateWCS" placeholder="è¯·éæ©æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦"> |
| | | <a-select-option v-for="(item,index) in isActivateWCSData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºåç¯å¢"> |
| | | <a-input v-model="queryParam.environment" allow-clear placeholder="请è¾å
¥åºåç¯å¢"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºåºç¼å·"> |
| | | <a-input v-model="queryParam.areaCode" allow-clear placeholder="请è¾å
¥åºåºç¼å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æå¨åºåº"> |
| | | <a-input v-model="queryParam.areaId" allow-clear placeholder="请è¾å
¥æå¨åºåº"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºåºåç§°"> |
| | | <a-input v-model="queryParam.areaName" allow-clear placeholder="请è¾å
¥åºåºåç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ£éªç "> |
| | | <a-input v-model="queryParam.verificationCode" allow-clear placeholder="请è¾å
¥æ£éªç "/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ"> |
| | | <a-input-number v-model="queryParam.rowNo" style="width: 100%" allow-clear placeholder="请è¾å
¥æ"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="å"> |
| | | <a-input-number v-model="queryParam.columnNo" style="width: 100%" allow-clear placeholder="请è¾å
¥å"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="å±"> |
| | | <a-input-number v-model="queryParam.layerNo" style="width: 100%" allow-clear placeholder="请è¾å
¥å±"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="å··é"> |
| | | <a-input-number v-model="queryParam.laneNo" style="width: 100%" allow-clear placeholder="请è¾å
¥å··é"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½Xåæ "> |
| | | <a-input v-model="queryParam.xzb" allow-clear placeholder="请è¾å
¥åºä½Xåæ "/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½Yåæ "> |
| | | <a-input v-model="queryParam.yzb" allow-clear placeholder="请è¾å
¥åºä½Yåæ "/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½Zåæ "> |
| | | <a-input v-model="queryParam.zzb" allow-clear placeholder="请è¾å
¥åºä½Zåæ "/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½é¿åº¦"> |
| | | <a-input v-model="queryParam.length" allow-clear placeholder="请è¾å
¥åºä½é¿åº¦"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½å®½åº¦"> |
| | | <a-input v-model="queryParam.width" allow-clear placeholder="请è¾å
¥åºä½å®½åº¦"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºä½é«åº¦"> |
| | | <a-input v-model="queryParam.height" allow-clear placeholder="请è¾å
¥åºä½é«åº¦"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æå¤§æ¿é"> |
| | | <a-input v-model="queryParam.maxWeight" allow-clear placeholder="请è¾å
¥æå¤§æ¿é"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="å
¥åºé¡ºåº"> |
| | | <a-input-number v-model="queryParam.inSequence" style="width: 100%" allow-clear placeholder="请è¾å
¥å
¥åºé¡ºåº"/> |
| | | </a-form-item> |
| | | </a-col><a-col :md="8" :sm="24"> |
| | | <a-form-item label="åºåºé¡ºåº"> |
| | | <a-input-number v-model="queryParam.outSequence" style="width: 100%" allow-clear placeholder="请è¾å
¥åºåºé¡ºåº"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦èæ"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isVirtually" placeholder="è¯·éæ©æ¯å¦èæ"> |
| | | <a-select-option v-for="(item,index) in isVirtuallyData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦ç¦ç¨"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="è¯·éæ©æ¯å¦ç¦ç¨"> |
| | | <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ´æ°æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建è
åç§°"> |
| | | <a-input v-model="queryParam.createdUserName" allow-clear placeholder="请è¾å
¥å建è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä¿®æ¹è
åç§°"> |
| | | <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å
¥ä¿®æ¹è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> </template> |
| | | |
| | | <a-col :md="8" :sm="24" > |
| | | <span class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="$refs.table.refresh(true)" >æ¥è¯¢</a-button> |
| | | <a-button style="margin-left: 8px" @click="() => queryParam = {}">éç½®</a-button> |
| | | <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="advanced ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | <a-card :bordered="false"> |
| | | <s-table |
| | | ref="table" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | :alert="true" |
| | | @changeTablePage="pageInfo = $event" |
| | | :scroll="{x: true,y:tableHeight}" |
| | | :rowKey="(record) => record.id" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> |
| | | <template class="table-operator" slot="operator" v-if="hasPerm('WmsPlace:add')" > |
| | | <div ref="actionBar" class="actionBar"> |
| | | <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> |
| | | 导å
¥ |
| | | </a-button> |
| | | <a-button type="info" v-if="hasPerm('WmsPlace:exportExcel')" icon="download" @click="WmsPlaceToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsPlace:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢åºä½ä¿¡æ¯</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="isSrmPlacescopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isRgvPlacescopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isAgvPlacescopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isTransPlacescopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isActivateWCSscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isVirtuallyscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a v-if="hasPerm('WmsPlace:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('WmsPlace:edit') & hasPerm('WmsPlace:delete')"/> |
| | | <a-popconfirm v-if="hasPerm('WmsPlace:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsPlaceDelete(record)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </s-table> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <edit-form ref="editForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsPlacePage, WmsPlaceDelete, WmsPlaceToExcel } from '@/api/modular/main/WmsBase/WmsPlaceManage' |
| | | //èªå®ä¹tableé«åº¦ |
| | | import setTableHtMixin from '@/mixins/handleTableHt.js' |
| | | import addForm from './addForm.vue' |
| | | import { exportExcel } from '@/utils/exportToExcel' |
| | | import { downloadFile } from '@/utils/util' |
| | | import editForm from './editForm.vue' |
| | | import excelForm from './excelForm.vue' |
| | | export default { |
| | | mixins: [setTableHtMixin], |
| | | components: { |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | }, |
| | | data () { |
| | | return { |
| | | advanced: false, // é«çº§æç´¢ å±å¼/å
³é |
| | | queryParam: {}, |
| | | pageInfo: { |
| | | current: 1, |
| | | pageSize: 10 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title:'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'åºä½ç¼ç ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'placeCode' |
| | | }, |
| | | { |
| | | title: 'åºä½åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'placeName' |
| | | }, |
| | | { |
| | | title: 'åºä½å«å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'placeAlias' |
| | | }, |
| | | { |
| | | title: 'åºä½ç±»å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'placeType' |
| | | }, |
| | | { |
| | | title: 'åºä½ç±»ååç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'placeTypeName' |
| | | }, |
| | | { |
| | | title: 'åæ¾åä½', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'stockUnit' |
| | | }, |
| | | { |
| | | title: 'åºä½å±æ§', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'placeStatus' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦å åæºåºä½', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isSrmPlace', |
| | | scopedSlots: { customRender: 'isSrmPlacescopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å åæºåºä½å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'srmPlaceNo' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦RGVåºä½', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isRgvPlace', |
| | | scopedSlots: { customRender: 'isRgvPlacescopedSlots' } |
| | | }, |
| | | { |
| | | title: 'RGVåºä½å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'rgvPlaceNo' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦AGVåºä½', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isAgvPlace', |
| | | scopedSlots: { customRender: 'isAgvPlacescopedSlots' } |
| | | }, |
| | | { |
| | | title: 'AGVåºä½å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'agvPlaceNo' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦è¾é线åºä½', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isTransPlace', |
| | | scopedSlots: { customRender: 'isTransPlacescopedSlots' } |
| | | }, |
| | | { |
| | | title: 'è¾é线åºä½å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'transPlaceNo' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isActivateWCS', |
| | | scopedSlots: { customRender: 'isActivateWCSscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'åºåç¯å¢', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'environment' |
| | | }, |
| | | { |
| | | title: 'åºåºç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'areaCode' |
| | | }, |
| | | { |
| | | title: 'æå¨åºåº', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'areaId' |
| | | }, |
| | | { |
| | | title: 'åºåºåç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'areaName' |
| | | }, |
| | | { |
| | | title: 'æ£éªç ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'verificationCode' |
| | | }, |
| | | { |
| | | title: 'æ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'rowNo' |
| | | }, |
| | | { |
| | | title: 'å', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'columnNo' |
| | | }, |
| | | { |
| | | title: 'å±', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'layerNo' |
| | | }, |
| | | { |
| | | title: 'å··é', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'laneNo' |
| | | }, |
| | | { |
| | | title: 'åºä½Xåæ ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'xzb' |
| | | }, |
| | | { |
| | | title: 'åºä½Yåæ ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'yzb' |
| | | }, |
| | | { |
| | | title: 'åºä½Zåæ ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'zzb' |
| | | }, |
| | | { |
| | | title: 'åºä½é¿åº¦', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'length' |
| | | }, |
| | | { |
| | | title: 'åºä½å®½åº¦', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'width' |
| | | }, |
| | | { |
| | | title: 'åºä½é«åº¦', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'height' |
| | | }, |
| | | { |
| | | title: 'æå¤§æ¿é', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'maxWeight' |
| | | }, |
| | | { |
| | | title: 'å
¥åºé¡ºåº', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'inSequence' |
| | | }, |
| | | { |
| | | title: 'åºåºé¡ºåº', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '80px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'outSequence' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦èæ', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isVirtually', |
| | | scopedSlots: { customRender: 'isVirtuallyscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdTime' |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedTime' |
| | | }, |
| | | { |
| | | title: 'å建è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdUserName' |
| | | }, |
| | | { |
| | | title: 'ä¿®æ¹è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedUserName' |
| | | } |
| | | ], |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return WmsPlacePage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('WmsPlace:edit') || this.hasPerm('WmsPlace:delete')) { |
| | | this.columns.push({ |
| | | title: 'æä½', |
| | | width: '150px', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' } |
| | | }) |
| | | } |
| | | const path = this.$route.path |
| | | const columnStr = window.localStorage.getItem(path) |
| | | if(columnStr) { |
| | | var _columns = JSON.parse(columnStr) |
| | | this.columns.forEach(element => { |
| | | var fObj = _columns.find((item, index) => { |
| | | return item.dataIndex === element.dataIndex; |
| | | }) |
| | | if(fObj!=undefined && fObj!=null){ |
| | | element.checked=fObj.checked; |
| | | } |
| | | }); |
| | | } |
| | | const isSrmPlaceOption = this.$options |
| | | this.isSrmPlaceData = isSrmPlaceOption.filters['dictData']('yes_true_false') |
| | | const isRgvPlaceOption = this.$options |
| | | this.isRgvPlaceData = isRgvPlaceOption.filters['dictData']('yes_true_false') |
| | | const isAgvPlaceOption = this.$options |
| | | this.isAgvPlaceData = isAgvPlaceOption.filters['dictData']('yes_true_false') |
| | | const isTransPlaceOption = this.$options |
| | | this.isTransPlaceData = isTransPlaceOption.filters['dictData']('yes_true_false') |
| | | const isActivateWCSOption = this.$options |
| | | this.isActivateWCSData = isActivateWCSOption.filters['dictData']('yes_true_false') |
| | | const isVirtuallyOption = this.$options |
| | | this.isVirtuallyData = isVirtuallyOption.filters['dictData']('yes_true_false') |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsPlaceDelete (record) { |
| | | WmsPlaceDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | WmsPlaceToExcel() { |
| | | this.loading = true |
| | | let entozh = {}; |
| | | const path = this.$route.path; |
| | | if (window.localStorage.getItem(path)) { |
| | | JSON.parse(window.localStorage.getItem(path)).forEach(item => { |
| | | if (item.dataIndex != 'action' && item.checked) { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } else { //ç´æ¥ç¹å¯¼åº |
| | | this.columns.forEach(item => { |
| | | if (item.dataIndex != 'action') { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } |
| | | WmsPlacePage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { |
| | | this.loading = false; |
| | | //éè¦æªåæ¥æçåæ®µ |
| | | var arrDataCutout = this.columns.filter(v => v.customCutout == true); |
| | | res.data.rows.forEach(item => { |
| | | var arrKeys = Object.keys(item); |
| | | arrKeys.forEach(key => { |
| | | var strFieldDic = key + 'Data'; |
| | | //æä¸¾è½¬å¼ |
| | | if (this[strFieldDic] && this[strFieldDic].length > 0) { |
| | | let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); |
| | | if (arrFieldDic.length > 0) { |
| | | item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼'; |
| | | } |
| | | } |
| | | // æ¥ææªå |
| | | if (arrDataCutout.length > 0) { |
| | | arrDataCutout.forEach(itemIn => { |
| | | if (key == itemIn.dataIndex && item[key]) { |
| | | item[key] = item[key].split(" ")[0] |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) |
| | | }).catch((err) => { |
| | | this.loading = false |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | toggleAdvanced () { |
| | | this.advanced = !this.advanced |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | }, |
| | | onChangecreatedTime(date, dateString) { |
| | | this.queryParam.createdTime = dateString |
| | | }, |
| | | onChangeupdatedTime(date, dateString) { |
| | | this.queryParam.updatedTime = dateString |
| | | }, |
| | | handleOk () { |
| | | this.$refs.table.refresh() |
| | | }, |
| | | onSelectChange (selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢åä½ä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç¼å·" v-decorator="['unitCode', {rules: [{required: true, message: '请è¾å
¥ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åç§°" v-decorator="['unitName', {rules: [{required: true, message: '请è¾å
¥åç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æè¿°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æè¿°" v-decorator="['unitDesc']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsUnitAdd |
| | | } from '@/api/modular/main/WmsBase/WmsUnitManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | add (record) { |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | |
| | | }); |
| | | }, |
| | | /** |
| | | * æäº¤è¡¨å |
| | | */ |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | } |
| | | } |
| | | WmsUnitAdd(values).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('æ°å¢æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', values) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('æ°å¢å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | } else { |
| | | this.confirmLoading = false |
| | | } |
| | | }) |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾åä½ä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form :form="form"> |
| | | <a-form-item label="ç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥ç¼å·" v-decorator="['unitCode', {rules: [{required: true, message: '请è¾å
¥ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åç§°" v-decorator="['unitName', {rules: [{required: true, message: '请è¾å
¥åç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="æè¿°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥æè¿°" v-decorator="['unitDesc']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item> |
| | | </a-form> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { |
| | | WmsUnitEdit |
| | | } from '@/api/modular/main/WmsBase/WmsUnitManage' |
| | | export default { |
| | | data () { |
| | | return { |
| | | Id: 0, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 } |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 15 } |
| | | }, |
| | | record: {}, |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | } |
| | | }, |
| | | methods: { |
| | | moment, |
| | | // åå§åæ¹æ³ |
| | | edit (record) { |
| | | this.visible = true; |
| | | this.Id = record.id; |
| | | this.$nextTick(() => { |
| | | }); |
| | | //深度æ·è´ ç§»é¤VUEççå¬ï¼é²æ¢INDEX页é¢å¼åå¨ |
| | | this.record = JSON.parse(JSON.stringify(record)) |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue( |
| | | { |
| | | id: record.id, |
| | | unitCode: record.unitCode, |
| | | unitName: record.unitName, |
| | | unitDesc: record.unitDesc, |
| | | isDisabled: record.isDisabled |
| | | } |
| | | ) |
| | | }) |
| | | }, |
| | | handleSubmit () { |
| | | const { form: { validateFields } } = this |
| | | this.confirmLoading = true |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | for (const key in values) { |
| | | if (values[key] == null) continue |
| | | if (typeof (values[key]) === 'object') { |
| | | values[key] = JSON.stringify(values[key]) |
| | | this.record[key] = values[key] |
| | | } else { |
| | | this.record[key] = values[key] |
| | | } |
| | | } |
| | | WmsUnitEdit(this.record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('ç¼è¾æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', this.record) |
| | | this.handleCancel() |
| | | } else { |
| | | this.$message.error('ç¼è¾å¤±è´¥ï¼' + JSON.stringify(res.message)) |
| | | } |
| | | }).finally((res) => { |
| | | this.confirmLoading = false |
| | | }) |
| | | }else{ |
| | | this.confirmLoading = false |
| | | } |
| | | }); |
| | | }, |
| | | handleCancel () { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal |
| | | :width="850" |
| | | :destroyOnClose="true" |
| | | :visible="visible" |
| | | :forceRender="true" |
| | | title="æ¹é导å
¥" |
| | | cancelText="åæ¶ä¸ä¼ " |
| | | okText="å¼å§ä¸ä¼ " |
| | | @cancel="handleCancel" |
| | | @ok="handleSubmit"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-row :span="24"> |
| | | <span>è¯·éæ©è¦å¯¼å
¥çæ°æ®æä»¶ï¼Excelæ ¼å¼ï¼</span> |
| | | </a-row> |
| | | <p></p> |
| | | <a-row> |
| | | <a-col :span="16"> |
| | | <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload"> |
| | | <a-icon style="font-size: 40px;" type="cloud-upload" /> |
| | | </a-upload-dragger> |
| | | </a-col> |
| | | <!--<a-col :span="8"> |
| | | <span>导å
¥æ¨¡å¼ï¼</span> |
| | | <a-select |
| | | style="width: 130px" |
| | | placeholder="è¯·éæ©å¯¼å
¥æ¨¡å¼" |
| | | v-model="importExcelType"> |
| | | <a-select-option |
| | | v-for="(item,index) in importExcelTypeData" |
| | | :key="index" |
| | | :value="item.code">{{ item.name }} |
| | | </a-select-option> |
| | | </a-select> |
| | | </a-col>--> |
| | | </a-row> |
| | | <a-row :span="24"> |
| | | <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed"> |
| | | ç¹å»æ¥çæä»¶ä¸ä¼ è¦æ± |
| | | </a-button>--> |
| | | <span>ã</span> |
| | | <a-button style="width: 90px;text-align: left;" @click="wmsUnitDownloadExcelTemplate" type="link">ä¸è½½å¯¼å
¥æ¨¡æ¿</a-button>ï¼å¡«åå¹¶ä¸ä¼ |
| | | <span>ã</span> |
| | | <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed"> |
| | | æ¶èµ· |
| | | </a-button> |
| | | </a-row> |
| | | <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24"> |
| | | <a-breadcrumb> |
| | | <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">æä»¶ä¸ä¼ è¦æ±</a-breadcrumb-item> |
| | | </a-breadcrumb> |
| | | </a-row> |
| | | <pre v-show="detailed"> |
| | | <div v-html="demandText"></div> |
| | | </pre> |
| | | <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table> |
| | | <pre v-show="detailed"> |
| | | <div v-html="columnText"></div> |
| | | </pre> |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util' |
| | | |
| | | import { WmsUnitImportExcel, WmsUnitDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsUnitManage' |
| | | import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage' |
| | | export default { |
| | | components: { |
| | | }, |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | detailed: false, |
| | | confirmLoading: false, |
| | | fileList: [], |
| | | importExcelTypeData: [], |
| | | importExcelType: '1', |
| | | uploadFile: null, |
| | | columns: [], |
| | | dataList: [], |
| | | demandText:'', |
| | | columnText: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | index() { |
| | | this.visible = true; |
| | | this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type') |
| | | this.demandText = parseDemandText("wmsUnitDownloadExcelTemplate") |
| | | window.downloadFile = this.wmsUnitDownloadExcelTemplate; |
| | | this.getTable(); |
| | | }, |
| | | showDemand() { |
| | | this.detailed = !this.detailed; |
| | | }, |
| | | customRequest(document) { |
| | | this.uploadFile = document |
| | | }, |
| | | getTable() { |
| | | sysExcelTemplateGetColumnList({className: "WmsUnit"}).then(res => |
| | | { |
| | | if (res.success) { |
| | | this.columns =[]; |
| | | this.dataList = [{}]; |
| | | res.data.forEach(x => { |
| | | this.columns.push({ |
| | | dataIndex: x.columnName, |
| | | key: x.columnName, |
| | | title: x.columnComment |
| | | }); |
| | | this.dataList[0][x.columnName] = x.isRequired ? "å¿
å¡«" : "éå¿
å¡«" |
| | | }); |
| | | this.columnText = parseExcelFieldText(res.data); |
| | | } |
| | | }); |
| | | }, |
| | | beforeUpload(fileInfo) { |
| | | let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']); |
| | | if (!res.success) { |
| | | this.$message.warning(res.msg) |
| | | return false |
| | | } |
| | | setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000) |
| | | }, |
| | | handleChange(fileInfo) { |
| | | if (fileInfo.file.status === 'error') { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | if (fileInfo.file.status === 'done') { |
| | | if (fileInfo.fileList.length > 1) { |
| | | fileInfo.fileList.splice(0, 1) |
| | | } |
| | | this.fileList = fileInfo.file |
| | | } |
| | | }, |
| | | handleSubmit() { |
| | | this.confirmLoading = true |
| | | const formData = new FormData() |
| | | formData.append('file', this.uploadFile.file) |
| | | WmsUnitImportExcel(formData, {importExcelType: this.importExcelType}).then(res => { |
| | | this.$message.success('æä½æå') |
| | | this.confirmLoading = false |
| | | this.$emit('ok', []) |
| | | this.handleCancel() |
| | | }).finally((res)=>{this.confirmLoading = false}) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.detailed = false |
| | | }, |
| | | wmsUnitDownloadExcelTemplate() { |
| | | WmsUnitDownloadExcelTemplate({version: "v2"}).then((res) => { |
| | | downloadFile(res); |
| | | }).catch((err) => { |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | ::v-deep .ant-upload.ant-upload-drag { |
| | | position: relative; |
| | | width: 140px; |
| | | height: 135px; |
| | | text-align: center; |
| | | background: #fafafa; |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 2px; |
| | | cursor: pointer; |
| | | -webkit-transition: border-color 0.3s; |
| | | transition: border-color 0.3s; |
| | | } |
| | | ::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { |
| | | color: #ffc53d; |
| | | border-color: white; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div ref="boxOutWrap" class="boxOutWrap"> |
| | | <div ref="boxForm" class="boxForm"> |
| | | <a-card :bordered="false" :bodyStyle="tstyle"> |
| | | |
| | | <div class="table-page-search-wrapper" v-if="hasPerm('WmsUnit:page')"> |
| | | <a-form layout="inline"> |
| | | <a-row :gutter="48"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ç¼å·"> |
| | | <a-input v-model="queryParam.unitCode" allow-clear placeholder="请è¾å
¥ç¼å·"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="åç§°"> |
| | | <a-input v-model="queryParam.unitName" allow-clear placeholder="请è¾å
¥åç§°"/> |
| | | </a-form-item> |
| | | </a-col><template v-if="advanced"> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æè¿°"> |
| | | <a-input v-model="queryParam.unitDesc" allow-clear placeholder="请è¾å
¥æè¿°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ¯å¦ç¦ç¨"> |
| | | <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="è¯·éæ©æ¯å¦ç¦ç¨"> |
| | | <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | <!--å¹´ææ¥æ¶åç§--> |
| | | <!--æ¶é´èå´--> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="æ´æ°æ¶é´"> |
| | | <a-range-picker style="width: 100%" :placeholder="['å¼å§æ¶é´', 'ç»ææ¶é´']" :show-time="{ |
| | | format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> |
| | | |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="å建è
åç§°"> |
| | | <a-input v-model="queryParam.createdUserName" allow-clear placeholder="请è¾å
¥å建è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="8" :sm="24"> |
| | | <a-form-item label="ä¿®æ¹è
åç§°"> |
| | | <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="请è¾å
¥ä¿®æ¹è
åç§°"/> |
| | | </a-form-item> |
| | | </a-col> </template> |
| | | |
| | | <a-col :md="8" :sm="24" > |
| | | <span class="table-page-search-submitButtons"> |
| | | <a-button type="primary" @click="$refs.table.refresh(true)" >æ¥è¯¢</a-button> |
| | | <a-button style="margin-left: 8px" @click="() => queryParam = {}">éç½®</a-button> |
| | | <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? 'æ¶èµ·' : 'å±å¼' }} |
| | | <a-icon :type="advanced ? 'up' : 'down'"/> |
| | | </a> |
| | | </span> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | <a-card :bordered="false"> |
| | | <s-table |
| | | ref="table" |
| | | :columns="columns" |
| | | :data="loadData" |
| | | :alert="true" |
| | | @changeTablePage="pageInfo = $event" |
| | | :scroll="{x: true,y:tableHeight}" |
| | | :rowKey="(record) => record.id" |
| | | :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> |
| | | <template class="table-operator" slot="operator" v-if="hasPerm('WmsUnit:add')" > |
| | | <div ref="actionBar" class="actionBar"> |
| | | <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> |
| | | 导å
¥ |
| | | </a-button> |
| | | <a-button type="info" v-if="hasPerm('WmsUnit:exportExcel')" icon="download" @click="WmsUnitToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsUnit:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢åä½ä¿¡æ¯</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | | <div v-if="text===true "> |
| | | <a-tag color="green">æ¯</a-tag> |
| | | </div> |
| | | <div v-else-if="text==false"> |
| | | <a-tag color="volcano">å¦</a-tag> |
| | | </div> |
| | | <div v-else=""></div> |
| | | </span> |
| | | <span slot="action" slot-scope="text, record"> |
| | | |
| | | <a v-if="hasPerm('WmsUnit:edit')" @click="$refs.editForm.edit(record)">ç¼è¾</a> |
| | | <a-divider type="vertical" v-if="hasPerm('WmsUnit:edit') & hasPerm('WmsUnit:delete')"/> |
| | | <a-popconfirm v-if="hasPerm('WmsUnit:delete')" placement="topRight" title="确认å é¤ï¼" @confirm="() => WmsUnitDelete(record)"> |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </span> |
| | | </s-table> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <edit-form ref="editForm" @ok="handleOk" /> |
| | | <excel-form ref="excelForm" @ok="handleOk" /> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { STable } from '@/components' |
| | | import moment from 'moment' |
| | | import { WmsUnitPage, WmsUnitDelete, WmsUnitToExcel } from '@/api/modular/main/WmsBase/WmsUnitManage' |
| | | //èªå®ä¹tableé«åº¦ |
| | | import setTableHtMixin from '@/mixins/handleTableHt.js' |
| | | import addForm from './addForm.vue' |
| | | import { exportExcel } from '@/utils/exportToExcel' |
| | | import { downloadFile } from '@/utils/util' |
| | | import editForm from './editForm.vue' |
| | | import excelForm from './excelForm.vue' |
| | | export default { |
| | | mixins: [setTableHtMixin], |
| | | components: { |
| | | STable, |
| | | addForm, |
| | | editForm, |
| | | excelForm |
| | | }, |
| | | data () { |
| | | return { |
| | | advanced: false, // é«çº§æç´¢ å±å¼/å
³é |
| | | queryParam: {}, |
| | | pageInfo: { |
| | | current: 1, |
| | | pageSize: 10 |
| | | }, |
| | | columns: [ |
| | | { |
| | | title:'åºå·', |
| | | width: '60px', |
| | | align: 'center', |
| | | customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` |
| | | }, |
| | | { |
| | | title: 'ç¼å·', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'unitCode' |
| | | }, |
| | | { |
| | | title: 'åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'unitName' |
| | | }, |
| | | { |
| | | title: 'æè¿°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'unitDesc' |
| | | }, |
| | | { |
| | | title: 'æ¯å¦ç¦ç¨', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'isDisabled', |
| | | scopedSlots: { customRender: 'isDisabledscopedSlots' } |
| | | }, |
| | | { |
| | | title: 'å建æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdTime' |
| | | }, |
| | | { |
| | | title: 'æ´æ°æ¶é´', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedTime' |
| | | }, |
| | | { |
| | | title: 'å建è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'createdUserName' |
| | | }, |
| | | { |
| | | title: 'ä¿®æ¹è
åç§°', |
| | | align: 'center', |
| | | customHeaderCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | customCell: () => { |
| | | return { |
| | | style: { |
| | | 'min-width': '120px'//æå°å宽设置 |
| | | } |
| | | } |
| | | }, |
| | | sorter: true, |
| | | dataIndex: 'updatedUserName' |
| | | } |
| | | ], |
| | | tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, |
| | | // å è½½æ°æ®æ¹æ³ å¿
须为 Promise 对象 |
| | | loadData: parameter => { |
| | | return WmsUnitPage(Object.assign(parameter, this.switchingDate())).then((res) => { |
| | | return res.data |
| | | }) |
| | | }, |
| | | selectedRowKeys: [], |
| | | selectedRows: [] |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.hasPerm('WmsUnit:edit') || this.hasPerm('WmsUnit:delete')) { |
| | | this.columns.push({ |
| | | title: 'æä½', |
| | | width: '150px', |
| | | dataIndex: 'action', |
| | | scopedSlots: { customRender: 'action' } |
| | | }) |
| | | } |
| | | const path = this.$route.path |
| | | const columnStr = window.localStorage.getItem(path) |
| | | if(columnStr) { |
| | | var _columns = JSON.parse(columnStr) |
| | | this.columns.forEach(element => { |
| | | var fObj = _columns.find((item, index) => { |
| | | return item.dataIndex === element.dataIndex; |
| | | }) |
| | | if(fObj!=undefined && fObj!=null){ |
| | | element.checked=fObj.checked; |
| | | } |
| | | }); |
| | | } |
| | | const isDisabledOption = this.$options |
| | | this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false') |
| | | |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | window.addEventListener( |
| | | 'resize', |
| | | () => { |
| | | this.handleTableHt() // çå¬å±å¹å¤§å°æ¹åè¡¨æ ¼é«åº¦ |
| | | }, |
| | | false |
| | | ) |
| | | |
| | | }, |
| | | methods: { |
| | | moment, |
| | | /** |
| | | * æ¥è¯¢åæ°ç»è£
|
| | | */ |
| | | switchingDate () { |
| | | const obj = JSON.parse(JSON.stringify(this.queryParam)) |
| | | return obj |
| | | }, |
| | | WmsUnitDelete (record) { |
| | | WmsUnitDelete(record).then((res) => { |
| | | if (res.success) { |
| | | this.$message.success('å 餿å') |
| | | this.$refs.table.refresh() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') // + res.message |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | WmsUnitToExcel() { |
| | | this.loading = true |
| | | let entozh = {}; |
| | | const path = this.$route.path; |
| | | if (window.localStorage.getItem(path)) { |
| | | JSON.parse(window.localStorage.getItem(path)).forEach(item => { |
| | | if (item.dataIndex != 'action' && item.checked) { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } else { //ç´æ¥ç¹å¯¼åº |
| | | this.columns.forEach(item => { |
| | | if (item.dataIndex != 'action') { |
| | | entozh[item.dataIndex] = item.title |
| | | } |
| | | }) |
| | | } |
| | | WmsUnitPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { |
| | | this.loading = false; |
| | | //éè¦æªåæ¥æçåæ®µ |
| | | var arrDataCutout = this.columns.filter(v => v.customCutout == true); |
| | | res.data.rows.forEach(item => { |
| | | var arrKeys = Object.keys(item); |
| | | arrKeys.forEach(key => { |
| | | var strFieldDic = key + 'Data'; |
| | | //æä¸¾è½¬å¼ |
| | | if (this[strFieldDic] && this[strFieldDic].length > 0) { |
| | | let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); |
| | | if (arrFieldDic.length > 0) { |
| | | item[key] = arrFieldDic[0]?.name || '没ææä¸¾å¼'; |
| | | } |
| | | } |
| | | // æ¥ææªå |
| | | if (arrDataCutout.length > 0) { |
| | | arrDataCutout.forEach(itemIn => { |
| | | if (key == itemIn.dataIndex && item[key]) { |
| | | item[key] = item[key].split(" ")[0] |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }) |
| | | exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) |
| | | }).catch((err) => { |
| | | this.loading = false |
| | | this.$message.error('ä¸è½½é误ï¼è·åæä»¶æµé误' + err) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | toggleAdvanced () { |
| | | this.advanced = !this.advanced |
| | | this.handleTableHt() //è®¾ç½®ä¸»è¡¨è¡¨æ ¼é«åº¦ |
| | | }, |
| | | onChangecreatedTime(date, dateString) { |
| | | this.queryParam.createdTime = dateString |
| | | }, |
| | | onChangeupdatedTime(date, dateString) { |
| | | this.queryParam.updatedTime = dateString |
| | | }, |
| | | handleOk () { |
| | | this.$refs.table.refresh() |
| | | }, |
| | | onSelectChange (selectedRowKeys, selectedRows) { |
| | | this.selectedRowKeys = selectedRowKeys |
| | | this.selectedRows = selectedRows |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <a-modal |
| | | title="æ°å¢ä»åºè¡¨" |
| | | title="æ°å¢ä»åºä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | |
| | | <a-input placeholder="请è¾å
¥ä»åºå°å" v-decorator="['address']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å·¥åç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å·¥åç¼å·" v-decorator="['factoryCode']" /> |
| | | <a-input placeholder="请è¾å
¥å·¥åç¼å·" v-decorator="['factoryCode', {rules: [{required: true, message: '请è¾å
¥å·¥åç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="é¿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é¿" v-decorator="['length']" /> |
| | |
| | | <a-input placeholder="请è¾å
¥å®ä½" v-decorator="['position']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled',{rules: [{ required: true, message: 'è¯·éæ©æ¯å¦ç¦ç¨ï¼' }], valuePropName: 'checked'}]" /> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="夿³¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å¤æ³¨" v-decorator="['remarks']" /> |
| | |
| | | <template> |
| | | <a-modal |
| | | title="ç¼è¾ä»åºè¡¨" |
| | | title="ç¼è¾ä»åºä¿¡æ¯" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | |
| | | <a-input placeholder="请è¾å
¥ä»åºå°å" v-decorator="['address']" /> |
| | | </a-form-item> |
| | | <a-form-item label="å·¥åç¼å·" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å·¥åç¼å·" v-decorator="['factoryCode']" /> |
| | | <a-input placeholder="请è¾å
¥å·¥åç¼å·" v-decorator="['factoryCode', {rules: [{required: true, message: '请è¾å
¥å·¥åç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="é¿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥é¿" v-decorator="['length']" /> |
| | |
| | | <a-input placeholder="请è¾å
¥å®ä½" v-decorator="['position']" /> |
| | | </a-form-item> |
| | | <a-form-item label="æ¯å¦ç¦ç¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled',{rules: [{ required: true, message: 'è¯·éæ©æ¯å¦ç¦ç¨ï¼' }], valuePropName: 'checked'}]" /> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="夿³¨" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å¤æ³¨" v-decorator="['remarks']" /> |
| | |
| | | <a-button type="info" v-if="hasPerm('WmsWarehouse:exportExcel')" icon="download" @click="WmsWarehouseToExcel()"> |
| | | å¯¼åº |
| | | </a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsWarehouse:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢ä»åºè¡¨</a-button> |
| | | <a-button type="primary" v-if="hasPerm('WmsWarehouse:add')" icon="plus" @click="$refs.addForm.add()">æ°å¢ä»åºä¿¡æ¯</a-button> |
| | | </div> |
| | | </template> |
| | | <span slot="isDisabledscopedSlots" slot-scope="text"> |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Admin.NET.Core; |
| | | //using System; |
| | | //using System.Collections.Generic; |
| | | //using System.Linq; |
| | | //using System.Text; |
| | | //using System.Threading.Tasks; |
| | | //using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// ç»çç©æä¿¡æ¯ |
| | | /// </summary> |
| | | public class BindEntranceOutput |
| | | { |
| | | //namespace Admin.NET.Application |
| | | //{ |
| | | // /// <summary> |
| | | // /// ç»çç©æä¿¡æ¯ |
| | | // /// </summary> |
| | | // public class BindEntranceOutput |
| | | // { |
| | | |
| | | /// <summary> |
| | | /// å¨è½¬ç®±å· |
| | | /// </summary> |
| | | public string ContainerCode { get; set; } |
| | | // /// <summary> |
| | | // /// å¨è½¬ç®±å· |
| | | // /// </summary> |
| | | // public string ContainerCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æç®±å·ä¿¡æ¯ |
| | | /// </summary> |
| | | public WmsContainerDto WmsContainer { get; set; } |
| | | /// <summary> |
| | | /// åºä½ç¼å· |
| | | /// </summary> |
| | | public string PlaceCode { get; set; } |
| | | // /// <summary> |
| | | // /// æç®±å·ä¿¡æ¯ |
| | | // /// </summary> |
| | | // public WmsContainerDto WmsContainer { get; set; } |
| | | // /// <summary> |
| | | // /// åºä½ç¼å· |
| | | // /// </summary> |
| | | // public string PlaceCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææç»ä¿¡æ¯ |
| | | /// </summary> |
| | | public List<GetMaterialContainerOutput> WmsMaterials { get; set; } |
| | | } |
| | | // /// <summary> |
| | | // /// ç©ææç»ä¿¡æ¯ |
| | | // /// </summary> |
| | | // public List<GetMaterialContainerOutput> WmsMaterials { get; set; } |
| | | // } |
| | | |
| | | /// <summary> |
| | | /// ç©ææç»ä¿¡æ¯è¾åºåæ° |
| | | /// </summary> |
| | | public class GetMaterialContainerOutput |
| | | { |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | // /// <summary> |
| | | // /// ç©ææç»ä¿¡æ¯è¾åºåæ° |
| | | // /// </summary> |
| | | // public class GetMaterialContainerOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// ç©æåç§° |
| | | // /// </summary> |
| | | // public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æç¼å· |
| | | // /// </summary> |
| | | // public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | // /// <summary> |
| | | // /// ç©ææ¹æ¬¡ |
| | | // /// </summary> |
| | | // public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»å«;æ°æ®åå
¸ |
| | | /// </summary> |
| | | public MaterialType MaterialType { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æç±»å«;æ°æ®åå
¸ |
| | | // /// </summary> |
| | | // public MaterialType MaterialType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ£éª |
| | | /// </summary> |
| | | public MaterialInspection InspectionMethod { get; set; } |
| | | // /// <summary> |
| | | // /// ç©ææ£éª |
| | | // /// </summary> |
| | | // public MaterialInspection InspectionMethod { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æè§æ ¼ |
| | | /// </summary> |
| | | public string MaterialSpec { get; set; } |
| | | } |
| | | // /// <summary> |
| | | // /// ç©æè§æ ¼ |
| | | // /// </summary> |
| | | // public string MaterialSpec { get; set; } |
| | | // } |
| | | |
| | | |
| | | public class MaterialOutput |
| | | { |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | // public class MaterialOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// ç©æåç§° |
| | | // /// </summary> |
| | | // public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string MaterialNo { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æç¼å· |
| | | // /// </summary> |
| | | // public string MaterialNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æID |
| | | /// </summary> |
| | | public long MaterialId { get; set; } |
| | | /// <summary> |
| | | /// ç©ææ¹æ¬¡ |
| | | /// </summary> |
| | | public string MaterialBatch { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æID |
| | | // /// </summary> |
| | | // public long MaterialId { get; set; } |
| | | // /// <summary> |
| | | // /// ç©ææ¹æ¬¡ |
| | | // /// </summary> |
| | | // public string MaterialBatch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»å«;æ°æ®åå
¸ |
| | | /// </summary> |
| | | public MaterialType MaterialType { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æç±»å«;æ°æ®åå
¸ |
| | | // /// </summary> |
| | | // public MaterialType MaterialType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ£éª |
| | | /// </summary> |
| | | public MaterialInspection InspectionMethod { get; set; } |
| | | // /// <summary> |
| | | // /// ç©ææ£éª |
| | | // /// </summary> |
| | | // public MaterialInspection InspectionMethod { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æè§æ ¼ |
| | | /// </summary> |
| | | public string MaterialSpec { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æè§æ ¼ |
| | | // /// </summary> |
| | | // public string MaterialSpec { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æå¯åº¦ |
| | | /// </summary> |
| | | public string MaterialDensity { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æå¯åº¦ |
| | | // /// </summary> |
| | | // public string MaterialDensity { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåä½ |
| | | /// </summary> |
| | | public string MaterialUnit { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æåä½ |
| | | // /// </summary> |
| | | // public string MaterialUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 工段 |
| | | /// </summary> |
| | | public LesWorkshopSection LesWorkshopSection { get; set; } |
| | | } |
| | | } |
| | | // /// <summary> |
| | | // /// 工段 |
| | | // /// </summary> |
| | | // public LesWorkshopSection LesWorkshopSection { get; set; } |
| | | // } |
| | | //} |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsAreaSearch : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼ç |
| | | /// </summary> |
| | | public virtual string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºç¼å· |
| | | /// </summary> |
| | | public virtual string WarehouseCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public virtual string WarehouseName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public virtual string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºæè¿° |
| | | /// </summary> |
| | | public virtual string AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public virtual int? AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ERP代ç |
| | | /// </summary> |
| | | public virtual string ErpCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå±ä»åº |
| | | /// </summary> |
| | | public virtual long? WarehouseId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¶ä»¶çº§ç®¡æ§ |
| | | /// </summary> |
| | | public virtual bool? IsBarcodeLevelControl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªå
è¿å
åº |
| | | /// </summary> |
| | | public virtual bool? IsFIFO { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¶ä»¶çº§ç®¡æ§ |
| | | /// </summary> |
| | | public virtual bool? IsPartLevelControl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
è®¸æ··æ· |
| | | /// </summary> |
| | | public virtual bool? IsAllowConfusion { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
许è´åºå |
| | | /// </summary> |
| | | public virtual bool? IsAllowNegativeInventory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual bool? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯ä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsAreaSearchNonPage : PageInputNonPageBase |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼ç |
| | | /// </summary> |
| | | public virtual string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºç¼å· |
| | | /// </summary> |
| | | public virtual string WarehouseCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public virtual string WarehouseName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public virtual string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºæè¿° |
| | | /// </summary> |
| | | public virtual string AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public virtual int? AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ERP代ç |
| | | /// </summary> |
| | | public virtual string ErpCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå±ä»åº |
| | | /// </summary> |
| | | public virtual long? WarehouseId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¶ä»¶çº§ç®¡æ§ |
| | | /// </summary> |
| | | public virtual bool? IsBarcodeLevelControl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªå
è¿å
åº |
| | | /// </summary> |
| | | public virtual bool? IsFIFO { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¶ä»¶çº§ç®¡æ§ |
| | | /// </summary> |
| | | public virtual bool? IsPartLevelControl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
è®¸æ··æ· |
| | | /// </summary> |
| | | public virtual bool? IsAllowConfusion { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
许è´åºå |
| | | /// </summary> |
| | | public virtual bool? IsAllowNegativeInventory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual bool? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsAreaInput |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼ç |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åºåºç¼ç ä¸è½ä¸ºç©º")] |
| | | public virtual string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºç¼å· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ä»åºç¼å·ä¸è½ä¸ºç©º")] |
| | | public virtual string WarehouseCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ä»åºåç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string WarehouseName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åºåºåç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºæè¿° |
| | | /// </summary> |
| | | public virtual string AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åºåºç¶æä¸è½ä¸ºç©º")] |
| | | public virtual int AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ERP代ç |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ERP代ç ä¸è½ä¸ºç©º")] |
| | | public virtual string ErpCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå±ä»åº |
| | | /// </summary> |
| | | [Required(ErrorMessage = "æå±ä»åºä¸è½ä¸ºç©º")] |
| | | public virtual long WarehouseId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¶ä»¶çº§ç®¡æ§ |
| | | /// </summary> |
| | | [Required(ErrorMessage = "é¶ä»¶çº§ç®¡æ§ä¸è½ä¸ºç©º")] |
| | | public virtual bool IsBarcodeLevelControl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªå
è¿å
åº |
| | | /// </summary> |
| | | [Required(ErrorMessage = "æ£éªå
è¿å
åºä¸è½ä¸ºç©º")] |
| | | public virtual bool IsFIFO { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¶ä»¶çº§ç®¡æ§ |
| | | /// </summary> |
| | | [Required(ErrorMessage = "é¶ä»¶çº§ç®¡æ§ä¸è½ä¸ºç©º")] |
| | | public virtual bool IsPartLevelControl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
è®¸æ··æ· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "å
许混æ·ä¸è½ä¸ºç©º")] |
| | | public virtual bool IsAllowConfusion { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
许è´åºå |
| | | /// </summary> |
| | | [Required(ErrorMessage = "å
许è´åºåä¸è½ä¸ºç©º")] |
| | | public virtual bool IsAllowNegativeInventory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual bool? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsAreaInput : WmsAreaInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsAreaInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsAreaInput : WmsAreaInput |
| | | { |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主é®ä¸è½ä¸ºç©º")] |
| | | public long? Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsAreaInput : BaseId |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core.Util.LowCode.Dto; |
| | | using System; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsAreaOutput |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼ç |
| | | /// </summary> |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºç¼å· |
| | | /// </summary> |
| | | public string WarehouseCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string WarehouseName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºæè¿° |
| | | /// </summary> |
| | | public string AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public int AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ERP代ç |
| | | /// </summary> |
| | | public string ErpCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå±ä»åº |
| | | /// </summary> |
| | | public long WarehouseId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¶ä»¶çº§ç®¡æ§ |
| | | /// </summary> |
| | | public bool IsBarcodeLevelControl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªå
è¿å
åº |
| | | /// </summary> |
| | | public bool IsFIFO { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¶ä»¶çº§ç®¡æ§ |
| | | /// </summary> |
| | | public bool IsPartLevelControl { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
è®¸æ··æ· |
| | | /// </summary> |
| | | public bool IsAllowConfusion { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
许è´åºå |
| | | /// </summary> |
| | | public bool IsAllowNegativeInventory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public bool? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | public long? Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public interface IWmsAreaService |
| | | { |
| | | Task<WmsAreaOutput> Get([FromQuery] QueryeWmsAreaInput input); |
| | | Task<List<WmsAreaOutput>> List([FromQuery] WmsAreaInput input); |
| | | Task<PageResult<WmsAreaOutput>> Page([FromQuery] WmsAreaSearch input); |
| | | Task<List<WmsAreaOutput>> ListNonPageAsync([FromQuery] WmsAreaSearchNonPage input); |
| | | |
| | | Task Add(AddWmsAreaInput input); |
| | | Task Update(UpdateWmsAreaInput input); |
| | | Task Delete(DeleteWmsAreaInput input); |
| | | Task<int> ImportExcelAsync(IFormFile file); |
| | | IActionResult DownloadExcelTemplate(string version); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public class WmsAreaMapper : IRegister |
| | | { |
| | | public void Register(TypeAdapterConfig config) |
| | | { |
| | | config.ForType<AddWmsAreaInput, WmsArea>() |
| | | ; |
| | | config.ForType<UpdateWmsAreaInput, WmsArea>() |
| | | ; |
| | | config.ForType<WmsArea, WmsAreaOutput>() |
| | | ; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.DatabaseAccessor.Extensions; |
| | | using Furion.DependencyInjection; |
| | | using Furion.DynamicApiController; |
| | | using Furion.FriendlyException; |
| | | using Admin.NET.Core; |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System.Linq.Dynamic.Core; |
| | | using Microsoft.AspNetCore.Http; |
| | | using System.Text; |
| | | using System.Web; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// åºåºä¿¡æ¯æå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsArea", Order = 100)] |
| | | [Route("api")] |
| | | public class WmsAreaService : IWmsAreaService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsArea,MasterDbContextLocator> _wmsAreaRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsAreaService( |
| | | IRepository<WmsArea,MasterDbContextLocator> wmsAreaRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsAreaRep = wmsAreaRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢åºåºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsArea/page")] |
| | | public async Task<PageResult<WmsAreaOutput>> Page([FromQuery] WmsAreaSearch input) |
| | | { |
| | | var wmsAreas = await _wmsAreaRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(input.AreaCode), u => u.AreaCode == input.AreaCode) |
| | | .Where(!string.IsNullOrEmpty(input.WarehouseCode), u => u.WarehouseCode == input.WarehouseCode) |
| | | .Where(!string.IsNullOrEmpty(input.WarehouseName), u => u.WarehouseName == input.WarehouseName) |
| | | .Where(!string.IsNullOrEmpty(input.AreaName), u => u.AreaName == input.AreaName) |
| | | .Where(!string.IsNullOrEmpty(input.AreaDesc), u => u.AreaDesc == input.AreaDesc) |
| | | .Where(input.AreaStatus != null, u => u.AreaStatus == input.AreaStatus) |
| | | .Where(!string.IsNullOrEmpty(input.ErpCode), u => u.ErpCode == input.ErpCode) |
| | | .Where(input.WarehouseId != null, u => u.WarehouseId == input.WarehouseId) |
| | | .Where(input.IsBarcodeLevelControl != null, u => u.IsBarcodeLevelControl == input.IsBarcodeLevelControl) |
| | | .Where(input.IsFIFO != null, u => u.IsFIFO == input.IsFIFO) |
| | | .Where(input.IsPartLevelControl != null, u => u.IsPartLevelControl == input.IsPartLevelControl) |
| | | .Where(input.IsAllowConfusion != null, u => u.IsAllowConfusion == input.IsAllowConfusion) |
| | | .Where(input.IsAllowNegativeInventory != null, u => u.IsAllowNegativeInventory == input.IsAllowNegativeInventory) |
| | | .Where(input.IsVirtually != null, u => u.IsVirtually == input.IsVirtually) |
| | | .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderBuilder<WmsAreaSearch>(input)) |
| | | .ProjectToType<WmsAreaOutput>() |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return wmsAreas; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢åºåºä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input">åºåºä¿¡æ¯æ¥è¯¢åæ°</param> |
| | | /// <returns>(åºåºä¿¡æ¯)å®ä¾å表</returns> |
| | | [HttpGet("WmsArea/listNonPage")] |
| | | public async Task<List<WmsAreaOutput>> ListNonPageAsync([FromQuery] WmsAreaSearchNonPage input) |
| | | { |
| | | var pAreaCode = input.AreaCode?.Trim() ?? ""; |
| | | var pWarehouseCode = input.WarehouseCode?.Trim() ?? ""; |
| | | var pWarehouseName = input.WarehouseName?.Trim() ?? ""; |
| | | var pAreaName = input.AreaName?.Trim() ?? ""; |
| | | var pAreaDesc = input.AreaDesc?.Trim() ?? ""; |
| | | var pAreaStatus = input.AreaStatus; |
| | | var pErpCode = input.ErpCode?.Trim() ?? ""; |
| | | var pWarehouseId = input.WarehouseId; |
| | | var pIsBarcodeLevelControl = input.IsBarcodeLevelControl; |
| | | var pIsFIFO = input.IsFIFO; |
| | | var pIsPartLevelControl = input.IsPartLevelControl; |
| | | var pIsAllowConfusion = input.IsAllowConfusion; |
| | | var pIsAllowNegativeInventory = input.IsAllowNegativeInventory; |
| | | var pIsVirtually = input.IsVirtually; |
| | | var pIsDisabled = input.IsDisabled; |
| | | var pCreatedTime = input.CreatedTime; |
| | | var pUpdatedTime = input.UpdatedTime; |
| | | var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var wmsAreas = await _wmsAreaRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(pAreaCode), u => u.AreaCode == pAreaCode) |
| | | .Where(!string.IsNullOrEmpty(pWarehouseCode), u => u.WarehouseCode == pWarehouseCode) |
| | | .Where(!string.IsNullOrEmpty(pWarehouseName), u => u.WarehouseName == pWarehouseName) |
| | | .Where(!string.IsNullOrEmpty(pAreaName), u => u.AreaName == pAreaName) |
| | | .Where(!string.IsNullOrEmpty(pAreaDesc), u => u.AreaDesc == pAreaDesc) |
| | | .Where(pAreaStatus != null, u => u.AreaStatus == pAreaStatus) |
| | | .Where(!string.IsNullOrEmpty(pErpCode), u => u.ErpCode == pErpCode) |
| | | .Where(pWarehouseId != null, u => u.WarehouseId == pWarehouseId) |
| | | .Where(pIsBarcodeLevelControl != null, u => u.IsBarcodeLevelControl == pIsBarcodeLevelControl) |
| | | .Where(pIsFIFO != null, u => u.IsFIFO == pIsFIFO) |
| | | .Where(pIsPartLevelControl != null, u => u.IsPartLevelControl == pIsPartLevelControl) |
| | | .Where(pIsAllowConfusion != null, u => u.IsAllowConfusion == pIsAllowConfusion) |
| | | .Where(pIsAllowNegativeInventory != null, u => u.IsAllowNegativeInventory == pIsAllowNegativeInventory) |
| | | .Where(pIsVirtually != null, u => u.IsVirtually == pIsVirtually) |
| | | .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderNonPageBuilder(input)) |
| | | .ProjectToType<WmsAreaOutput>() |
| | | .ToListAsync(); |
| | | return wmsAreas; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååºåºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsArea/detail")] |
| | | public async Task<WmsAreaOutput> Get([FromQuery] QueryeWmsAreaInput input) |
| | | { |
| | | return (await _wmsAreaRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsAreaOutput>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååºåºä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsArea/list")] |
| | | public async Task<List<WmsAreaOutput>> List([FromQuery] WmsAreaInput input) |
| | | { |
| | | return await _wmsAreaRep.DetachedEntities.ProjectToType<WmsAreaOutput>().ToListAsync(); |
| | | } |
| | | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å åºåºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsArea/add")] |
| | | public async Task Add(AddWmsAreaInput input) |
| | | { |
| | | var wmsArea = input.Adapt<WmsArea>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsArea); |
| | | |
| | | wmsArea.CreatedUserId = wmsArea.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsArea.CreatedUserName = wmsArea.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsArea.CreatedTime = wmsArea.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsAreaRep.InsertAsync(wmsArea); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤åºåºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsArea/delete")] |
| | | public async Task Delete(DeleteWmsAreaInput input) |
| | | { |
| | | var wmsArea = await _wmsAreaRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsAreaRep.DeleteAsync(wmsArea); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åºåºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsArea/edit")] |
| | | public async Task Update(UpdateWmsAreaInput input) |
| | | { |
| | | var isExist = await _wmsAreaRep.AnyAsync(u => u.Id == input.Id, false); |
| | | if (!isExist) throw Oops.Oh(ErrorCode.D1002); |
| | | |
| | | var wmsArea = input.Adapt<WmsArea>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsArea,true); |
| | | |
| | | wmsArea.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsArea.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsArea.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsAreaRep.UpdateAsync(wmsArea,ignoreNullValues:true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥åºåºä¿¡æ¯åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | | [HttpPost("WmsArea/importExcel")] |
| | | public async Task<int> ImportExcelAsync(IFormFile file) |
| | | { |
| | | int _HeadStartLine = 2;//第1è¡æ¯è¯´æ,第2è¡æ¯åå |
| | | int _DataStartLine = 3;//第3è¡å¼å§æ¯æ°æ® |
| | | |
| | | DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine); |
| | | var addList =await CommonImport(importDataTable, _DataStartLine); |
| | | |
| | | lock (_lock) |
| | | { |
| | | _wmsAreaRep.InsertAsync(addList); |
| | | |
| | | } |
| | | await Task.CompletedTask; |
| | | return addList.Count; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// DataTable转æ¢å®ä½å¯¹è±¡å表 |
| | | /// </summary> |
| | | /// <param name="dataTable"></param> |
| | | /// <param name="dataStartLine">模çååå¼å§è¡</param> |
| | | /// <returns></returns> |
| | | private async Task<List<WmsArea>> CommonImport(DataTable dataTable, int dataStartLine) |
| | | { |
| | | |
| | | var details = new List<WmsArea>(); |
| | | int index = dataStartLine;//模çååå¼å§è¡ |
| | | foreach (System.Data.DataRow row in dataTable.Rows) |
| | | { |
| | | index++; |
| | | |
| | | //导å
¥æ¨¡çå®å¶å代ç ï¼æ¿æ¢æ¨¡ç使ç¨ï¼ |
| | | |
| | | var addItem = new WmsArea() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region å®ä¹åé |
| | | var _AreaCode = "";//åºåºç¼ç |
| | | var _WarehouseCode = "";//ä»åºç¼å· |
| | | var _WarehouseName = "";//ä»åºåç§° |
| | | var _AreaName = "";//åºåºåç§° |
| | | var _AreaDesc = "";//åºåºæè¿° |
| | | var _AreaStatus = "";//åºåºç¶æ |
| | | var _ErpCode = "";//ERP代ç |
| | | var _WarehouseId = "";//æå±ä»åº |
| | | var _IsBarcodeLevelControl = "";//é¶ä»¶çº§ç®¡æ§ |
| | | var _IsFIFO = "";//æ£éªå
è¿å
åº |
| | | var _IsPartLevelControl = "";//é¶ä»¶çº§ç®¡æ§ |
| | | var _IsAllowConfusion = "";//å
è®¸æ··æ· |
| | | var _IsAllowNegativeInventory = "";//å
许è´åºå |
| | | var _IsVirtually = "";//æ¯å¦èæ |
| | | var _IsDisabled = "";//æ¯å¦ç¦ç¨ |
| | | var _Id = "";//Idä¸»é® |
| | | #endregion |
| | | |
| | | |
| | | #region åå¼ |
| | | _AreaCode = row["åºåºç¼ç "]?.ToString() ; |
| | | _WarehouseCode = row["ä»åºç¼å·"]?.ToString() ; |
| | | _WarehouseName = row["ä»åºåç§°"]?.ToString() ; |
| | | _AreaName = row["åºåºåç§°"]?.ToString() ; |
| | | _AreaDesc = row["åºåºæè¿°"]?.ToString() ; |
| | | _AreaStatus = row["åºåºç¶æ"]?.ToString() ; |
| | | _ErpCode = row["ERP代ç "]?.ToString() ; |
| | | _WarehouseId = row["æå±ä»åº"]?.ToString() ; |
| | | _IsBarcodeLevelControl = row["é¶ä»¶çº§ç®¡æ§"]?.ToString() ; |
| | | _IsFIFO = row["æ£éªå
è¿å
åº"]?.ToString() ; |
| | | _IsPartLevelControl = row["é¶ä»¶çº§ç®¡æ§"]?.ToString() ; |
| | | _IsAllowConfusion = row["å
许混æ·"]?.ToString() ; |
| | | _IsAllowNegativeInventory = row["å
许è´åºå"]?.ToString() ; |
| | | _IsVirtually = row["æ¯å¦èæ"]?.ToString() ; |
| | | _IsDisabled = row["æ¯å¦ç¦ç¨"]?.ToString() ; |
| | | _Id = row["Id主é®"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region éªè¯ |
| | | |
| | | if (string.IsNullOrEmpty(_AreaCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºåºç¼ç ]{_AreaCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_AreaCode)) |
| | | { |
| | | addItem.AreaCode = (string)_AreaCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_WarehouseCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ä»åºç¼å·]{_WarehouseCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_WarehouseCode)) |
| | | { |
| | | addItem.WarehouseCode = (string)_WarehouseCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_WarehouseName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ä»åºåç§°]{_WarehouseName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_WarehouseName)) |
| | | { |
| | | addItem.WarehouseName = (string)_WarehouseName; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_AreaName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºåºåç§°]{_AreaName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_AreaName)) |
| | | { |
| | | addItem.AreaName = (string)_AreaName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_AreaDesc)) |
| | | { |
| | | addItem.AreaDesc = (string)_AreaDesc; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_AreaStatus)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºåºç¶æ]{_AreaStatus}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_AreaStatus)) |
| | | { |
| | | if (!int.TryParse(_AreaStatus, out int outAreaStatus)&&!string.IsNullOrEmpty(_AreaStatus)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºåºç¶æ]{_AreaStatus}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outAreaStatus <= 0&&!string.IsNullOrEmpty(_AreaStatus)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºåºç¶æ]{_AreaStatus}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.AreaStatus = outAreaStatus; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_ErpCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ERP代ç ]{_ErpCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_ErpCode)) |
| | | { |
| | | addItem.ErpCode = (string)_ErpCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_WarehouseId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æå±ä»åº]{_WarehouseId}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_WarehouseId)) |
| | | { |
| | | if (!long.TryParse(_WarehouseId, out long outWarehouseId)&&!string.IsNullOrEmpty(_WarehouseId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æå±ä»åº]{_WarehouseId}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outWarehouseId <= 0&&!string.IsNullOrEmpty(_WarehouseId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æå±ä»åº]{_WarehouseId}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.WarehouseId = outWarehouseId; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_IsBarcodeLevelControl)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é¶ä»¶çº§ç®¡æ§]{_IsBarcodeLevelControl}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsBarcodeLevelControl)) |
| | | { |
| | | if(!_IsBarcodeLevelControl.Equals("æ¯") && !_IsBarcodeLevelControl.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é¶ä»¶çº§ç®¡æ§]{_IsBarcodeLevelControl}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsBarcodeLevelControl = _IsBarcodeLevelControl.Equals("æ¯") ? true : false; |
| | | addItem.IsBarcodeLevelControl = outIsBarcodeLevelControl; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (string.IsNullOrEmpty(_IsFIFO)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ£éªå
è¿å
åº]{_IsFIFO}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsFIFO)) |
| | | { |
| | | if(!_IsFIFO.Equals("æ¯") && !_IsFIFO.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ£éªå
è¿å
åº]{_IsFIFO}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsFIFO = _IsFIFO.Equals("æ¯") ? true : false; |
| | | addItem.IsFIFO = outIsFIFO; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (string.IsNullOrEmpty(_IsPartLevelControl)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é¶ä»¶çº§ç®¡æ§]{_IsPartLevelControl}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsPartLevelControl)) |
| | | { |
| | | if(!_IsPartLevelControl.Equals("æ¯") && !_IsPartLevelControl.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é¶ä»¶çº§ç®¡æ§]{_IsPartLevelControl}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsPartLevelControl = _IsPartLevelControl.Equals("æ¯") ? true : false; |
| | | addItem.IsPartLevelControl = outIsPartLevelControl; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (string.IsNullOrEmpty(_IsAllowConfusion)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å
许混æ·]{_IsAllowConfusion}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsAllowConfusion)) |
| | | { |
| | | if(!_IsAllowConfusion.Equals("æ¯") && !_IsAllowConfusion.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å
许混æ·]{_IsAllowConfusion}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsAllowConfusion = _IsAllowConfusion.Equals("æ¯") ? true : false; |
| | | addItem.IsAllowConfusion = outIsAllowConfusion; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (string.IsNullOrEmpty(_IsAllowNegativeInventory)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å
许è´åºå]{_IsAllowNegativeInventory}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsAllowNegativeInventory)) |
| | | { |
| | | if(!_IsAllowNegativeInventory.Equals("æ¯") && !_IsAllowNegativeInventory.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å
许è´åºå]{_IsAllowNegativeInventory}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsAllowNegativeInventory = _IsAllowNegativeInventory.Equals("æ¯") ? true : false; |
| | | addItem.IsAllowNegativeInventory = outIsAllowNegativeInventory; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsVirtually)) |
| | | { |
| | | if(!_IsVirtually.Equals("æ¯") && !_IsVirtually.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦èæ]{_IsVirtually}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsVirtually = _IsVirtually.Equals("æ¯") ? true : false; |
| | | addItem.IsVirtually = outIsVirtually; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if(!_IsDisabled.Equals("æ¯") && !_IsDisabled.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦ç¦ç¨]{_IsDisabled}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsDisabled = _IsDisabled.Equals("æ¯") ? true : false; |
| | | addItem.IsDisabled = outIsDisabled; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outId <= 0&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Id = outId; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | details.Add(addItem); |
| | | } |
| | | //éªé |
| | | await CheckExisitForImport(details); |
| | | |
| | | return details; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½åºåºä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | | [HttpGet("WmsArea/downloadExcelTemplate")] |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsArea{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(åºåºä¿¡æ¯).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç§ææ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-æ°æ®åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <param name="isEdit"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisit( WmsArea input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//æ°å¢ |
| | | { |
| | | //æ°æ®æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsAreaRep.AnyAsync(u => |
| | | u.AreaCode.Equals(input.AreaCode) |
| | | ,false); |
| | | } |
| | | else//ç¼è¾ |
| | | { |
| | | |
| | | |
| | | |
| | | //å½åç¼è¾æ°æ®ä»¥å¤æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsAreaRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.AreaCode.Equals(input.AreaCode) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsArea> inputs) |
| | | { |
| | | //æ ¹æ®èå主é®éªè¯è¡¨æ ¼ä¸ä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导å
¥æ°æ®ä¸è½ä¸ºç©º"); |
| | | } |
| | | //æ°æ®æ¯å¦éå¤ |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.AreaCode |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.AreaCode |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var wmsArea = existExcelItem.Adapt<WmsArea>(); |
| | | var item= existExcelItem.Adapt<WmsArea>(); |
| | | throw Oops.Oh($"导å
¥çè¡¨æ ¼ä¸,åºåºç¼ç [{item.AreaCode}]å·²åå¨"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //æ ¹æ®èå主é®éªè¯æ°æ®åºä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | var existDBItem = await _wmsAreaRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.AreaCode |
| | | ) |
| | | .Contains("" |
| | | +w.AreaCode |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var wmsArea = existExcelItem.Adapt<WmsArea>(); |
| | | var item= existExcelItem.Adapt<WmsArea>(); |
| | | throw Oops.Oh($"ç³»ç»ä¸,åºåºç¼ç [{item.AreaCode}]å·²åå¨"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsContainerSearch : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string ContainerCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public virtual string ContainerName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åID |
| | | /// </summary> |
| | | public virtual long? ContainerTypeId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string ContainerTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»ID |
| | | /// </summary> |
| | | public virtual long? PackagingId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public virtual decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public virtual decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public virtual decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public virtual decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public virtual decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public virtual decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public virtual decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶å®¹å¨åç§° |
| | | /// </summary> |
| | | public virtual string ParentContainerName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶å®¹å¨Id |
| | | /// </summary> |
| | | public virtual long? ParentContainerId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual int? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯ä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsContainerSearchNonPage : PageInputNonPageBase |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string ContainerCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public virtual string ContainerName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åID |
| | | /// </summary> |
| | | public virtual long? ContainerTypeId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string ContainerTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»ID |
| | | /// </summary> |
| | | public virtual long? PackagingId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public virtual decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public virtual decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public virtual decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public virtual decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public virtual decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public virtual decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public virtual decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶å®¹å¨åç§° |
| | | /// </summary> |
| | | public virtual string ParentContainerName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶å®¹å¨Id |
| | | /// </summary> |
| | | public virtual long? ParentContainerId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual int? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsContainerInput |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç¼å·ä¸è½ä¸ºç©º")] |
| | | public virtual string ContainerCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string ContainerName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åID |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç±»åIDä¸è½ä¸ºç©º")] |
| | | public virtual long ContainerTypeId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç±»ååç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string ContainerTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»ID |
| | | /// </summary> |
| | | [Required(ErrorMessage = "容å¨å
³ç³»IDä¸è½ä¸ºç©º")] |
| | | public virtual long PackagingId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public virtual decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public virtual decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public virtual decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public virtual decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public virtual decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public virtual decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public virtual decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶å®¹å¨åç§° |
| | | /// </summary> |
| | | public virtual string ParentContainerName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶å®¹å¨Id |
| | | /// </summary> |
| | | public virtual long? ParentContainerId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual int? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsContainerInput : WmsContainerInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsContainerInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsContainerInput : WmsContainerInput |
| | | { |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主é®ä¸è½ä¸ºç©º")] |
| | | public long? Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsContainerInput : BaseId |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core.Util.LowCode.Dto; |
| | | using System; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsContainerOutput |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public string ContainerCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public string ContainerName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»åID |
| | | /// </summary> |
| | | public long ContainerTypeId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public string ContainerTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»ID |
| | | /// </summary> |
| | | public long PackagingId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶å®¹å¨åç§° |
| | | /// </summary> |
| | | public string ParentContainerName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶å®¹å¨Id |
| | | /// </summary> |
| | | public long? ParentContainerId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public int? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | public long? Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public interface IWmsContainerService |
| | | { |
| | | Task<WmsContainerOutput> Get([FromQuery] QueryeWmsContainerInput input); |
| | | Task<List<WmsContainerOutput>> List([FromQuery] WmsContainerInput input); |
| | | Task<PageResult<WmsContainerOutput>> Page([FromQuery] WmsContainerSearch input); |
| | | Task<List<WmsContainerOutput>> ListNonPageAsync([FromQuery] WmsContainerSearchNonPage input); |
| | | |
| | | Task Add(AddWmsContainerInput input); |
| | | Task Update(UpdateWmsContainerInput input); |
| | | Task Delete(DeleteWmsContainerInput input); |
| | | Task<int> ImportExcelAsync(IFormFile file); |
| | | IActionResult DownloadExcelTemplate(string version); |
| | | } |
| | | } |
ÎļþÃû´Ó iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsContainer/Map/WmsContainerMapper.cs ÐÞ¸Ä |
| | |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public class WmsContainerMapper : IRegister |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="config"></param> |
| | | public void Register(TypeAdapterConfig config) |
| | | { |
| | | config.ForType<AddWmsContainerInput, WmsContainer>() |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.DatabaseAccessor.Extensions; |
| | | using Furion.DependencyInjection; |
| | | using Furion.DynamicApiController; |
| | | using Furion.FriendlyException; |
| | | using Admin.NET.Core; |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System.Linq.Dynamic.Core; |
| | | using Microsoft.AspNetCore.Http; |
| | | using System.Text; |
| | | using System.Web; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// 容å¨ä¿¡æ¯æå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsContainer", Order = 100)] |
| | | [Route("api")] |
| | | public class WmsContainerService : IWmsContainerService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsContainer,MasterDbContextLocator> _wmsContainerRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsContainerService( |
| | | IRepository<WmsContainer,MasterDbContextLocator> wmsContainerRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsContainerRep = wmsContainerRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢å®¹å¨ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsContainer/page")] |
| | | public async Task<PageResult<WmsContainerOutput>> Page([FromQuery] WmsContainerSearch input) |
| | | { |
| | | var wmsContainers = await _wmsContainerRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(input.ContainerCode), u => u.ContainerCode == input.ContainerCode) |
| | | .Where(!string.IsNullOrEmpty(input.ContainerName), u => u.ContainerName == input.ContainerName) |
| | | .Where(input.ContainerTypeId != null, u => u.ContainerTypeId == input.ContainerTypeId) |
| | | .Where(!string.IsNullOrEmpty(input.ContainerTypeName), u => u.ContainerTypeName == input.ContainerTypeName) |
| | | .Where(input.PackagingId != null, u => u.PackagingId == input.PackagingId) |
| | | .Where(input.SpecLength != null, u => u.SpecLength == input.SpecLength) |
| | | .Where(input.SpecWidth != null, u => u.SpecWidth == input.SpecWidth) |
| | | .Where(input.SpecHeight != null, u => u.SpecHeight == input.SpecHeight) |
| | | .Where(input.LimitLength != null, u => u.LimitLength == input.LimitLength) |
| | | .Where(input.LimitWidth != null, u => u.LimitWidth == input.LimitWidth) |
| | | .Where(input.LimitHeight != null, u => u.LimitHeight == input.LimitHeight) |
| | | .Where(input.MaxWeight != null, u => u.MaxWeight == input.MaxWeight) |
| | | .Where(!string.IsNullOrEmpty(input.ParentContainerName), u => u.ParentContainerName == input.ParentContainerName) |
| | | .Where(input.ParentContainerId != null, u => u.ParentContainerId == input.ParentContainerId) |
| | | .Where(input.IsVirtually != null, u => u.IsVirtually == input.IsVirtually) |
| | | .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderBuilder<WmsContainerSearch>(input)) |
| | | .ProjectToType<WmsContainerOutput>() |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return wmsContainers; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢å®¹å¨ä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input">容å¨ä¿¡æ¯æ¥è¯¢åæ°</param> |
| | | /// <returns>(容å¨ä¿¡æ¯)å®ä¾å表</returns> |
| | | [HttpGet("WmsContainer/listNonPage")] |
| | | public async Task<List<WmsContainerOutput>> ListNonPageAsync([FromQuery] WmsContainerSearchNonPage input) |
| | | { |
| | | var pContainerCode = input.ContainerCode?.Trim() ?? ""; |
| | | var pContainerName = input.ContainerName?.Trim() ?? ""; |
| | | var pContainerTypeId = input.ContainerTypeId; |
| | | var pContainerTypeName = input.ContainerTypeName?.Trim() ?? ""; |
| | | var pPackagingId = input.PackagingId; |
| | | var pSpecLength = input.SpecLength; |
| | | var pSpecWidth = input.SpecWidth; |
| | | var pSpecHeight = input.SpecHeight; |
| | | var pLimitLength = input.LimitLength; |
| | | var pLimitWidth = input.LimitWidth; |
| | | var pLimitHeight = input.LimitHeight; |
| | | var pMaxWeight = input.MaxWeight; |
| | | var pParentContainerName = input.ParentContainerName?.Trim() ?? ""; |
| | | var pParentContainerId = input.ParentContainerId; |
| | | var pIsVirtually = input.IsVirtually; |
| | | var pIsDisabled = input.IsDisabled; |
| | | var pCreatedTime = input.CreatedTime; |
| | | var pUpdatedTime = input.UpdatedTime; |
| | | var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var wmsContainers = await _wmsContainerRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(pContainerCode), u => u.ContainerCode == pContainerCode) |
| | | .Where(!string.IsNullOrEmpty(pContainerName), u => u.ContainerName == pContainerName) |
| | | .Where(pContainerTypeId != null, u => u.ContainerTypeId == pContainerTypeId) |
| | | .Where(!string.IsNullOrEmpty(pContainerTypeName), u => u.ContainerTypeName == pContainerTypeName) |
| | | .Where(pPackagingId != null, u => u.PackagingId == pPackagingId) |
| | | .Where(pSpecLength != null, u => u.SpecLength == pSpecLength) |
| | | .Where(pSpecWidth != null, u => u.SpecWidth == pSpecWidth) |
| | | .Where(pSpecHeight != null, u => u.SpecHeight == pSpecHeight) |
| | | .Where(pLimitLength != null, u => u.LimitLength == pLimitLength) |
| | | .Where(pLimitWidth != null, u => u.LimitWidth == pLimitWidth) |
| | | .Where(pLimitHeight != null, u => u.LimitHeight == pLimitHeight) |
| | | .Where(pMaxWeight != null, u => u.MaxWeight == pMaxWeight) |
| | | .Where(!string.IsNullOrEmpty(pParentContainerName), u => u.ParentContainerName == pParentContainerName) |
| | | .Where(pParentContainerId != null, u => u.ParentContainerId == pParentContainerId) |
| | | .Where(pIsVirtually != null, u => u.IsVirtually == pIsVirtually) |
| | | .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderNonPageBuilder(input)) |
| | | .ProjectToType<WmsContainerOutput>() |
| | | .ToListAsync(); |
| | | return wmsContainers; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å容å¨ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsContainer/detail")] |
| | | public async Task<WmsContainerOutput> Get([FromQuery] QueryeWmsContainerInput input) |
| | | { |
| | | return (await _wmsContainerRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsContainerOutput>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å容å¨ä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsContainer/list")] |
| | | public async Task<List<WmsContainerOutput>> List([FromQuery] WmsContainerInput input) |
| | | { |
| | | return await _wmsContainerRep.DetachedEntities.ProjectToType<WmsContainerOutput>().ToListAsync(); |
| | | } |
| | | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å 容å¨ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsContainer/add")] |
| | | public async Task Add(AddWmsContainerInput input) |
| | | { |
| | | var wmsContainer = input.Adapt<WmsContainer>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsContainer); |
| | | |
| | | wmsContainer.CreatedUserId = wmsContainer.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsContainer.CreatedUserName = wmsContainer.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsContainer.CreatedTime = wmsContainer.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsContainerRep.InsertAsync(wmsContainer); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å®¹å¨ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsContainer/delete")] |
| | | public async Task Delete(DeleteWmsContainerInput input) |
| | | { |
| | | var wmsContainer = await _wmsContainerRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsContainerRep.DeleteAsync(wmsContainer); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°å®¹å¨ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsContainer/edit")] |
| | | public async Task Update(UpdateWmsContainerInput input) |
| | | { |
| | | var isExist = await _wmsContainerRep.AnyAsync(u => u.Id == input.Id, false); |
| | | if (!isExist) throw Oops.Oh(ErrorCode.D1002); |
| | | |
| | | var wmsContainer = input.Adapt<WmsContainer>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsContainer,true); |
| | | |
| | | wmsContainer.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsContainer.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsContainer.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsContainerRep.UpdateAsync(wmsContainer,ignoreNullValues:true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥å®¹å¨ä¿¡æ¯åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | | [HttpPost("WmsContainer/importExcel")] |
| | | public async Task<int> ImportExcelAsync(IFormFile file) |
| | | { |
| | | int _HeadStartLine = 2;//第1è¡æ¯è¯´æ,第2è¡æ¯åå |
| | | int _DataStartLine = 3;//第3è¡å¼å§æ¯æ°æ® |
| | | |
| | | DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine); |
| | | var addList =await CommonImport(importDataTable, _DataStartLine); |
| | | |
| | | lock (_lock) |
| | | { |
| | | _wmsContainerRep.InsertAsync(addList); |
| | | |
| | | } |
| | | await Task.CompletedTask; |
| | | return addList.Count; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// DataTable转æ¢å®ä½å¯¹è±¡å表 |
| | | /// </summary> |
| | | /// <param name="dataTable"></param> |
| | | /// <param name="dataStartLine">模çååå¼å§è¡</param> |
| | | /// <returns></returns> |
| | | private async Task<List<WmsContainer>> CommonImport(DataTable dataTable, int dataStartLine) |
| | | { |
| | | |
| | | var details = new List<WmsContainer>(); |
| | | int index = dataStartLine;//模çååå¼å§è¡ |
| | | foreach (System.Data.DataRow row in dataTable.Rows) |
| | | { |
| | | index++; |
| | | |
| | | //导å
¥æ¨¡çå®å¶å代ç ï¼æ¿æ¢æ¨¡ç使ç¨ï¼ |
| | | |
| | | var addItem = new WmsContainer() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region å®ä¹åé |
| | | var _ContainerCode = "";//ç¼å· |
| | | var _ContainerName = "";//åç§° |
| | | var _ContainerTypeId = "";//ç±»åID |
| | | var _ContainerTypeName = "";//ç±»ååç§° |
| | | var _PackagingId = "";//容å¨å
³ç³»ID |
| | | var _SpecLength = "";//é¿åº¦ |
| | | var _SpecWidth = "";//宽度 |
| | | var _SpecHeight = "";//é«åº¦ |
| | | var _LimitLength = "";//éé¿ |
| | | var _LimitWidth = "";//é宽 |
| | | var _LimitHeight = "";//éé« |
| | | var _MaxWeight = "";//è½½éä¸é |
| | | var _ParentContainerName = "";//ç¶å®¹å¨åç§° |
| | | var _ParentContainerId = "";//ç¶å®¹å¨Id |
| | | var _IsVirtually = "";//æ¯å¦èæ |
| | | var _IsDisabled = "";//æ¯å¦ç¦ç¨ |
| | | var _Id = "";//Idä¸»é® |
| | | #endregion |
| | | |
| | | |
| | | #region åå¼ |
| | | _ContainerCode = row["ç¼å·"]?.ToString() ; |
| | | _ContainerName = row["åç§°"]?.ToString() ; |
| | | _ContainerTypeId = row["ç±»åID"]?.ToString() ; |
| | | _ContainerTypeName = row["ç±»ååç§°"]?.ToString() ; |
| | | _PackagingId = row["容å¨å
³ç³»ID"]?.ToString() ; |
| | | _SpecLength = row["é¿åº¦"]?.ToString() ; |
| | | _SpecWidth = row["宽度"]?.ToString() ; |
| | | _SpecHeight = row["é«åº¦"]?.ToString() ; |
| | | _LimitLength = row["éé¿"]?.ToString() ; |
| | | _LimitWidth = row["é宽"]?.ToString() ; |
| | | _LimitHeight = row["éé«"]?.ToString() ; |
| | | _MaxWeight = row["è½½éä¸é"]?.ToString() ; |
| | | _ParentContainerName = row["ç¶å®¹å¨åç§°"]?.ToString() ; |
| | | _ParentContainerId = row["ç¶å®¹å¨Id"]?.ToString() ; |
| | | _IsVirtually = row["æ¯å¦èæ"]?.ToString() ; |
| | | _IsDisabled = row["æ¯å¦ç¦ç¨"]?.ToString() ; |
| | | _Id = row["Id主é®"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region éªè¯ |
| | | |
| | | if (string.IsNullOrEmpty(_ContainerCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç¼å·]{_ContainerCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_ContainerCode)) |
| | | { |
| | | addItem.ContainerCode = (string)_ContainerCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_ContainerName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åç§°]{_ContainerName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_ContainerName)) |
| | | { |
| | | addItem.ContainerName = (string)_ContainerName; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_ContainerTypeId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»åID]{_ContainerTypeId}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_ContainerTypeId)) |
| | | { |
| | | if (!long.TryParse(_ContainerTypeId, out long outContainerTypeId)&&!string.IsNullOrEmpty(_ContainerTypeId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»åID]{_ContainerTypeId}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outContainerTypeId <= 0&&!string.IsNullOrEmpty(_ContainerTypeId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»åID]{_ContainerTypeId}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.ContainerTypeId = outContainerTypeId; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_ContainerTypeName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»ååç§°]{_ContainerTypeName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_ContainerTypeName)) |
| | | { |
| | | addItem.ContainerTypeName = (string)_ContainerTypeName; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_PackagingId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[容å¨å
³ç³»ID]{_PackagingId}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_PackagingId)) |
| | | { |
| | | if (!long.TryParse(_PackagingId, out long outPackagingId)&&!string.IsNullOrEmpty(_PackagingId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[容å¨å
³ç³»ID]{_PackagingId}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outPackagingId <= 0&&!string.IsNullOrEmpty(_PackagingId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[容å¨å
³ç³»ID]{_PackagingId}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.PackagingId = outPackagingId; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_SpecLength)) |
| | | { |
| | | if (!decimal.TryParse(_SpecLength, out decimal outSpecLength)&&!string.IsNullOrEmpty(_SpecLength)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é¿åº¦]{_SpecLength}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outSpecLength <= 0&&!string.IsNullOrEmpty(_SpecLength)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é¿åº¦]{_SpecLength}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.SpecLength = outSpecLength; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_SpecWidth)) |
| | | { |
| | | if (!decimal.TryParse(_SpecWidth, out decimal outSpecWidth)&&!string.IsNullOrEmpty(_SpecWidth)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[宽度]{_SpecWidth}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outSpecWidth <= 0&&!string.IsNullOrEmpty(_SpecWidth)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[宽度]{_SpecWidth}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.SpecWidth = outSpecWidth; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_SpecHeight)) |
| | | { |
| | | if (!decimal.TryParse(_SpecHeight, out decimal outSpecHeight)&&!string.IsNullOrEmpty(_SpecHeight)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é«åº¦]{_SpecHeight}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outSpecHeight <= 0&&!string.IsNullOrEmpty(_SpecHeight)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é«åº¦]{_SpecHeight}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.SpecHeight = outSpecHeight; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_LimitLength)) |
| | | { |
| | | if (!decimal.TryParse(_LimitLength, out decimal outLimitLength)&&!string.IsNullOrEmpty(_LimitLength)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[éé¿]{_LimitLength}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outLimitLength <= 0&&!string.IsNullOrEmpty(_LimitLength)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[éé¿]{_LimitLength}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.LimitLength = outLimitLength; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_LimitWidth)) |
| | | { |
| | | if (!decimal.TryParse(_LimitWidth, out decimal outLimitWidth)&&!string.IsNullOrEmpty(_LimitWidth)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é宽]{_LimitWidth}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outLimitWidth <= 0&&!string.IsNullOrEmpty(_LimitWidth)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[é宽]{_LimitWidth}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.LimitWidth = outLimitWidth; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_LimitHeight)) |
| | | { |
| | | if (!decimal.TryParse(_LimitHeight, out decimal outLimitHeight)&&!string.IsNullOrEmpty(_LimitHeight)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[éé«]{_LimitHeight}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outLimitHeight <= 0&&!string.IsNullOrEmpty(_LimitHeight)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[éé«]{_LimitHeight}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.LimitHeight = outLimitHeight; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_MaxWeight)) |
| | | { |
| | | if (!decimal.TryParse(_MaxWeight, out decimal outMaxWeight)&&!string.IsNullOrEmpty(_MaxWeight)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[è½½éä¸é]{_MaxWeight}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outMaxWeight <= 0&&!string.IsNullOrEmpty(_MaxWeight)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[è½½éä¸é]{_MaxWeight}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MaxWeight = outMaxWeight; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_ParentContainerName)) |
| | | { |
| | | addItem.ParentContainerName = (string)_ParentContainerName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_ParentContainerId)) |
| | | { |
| | | if (!long.TryParse(_ParentContainerId, out long outParentContainerId)&&!string.IsNullOrEmpty(_ParentContainerId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç¶å®¹å¨Id]{_ParentContainerId}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outParentContainerId <= 0&&!string.IsNullOrEmpty(_ParentContainerId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç¶å®¹å¨Id]{_ParentContainerId}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.ParentContainerId = outParentContainerId; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsVirtually)) |
| | | { |
| | | if (!int.TryParse(_IsVirtually, out int outIsVirtually)&&!string.IsNullOrEmpty(_IsVirtually)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦èæ]{_IsVirtually}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outIsVirtually <= 0&&!string.IsNullOrEmpty(_IsVirtually)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦èæ]{_IsVirtually}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.IsVirtually = outIsVirtually; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if(!_IsDisabled.Equals("æ¯") && !_IsDisabled.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦ç¦ç¨]{_IsDisabled}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsDisabled = _IsDisabled.Equals("æ¯") ? true : false; |
| | | addItem.IsDisabled = outIsDisabled; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outId <= 0&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Id = outId; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | details.Add(addItem); |
| | | } |
| | | //éªé |
| | | await CheckExisitForImport(details); |
| | | |
| | | return details; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½å®¹å¨ä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | | [HttpGet("WmsContainer/downloadExcelTemplate")] |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsContainer{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(容å¨ä¿¡æ¯).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç§ææ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-æ°æ®åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <param name="isEdit"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisit( WmsContainer input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//æ°å¢ |
| | | { |
| | | //æ°æ®æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsContainerRep.AnyAsync(u => |
| | | u.ContainerCode.Equals(input.ContainerCode) |
| | | ,false); |
| | | } |
| | | else//ç¼è¾ |
| | | { |
| | | |
| | | |
| | | |
| | | //å½åç¼è¾æ°æ®ä»¥å¤æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsContainerRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.ContainerCode.Equals(input.ContainerCode) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsContainer> inputs) |
| | | { |
| | | //æ ¹æ®èå主é®éªè¯è¡¨æ ¼ä¸ä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导å
¥æ°æ®ä¸è½ä¸ºç©º"); |
| | | } |
| | | //æ°æ®æ¯å¦éå¤ |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.ContainerCode |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.ContainerCode |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var wmsContainer = existExcelItem.Adapt<WmsContainer>(); |
| | | var item= existExcelItem.Adapt<WmsContainer>(); |
| | | throw Oops.Oh($"导å
¥çè¡¨æ ¼ä¸,ç¼å·[{item.ContainerCode}]å·²åå¨"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //æ ¹æ®èå主é®éªè¯æ°æ®åºä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | var existDBItem = await _wmsContainerRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.ContainerCode |
| | | ) |
| | | .Contains("" |
| | | +w.ContainerCode |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var wmsContainer = existExcelItem.Adapt<WmsContainer>(); |
| | | var item= existExcelItem.Adapt<WmsContainer>(); |
| | | throw Oops.Oh($"ç³»ç»ä¸,ç¼å·[{item.ContainerCode}]å·²åå¨"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨æ¥è¯¢åæ° |
| | | /// 容å¨å
³ç³»æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsContainerPackagingSearch : PageInputBase |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨ä¸å页æ¥è¯¢åæ° |
| | | /// 容å¨å
³ç³»ä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsContainerPackagingSearchNonPage : PageInputNonPageBase |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨è¾å
¥åæ° |
| | | /// 容å¨å
³ç³»è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsContainerPackagingInput |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨æ°å¢åæ° |
| | | /// 容å¨å
³ç³»æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsContainerPackagingInput : WmsContainerPackagingInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨å é¤åæ° |
| | | /// 容å¨å
³ç³»å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsContainerPackagingInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨æ´æ°åæ° |
| | | /// 容å¨å
³ç³»æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsContainerPackagingInput : WmsContainerPackagingInput |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨è·ååä¸ªåæ° |
| | | /// 容å¨å
³ç³»è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsContainerPackagingInput : BaseId |
| | | { |
| | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨è¾åºåæ° |
| | | /// 容å¨å
³ç³»è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsContainerPackagingOutput |
| | | { |
| | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// 容å¨å
³ç³»åºç¡è¡¨æå¡ |
| | | /// 容å¨å
³ç³»æå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsContainerPackaging", Order = 100)] |
| | | [Route("api")] |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢å®¹å¨å
³ç³»åºç¡è¡¨ |
| | | /// å页æ¥è¯¢å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢å®¹å¨å
³ç³»åºç¡è¡¨å表 |
| | | /// ä¸å页æ¥è¯¢å®¹å¨å
³ç³»å表 |
| | | /// </summary> |
| | | /// <param name="input">容å¨å
³ç³»åºç¡è¡¨æ¥è¯¢åæ°</param> |
| | | /// <returns>(容å¨å
³ç³»åºç¡è¡¨)å®ä¾å表</returns> |
| | | /// <param name="input">容å¨å
³ç³»æ¥è¯¢åæ°</param> |
| | | /// <returns>(容å¨å
³ç³»)å®ä¾å表</returns> |
| | | [HttpGet("WmsContainerPackaging/listNonPage")] |
| | | public async Task<List<WmsContainerPackagingOutput>> ListNonPageAsync([FromQuery] WmsContainerPackagingSearchNonPage input) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å容å¨å
³ç³»åºç¡è¡¨ |
| | | /// è·å容å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å容å¨å
³ç³»åºç¡è¡¨å表 |
| | | /// è·å容å¨å
³ç³»å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å 容å¨å
³ç³»åºç¡è¡¨ |
| | | /// å¢å 容å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å®¹å¨å
³ç³»åºç¡è¡¨ |
| | | /// å é¤å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°å®¹å¨å
³ç³»åºç¡è¡¨ |
| | | /// æ´æ°å®¹å¨å
³ç³» |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥å®¹å¨å
³ç³»åºç¡è¡¨åè½ |
| | | /// Excel模æ¿å¯¼å
¥å®¹å¨å
³ç³»åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½å®¹å¨å
³ç³»åºç¡è¡¨çExcel导å
¥æ¨¡æ¿ |
| | | /// æ ¹æ®çæ¬ä¸è½½å®¹å¨å
³ç³»çExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsContainerPackaging{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(容å¨å
³ç³»åºç¡è¡¨).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(容å¨å
³ç³»).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»åæ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsContainerTypeSearch : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// ç±»åç¼å· |
| | | /// </summary> |
| | | public virtual string TypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string TypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦åæ¶ |
| | | /// </summary> |
| | | public virtual bool? IsAllowReclaim { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½ |
| | | /// </summary> |
| | | public virtual string Unit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä½¿ç¨æé |
| | | /// </summary> |
| | | public virtual string UsagePeriod { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»åä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsContainerTypeSearchNonPage : PageInputNonPageBase |
| | | { |
| | | /// <summary> |
| | | /// ç±»åç¼å· |
| | | /// </summary> |
| | | public virtual string TypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string TypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦åæ¶ |
| | | /// </summary> |
| | | public virtual bool? IsAllowReclaim { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½ |
| | | /// </summary> |
| | | public virtual string Unit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä½¿ç¨æé |
| | | /// </summary> |
| | | public virtual string UsagePeriod { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»åè¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsContainerTypeInput |
| | | { |
| | | /// <summary> |
| | | /// ç±»åç¼å· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç±»åç¼å·ä¸è½ä¸ºç©º")] |
| | | public virtual string TypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç±»ååç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string TypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦åæ¶ |
| | | /// </summary> |
| | | [Required(ErrorMessage = "æ¯å¦åæ¶ä¸è½ä¸ºç©º")] |
| | | public virtual bool IsAllowReclaim { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½ |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åä½ä¸è½ä¸ºç©º")] |
| | | public virtual string Unit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä½¿ç¨æé |
| | | /// </summary> |
| | | public virtual string UsagePeriod { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»åæ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsContainerTypeInput : WmsContainerTypeInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»åå é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsContainerTypeInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»åæ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsContainerTypeInput : WmsContainerTypeInput |
| | | { |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主é®ä¸è½ä¸ºç©º")] |
| | | public long? Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç±»åè·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsContainerTypeInput : BaseId |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core.Util.LowCode.Dto; |
| | | using System; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// 容å¨ç±»åè¾åºåæ° |
| | | /// </summary> |
| | | public class WmsContainerTypeOutput |
| | | { |
| | | /// <summary> |
| | | /// ç±»åç¼å· |
| | | /// </summary> |
| | | public string TypeCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç±»ååç§° |
| | | /// </summary> |
| | | public string TypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦åæ¶ |
| | | /// </summary> |
| | | public bool IsAllowReclaim { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½ |
| | | /// </summary> |
| | | public string Unit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä½¿ç¨æé |
| | | /// </summary> |
| | | public string UsagePeriod { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | public long? Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public interface IWmsContainerTypeService |
| | | { |
| | | Task<WmsContainerTypeOutput> Get([FromQuery] QueryeWmsContainerTypeInput input); |
| | | Task<List<WmsContainerTypeOutput>> List([FromQuery] WmsContainerTypeInput input); |
| | | Task<PageResult<WmsContainerTypeOutput>> Page([FromQuery] WmsContainerTypeSearch input); |
| | | Task<List<WmsContainerTypeOutput>> ListNonPageAsync([FromQuery] WmsContainerTypeSearchNonPage input); |
| | | |
| | | Task Add(AddWmsContainerTypeInput input); |
| | | Task Update(UpdateWmsContainerTypeInput input); |
| | | Task Delete(DeleteWmsContainerTypeInput input); |
| | | Task<int> ImportExcelAsync(IFormFile file); |
| | | IActionResult DownloadExcelTemplate(string version); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public class WmsContainerTypeMapper : IRegister |
| | | { |
| | | public void Register(TypeAdapterConfig config) |
| | | { |
| | | config.ForType<AddWmsContainerTypeInput, WmsContainerType>() |
| | | ; |
| | | config.ForType<UpdateWmsContainerTypeInput, WmsContainerType>() |
| | | ; |
| | | config.ForType<WmsContainerType, WmsContainerTypeOutput>() |
| | | ; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.DatabaseAccessor.Extensions; |
| | | using Furion.DependencyInjection; |
| | | using Furion.DynamicApiController; |
| | | using Furion.FriendlyException; |
| | | using Admin.NET.Core; |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System.Linq.Dynamic.Core; |
| | | using Microsoft.AspNetCore.Http; |
| | | using System.Text; |
| | | using System.Web; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// 容å¨ç±»åæå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsContainerType", Order = 100)] |
| | | [Route("api")] |
| | | public class WmsContainerTypeService : IWmsContainerTypeService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsContainerType,MasterDbContextLocator> _wmsContainerTypeRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsContainerTypeService( |
| | | IRepository<WmsContainerType,MasterDbContextLocator> wmsContainerTypeRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsContainerTypeRep = wmsContainerTypeRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢å®¹å¨ç±»å |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsContainerType/page")] |
| | | public async Task<PageResult<WmsContainerTypeOutput>> Page([FromQuery] WmsContainerTypeSearch input) |
| | | { |
| | | var wmsContainerTypes = await _wmsContainerTypeRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(input.TypeCode), u => u.TypeCode == input.TypeCode) |
| | | .Where(!string.IsNullOrEmpty(input.TypeName), u => u.TypeName == input.TypeName) |
| | | .Where(input.IsAllowReclaim != null, u => u.IsAllowReclaim == input.IsAllowReclaim) |
| | | .Where(!string.IsNullOrEmpty(input.Unit), u => u.Unit == input.Unit) |
| | | .Where(!string.IsNullOrEmpty(input.UsagePeriod), u => u.UsagePeriod == input.UsagePeriod) |
| | | .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderBuilder<WmsContainerTypeSearch>(input)) |
| | | .ProjectToType<WmsContainerTypeOutput>() |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return wmsContainerTypes; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢å®¹å¨ç±»åå表 |
| | | /// </summary> |
| | | /// <param name="input">容å¨ç±»åæ¥è¯¢åæ°</param> |
| | | /// <returns>(容å¨ç±»å)å®ä¾å表</returns> |
| | | [HttpGet("WmsContainerType/listNonPage")] |
| | | public async Task<List<WmsContainerTypeOutput>> ListNonPageAsync([FromQuery] WmsContainerTypeSearchNonPage input) |
| | | { |
| | | var pTypeCode = input.TypeCode?.Trim() ?? ""; |
| | | var pTypeName = input.TypeName?.Trim() ?? ""; |
| | | var pIsAllowReclaim = input.IsAllowReclaim; |
| | | var pUnit = input.Unit?.Trim() ?? ""; |
| | | var pUsagePeriod = input.UsagePeriod?.Trim() ?? ""; |
| | | var pIsDisabled = input.IsDisabled; |
| | | var pCreatedTime = input.CreatedTime; |
| | | var pUpdatedTime = input.UpdatedTime; |
| | | var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var wmsContainerTypes = await _wmsContainerTypeRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(pTypeCode), u => u.TypeCode == pTypeCode) |
| | | .Where(!string.IsNullOrEmpty(pTypeName), u => u.TypeName == pTypeName) |
| | | .Where(pIsAllowReclaim != null, u => u.IsAllowReclaim == pIsAllowReclaim) |
| | | .Where(!string.IsNullOrEmpty(pUnit), u => u.Unit == pUnit) |
| | | .Where(!string.IsNullOrEmpty(pUsagePeriod), u => u.UsagePeriod == pUsagePeriod) |
| | | .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderNonPageBuilder(input)) |
| | | .ProjectToType<WmsContainerTypeOutput>() |
| | | .ToListAsync(); |
| | | return wmsContainerTypes; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å容å¨ç±»å |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsContainerType/detail")] |
| | | public async Task<WmsContainerTypeOutput> Get([FromQuery] QueryeWmsContainerTypeInput input) |
| | | { |
| | | return (await _wmsContainerTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsContainerTypeOutput>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å容å¨ç±»åå表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsContainerType/list")] |
| | | public async Task<List<WmsContainerTypeOutput>> List([FromQuery] WmsContainerTypeInput input) |
| | | { |
| | | return await _wmsContainerTypeRep.DetachedEntities.ProjectToType<WmsContainerTypeOutput>().ToListAsync(); |
| | | } |
| | | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å 容å¨ç±»å |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsContainerType/add")] |
| | | public async Task Add(AddWmsContainerTypeInput input) |
| | | { |
| | | var wmsContainerType = input.Adapt<WmsContainerType>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsContainerType); |
| | | |
| | | wmsContainerType.CreatedUserId = wmsContainerType.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsContainerType.CreatedUserName = wmsContainerType.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsContainerType.CreatedTime = wmsContainerType.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsContainerTypeRep.InsertAsync(wmsContainerType); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å®¹å¨ç±»å |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsContainerType/delete")] |
| | | public async Task Delete(DeleteWmsContainerTypeInput input) |
| | | { |
| | | var wmsContainerType = await _wmsContainerTypeRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsContainerTypeRep.DeleteAsync(wmsContainerType); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°å®¹å¨ç±»å |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsContainerType/edit")] |
| | | public async Task Update(UpdateWmsContainerTypeInput input) |
| | | { |
| | | var isExist = await _wmsContainerTypeRep.AnyAsync(u => u.Id == input.Id, false); |
| | | if (!isExist) throw Oops.Oh(ErrorCode.D1002); |
| | | |
| | | var wmsContainerType = input.Adapt<WmsContainerType>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsContainerType,true); |
| | | |
| | | wmsContainerType.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsContainerType.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsContainerType.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsContainerTypeRep.UpdateAsync(wmsContainerType,ignoreNullValues:true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥å®¹å¨ç±»ååè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | | [HttpPost("WmsContainerType/importExcel")] |
| | | public async Task<int> ImportExcelAsync(IFormFile file) |
| | | { |
| | | int _HeadStartLine = 2;//第1è¡æ¯è¯´æ,第2è¡æ¯åå |
| | | int _DataStartLine = 3;//第3è¡å¼å§æ¯æ°æ® |
| | | |
| | | DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine); |
| | | var addList =await CommonImport(importDataTable, _DataStartLine); |
| | | |
| | | lock (_lock) |
| | | { |
| | | _wmsContainerTypeRep.InsertAsync(addList); |
| | | |
| | | } |
| | | await Task.CompletedTask; |
| | | return addList.Count; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// DataTable转æ¢å®ä½å¯¹è±¡å表 |
| | | /// </summary> |
| | | /// <param name="dataTable"></param> |
| | | /// <param name="dataStartLine">模çååå¼å§è¡</param> |
| | | /// <returns></returns> |
| | | private async Task<List<WmsContainerType>> CommonImport(DataTable dataTable, int dataStartLine) |
| | | { |
| | | |
| | | var details = new List<WmsContainerType>(); |
| | | int index = dataStartLine;//模çååå¼å§è¡ |
| | | foreach (System.Data.DataRow row in dataTable.Rows) |
| | | { |
| | | index++; |
| | | |
| | | //导å
¥æ¨¡çå®å¶å代ç ï¼æ¿æ¢æ¨¡ç使ç¨ï¼ |
| | | |
| | | var addItem = new WmsContainerType() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region å®ä¹åé |
| | | var _TypeCode = "";//ç±»åç¼å· |
| | | var _TypeName = "";//ç±»ååç§° |
| | | var _IsAllowReclaim = "";//æ¯å¦åæ¶ |
| | | var _Unit = "";//åä½ |
| | | var _UsagePeriod = "";//ä½¿ç¨æé |
| | | var _IsDisabled = "";//æ¯å¦ç¦ç¨ |
| | | var _Id = "";//Idä¸»é® |
| | | #endregion |
| | | |
| | | |
| | | #region åå¼ |
| | | _TypeCode = row["ç±»åç¼å·"]?.ToString() ; |
| | | _TypeName = row["ç±»ååç§°"]?.ToString() ; |
| | | _IsAllowReclaim = row["æ¯å¦åæ¶"]?.ToString() ; |
| | | _Unit = row["åä½"]?.ToString() ; |
| | | _UsagePeriod = row["ä½¿ç¨æé"]?.ToString() ; |
| | | _IsDisabled = row["æ¯å¦ç¦ç¨"]?.ToString() ; |
| | | _Id = row["Id主é®"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region éªè¯ |
| | | |
| | | if (string.IsNullOrEmpty(_TypeCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»åç¼å·]{_TypeCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_TypeCode)) |
| | | { |
| | | addItem.TypeCode = (string)_TypeCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_TypeName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç±»ååç§°]{_TypeName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_TypeName)) |
| | | { |
| | | addItem.TypeName = (string)_TypeName; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_IsAllowReclaim)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦åæ¶]{_IsAllowReclaim}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsAllowReclaim)) |
| | | { |
| | | if(!_IsAllowReclaim.Equals("æ¯") && !_IsAllowReclaim.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦åæ¶]{_IsAllowReclaim}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsAllowReclaim = _IsAllowReclaim.Equals("æ¯") ? true : false; |
| | | addItem.IsAllowReclaim = outIsAllowReclaim; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (string.IsNullOrEmpty(_Unit)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åä½]{_Unit}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Unit)) |
| | | { |
| | | addItem.Unit = (string)_Unit; |
| | | } |
| | | if(!string.IsNullOrEmpty(_UsagePeriod)) |
| | | { |
| | | addItem.UsagePeriod = (string)_UsagePeriod; |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if(!_IsDisabled.Equals("æ¯") && !_IsDisabled.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦ç¦ç¨]{_IsDisabled}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsDisabled = _IsDisabled.Equals("æ¯") ? true : false; |
| | | addItem.IsDisabled = outIsDisabled; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outId <= 0&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Id = outId; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | details.Add(addItem); |
| | | } |
| | | //éªé |
| | | await CheckExisitForImport(details); |
| | | |
| | | return details; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½å®¹å¨ç±»åçExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | | [HttpGet("WmsContainerType/downloadExcelTemplate")] |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsContainerType{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(容å¨ç±»å).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç§ææ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-æ°æ®åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <param name="isEdit"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisit( WmsContainerType input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//æ°å¢ |
| | | { |
| | | //æ°æ®æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsContainerTypeRep.AnyAsync(u => |
| | | u.TypeCode.Equals(input.TypeCode) |
| | | ,false); |
| | | } |
| | | else//ç¼è¾ |
| | | { |
| | | |
| | | |
| | | |
| | | //å½åç¼è¾æ°æ®ä»¥å¤æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsContainerTypeRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.TypeCode.Equals(input.TypeCode) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsContainerType> inputs) |
| | | { |
| | | //æ ¹æ®èå主é®éªè¯è¡¨æ ¼ä¸ä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导å
¥æ°æ®ä¸è½ä¸ºç©º"); |
| | | } |
| | | //æ°æ®æ¯å¦éå¤ |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.TypeCode |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.TypeCode |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var wmsContainerType = existExcelItem.Adapt<WmsContainerType>(); |
| | | var item= existExcelItem.Adapt<WmsContainerType>(); |
| | | throw Oops.Oh($"导å
¥çè¡¨æ ¼ä¸,ç±»åç¼å·[{item.TypeCode}]å·²åå¨"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //æ ¹æ®èå主é®éªè¯æ°æ®åºä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | var existDBItem = await _wmsContainerTypeRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.TypeCode |
| | | ) |
| | | .Contains("" |
| | | +w.TypeCode |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var wmsContainerType = existExcelItem.Adapt<WmsContainerType>(); |
| | | var item= existExcelItem.Adapt<WmsContainerType>(); |
| | | throw Oops.Oh($"ç³»ç»ä¸,ç±»åç¼å·[{item.TypeCode}]å·²åå¨"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | { |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨æ¥è¯¢åæ° |
| | | /// å·¥åä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsFactorySearch : PageInputBase |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨ä¸å页æ¥è¯¢åæ° |
| | | /// å·¥åä¿¡æ¯ä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsFactorySearchNonPage : PageInputNonPageBase |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨è¾å
¥åæ° |
| | | /// å·¥åä¿¡æ¯è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsFactoryInput |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨æ°å¢åæ° |
| | | /// å·¥åä¿¡æ¯æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsFactoryInput : WmsFactoryInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨å é¤åæ° |
| | | /// å·¥åä¿¡æ¯å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsFactoryInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨æ´æ°åæ° |
| | | /// å·¥åä¿¡æ¯æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsFactoryInput : WmsFactoryInput |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨è·ååä¸ªåæ° |
| | | /// å·¥åä¿¡æ¯è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsFactoryInput : BaseId |
| | | { |
| | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨è¾åºåæ° |
| | | /// å·¥åä¿¡æ¯è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsFactoryOutput |
| | | { |
| | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨æå¡ |
| | | /// å·¥åä¿¡æ¯æå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsFactory", Order = 100)] |
| | | [Route("api")] |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢å·¥åä¿¡æ¯è¡¨ |
| | | /// å页æ¥è¯¢å·¥åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢å·¥åä¿¡æ¯è¡¨å表 |
| | | /// ä¸å页æ¥è¯¢å·¥åä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input">å·¥åä¿¡æ¯è¡¨æ¥è¯¢åæ°</param> |
| | | /// <returns>(å·¥åä¿¡æ¯è¡¨)å®ä¾å表</returns> |
| | | /// <param name="input">å·¥åä¿¡æ¯æ¥è¯¢åæ°</param> |
| | | /// <returns>(å·¥åä¿¡æ¯)å®ä¾å表</returns> |
| | | [HttpGet("WmsFactory/listNonPage")] |
| | | public async Task<List<WmsFactoryOutput>> ListNonPageAsync([FromQuery] WmsFactorySearchNonPage input) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå·¥åä¿¡æ¯è¡¨ |
| | | /// è·åå·¥åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå·¥åä¿¡æ¯è¡¨å表 |
| | | /// è·åå·¥åä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å å·¥åä¿¡æ¯è¡¨ |
| | | /// å¢å å·¥åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å·¥åä¿¡æ¯è¡¨ |
| | | /// å é¤å·¥åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°å·¥åä¿¡æ¯è¡¨ |
| | | /// æ´æ°å·¥åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥å·¥åä¿¡æ¯è¡¨åè½ |
| | | /// Excel模æ¿å¯¼å
¥å·¥åä¿¡æ¯åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½å·¥åä¿¡æ¯è¡¨çExcel导å
¥æ¨¡æ¿ |
| | | /// æ ¹æ®çæ¬ä¸è½½å·¥åä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsFactory{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(å·¥åä¿¡æ¯è¡¨).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(å·¥åä¿¡æ¯).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsPlaceSearch : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | public virtual string PlaceCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½åç§° |
| | | /// </summary> |
| | | public virtual string PlaceName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å«å |
| | | /// </summary> |
| | | public virtual string PlaceAlias { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | public virtual int? PlaceType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string PlaceTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ¾åä½ |
| | | /// </summary> |
| | | public virtual string StockUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å±æ§ |
| | | /// </summary> |
| | | public virtual int? PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å åæºåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsSrmPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å åæºåºä½å· |
| | | /// </summary> |
| | | public virtual string SrmPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦RGVåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsRgvPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// RGVåºä½å· |
| | | /// </summary> |
| | | public virtual string RgvPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦AGVåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsAgvPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// AGVåºä½å· |
| | | /// </summary> |
| | | public virtual string AgvPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦è¾é线åºä½ |
| | | /// </summary> |
| | | public virtual bool? IsTransPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¾é线åºä½å· |
| | | /// </summary> |
| | | public virtual string TransPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦ |
| | | /// </summary> |
| | | public virtual bool? IsActivateWCS { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç¯å¢ |
| | | /// </summary> |
| | | public virtual string Environment { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public virtual string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public virtual long? AreaId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public virtual string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç |
| | | /// </summary> |
| | | public virtual string VerificationCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public virtual int? RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public virtual int? ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public virtual int? LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public virtual int? LaneNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Xåæ |
| | | /// </summary> |
| | | public virtual string Xzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Yåæ |
| | | /// </summary> |
| | | public virtual string Yzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Zåæ |
| | | /// </summary> |
| | | public virtual string Zzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½é¿åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å®½åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Width { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½é«åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Height { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¤§æ¿é |
| | | /// </summary> |
| | | public virtual decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºé¡ºåº |
| | | /// </summary> |
| | | public virtual int? InSequence { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºé¡ºåº |
| | | /// </summary> |
| | | public virtual int? OutSequence { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual bool? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯ä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsPlaceSearchNonPage : PageInputNonPageBase |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | public virtual string PlaceCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½åç§° |
| | | /// </summary> |
| | | public virtual string PlaceName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å«å |
| | | /// </summary> |
| | | public virtual string PlaceAlias { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | public virtual int? PlaceType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string PlaceTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ¾åä½ |
| | | /// </summary> |
| | | public virtual string StockUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å±æ§ |
| | | /// </summary> |
| | | public virtual int? PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å åæºåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsSrmPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å åæºåºä½å· |
| | | /// </summary> |
| | | public virtual string SrmPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦RGVåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsRgvPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// RGVåºä½å· |
| | | /// </summary> |
| | | public virtual string RgvPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦AGVåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsAgvPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// AGVåºä½å· |
| | | /// </summary> |
| | | public virtual string AgvPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦è¾é线åºä½ |
| | | /// </summary> |
| | | public virtual bool? IsTransPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¾é线åºä½å· |
| | | /// </summary> |
| | | public virtual string TransPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦ |
| | | /// </summary> |
| | | public virtual bool? IsActivateWCS { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç¯å¢ |
| | | /// </summary> |
| | | public virtual string Environment { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public virtual string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public virtual long? AreaId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public virtual string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç |
| | | /// </summary> |
| | | public virtual string VerificationCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public virtual int? RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public virtual int? ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public virtual int? LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public virtual int? LaneNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Xåæ |
| | | /// </summary> |
| | | public virtual string Xzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Yåæ |
| | | /// </summary> |
| | | public virtual string Yzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Zåæ |
| | | /// </summary> |
| | | public virtual string Zzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½é¿åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å®½åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Width { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½é«åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Height { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¤§æ¿é |
| | | /// </summary> |
| | | public virtual decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºé¡ºåº |
| | | /// </summary> |
| | | public virtual int? InSequence { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºé¡ºåº |
| | | /// </summary> |
| | | public virtual int? OutSequence { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual bool? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsPlaceInput |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åºä½ç¼ç ä¸è½ä¸ºç©º")] |
| | | public virtual string PlaceCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½åç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åºä½åç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string PlaceName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å«å |
| | | /// </summary> |
| | | public virtual string PlaceAlias { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åºä½ç±»åä¸è½ä¸ºç©º")] |
| | | public virtual int PlaceType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»ååç§° |
| | | /// </summary> |
| | | public virtual string PlaceTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ¾åä½ |
| | | /// </summary> |
| | | public virtual string StockUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å±æ§ |
| | | /// </summary> |
| | | public virtual int? PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å åæºåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsSrmPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å åæºåºä½å· |
| | | /// </summary> |
| | | public virtual string SrmPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦RGVåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsRgvPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// RGVåºä½å· |
| | | /// </summary> |
| | | public virtual string RgvPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦AGVåºä½ |
| | | /// </summary> |
| | | public virtual bool? IsAgvPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// AGVåºä½å· |
| | | /// </summary> |
| | | public virtual string AgvPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦è¾é线åºä½ |
| | | /// </summary> |
| | | public virtual bool? IsTransPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¾é线åºä½å· |
| | | /// </summary> |
| | | public virtual string TransPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦ |
| | | /// </summary> |
| | | public virtual bool? IsActivateWCS { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç¯å¢ |
| | | /// </summary> |
| | | public virtual string Environment { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public virtual string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public virtual long? AreaId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public virtual string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç |
| | | /// </summary> |
| | | public virtual string VerificationCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public virtual int? RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public virtual int? ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public virtual int? LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public virtual int? LaneNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Xåæ |
| | | /// </summary> |
| | | public virtual string Xzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Yåæ |
| | | /// </summary> |
| | | public virtual string Yzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Zåæ |
| | | /// </summary> |
| | | public virtual string Zzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½é¿åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å®½åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Width { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½é«åº¦ |
| | | /// </summary> |
| | | public virtual decimal? Height { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¤§æ¿é |
| | | /// </summary> |
| | | public virtual decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºé¡ºåº |
| | | /// </summary> |
| | | public virtual int? InSequence { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºé¡ºåº |
| | | /// </summary> |
| | | public virtual int? OutSequence { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public virtual bool? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsPlaceInput : WmsPlaceInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsPlaceInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsPlaceInput : WmsPlaceInput |
| | | { |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主é®ä¸è½ä¸ºç©º")] |
| | | public long? Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsPlaceInput : BaseId |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core.Util.LowCode.Dto; |
| | | using System; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsPlaceOutput |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | public string PlaceCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½åç§° |
| | | /// </summary> |
| | | public string PlaceName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å«å |
| | | /// </summary> |
| | | public string PlaceAlias { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | public int PlaceType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç±»ååç§° |
| | | /// </summary> |
| | | public string PlaceTypeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ¾åä½ |
| | | /// </summary> |
| | | public string StockUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å±æ§ |
| | | /// </summary> |
| | | public int? PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å åæºåºä½ |
| | | /// </summary> |
| | | public bool? IsSrmPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å åæºåºä½å· |
| | | /// </summary> |
| | | public string SrmPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦RGVåºä½ |
| | | /// </summary> |
| | | public bool? IsRgvPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// RGVåºä½å· |
| | | /// </summary> |
| | | public string RgvPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦AGVåºä½ |
| | | /// </summary> |
| | | public bool? IsAgvPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// AGVåºä½å· |
| | | /// </summary> |
| | | public string AgvPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦è¾é线åºä½ |
| | | /// </summary> |
| | | public bool? IsTransPlace { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¾é线åºä½å· |
| | | /// </summary> |
| | | public string TransPlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦ |
| | | /// </summary> |
| | | public bool? IsActivateWCS { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåç¯å¢ |
| | | /// </summary> |
| | | public string Environment { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public long? AreaId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ£éªç |
| | | /// </summary> |
| | | public string VerificationCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public int? RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public int? ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public int? LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int? LaneNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Xåæ |
| | | /// </summary> |
| | | public string Xzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Yåæ |
| | | /// </summary> |
| | | public string Yzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½Zåæ |
| | | /// </summary> |
| | | public string Zzb { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½é¿åº¦ |
| | | /// </summary> |
| | | public decimal? Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½å®½åº¦ |
| | | /// </summary> |
| | | public decimal? Width { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½é«åº¦ |
| | | /// </summary> |
| | | public decimal? Height { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¤§æ¿é |
| | | /// </summary> |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºé¡ºåº |
| | | /// </summary> |
| | | public int? InSequence { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºé¡ºåº |
| | | /// </summary> |
| | | public int? OutSequence { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦èæ |
| | | /// </summary> |
| | | public bool? IsVirtually { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | public long? Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public interface IWmsPlaceService |
| | | { |
| | | Task<WmsPlaceOutput> Get([FromQuery] QueryeWmsPlaceInput input); |
| | | Task<List<WmsPlaceOutput>> List([FromQuery] WmsPlaceInput input); |
| | | Task<PageResult<WmsPlaceOutput>> Page([FromQuery] WmsPlaceSearch input); |
| | | Task<List<WmsPlaceOutput>> ListNonPageAsync([FromQuery] WmsPlaceSearchNonPage input); |
| | | |
| | | Task Add(AddWmsPlaceInput input); |
| | | Task Update(UpdateWmsPlaceInput input); |
| | | Task Delete(DeleteWmsPlaceInput input); |
| | | Task<int> ImportExcelAsync(IFormFile file); |
| | | IActionResult DownloadExcelTemplate(string version); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public class WmsPlaceMapper : IRegister |
| | | { |
| | | public void Register(TypeAdapterConfig config) |
| | | { |
| | | config.ForType<AddWmsPlaceInput, WmsPlace>() |
| | | ; |
| | | config.ForType<UpdateWmsPlaceInput, WmsPlace>() |
| | | ; |
| | | config.ForType<WmsPlace, WmsPlaceOutput>() |
| | | ; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.DatabaseAccessor.Extensions; |
| | | using Furion.DependencyInjection; |
| | | using Furion.DynamicApiController; |
| | | using Furion.FriendlyException; |
| | | using Admin.NET.Core; |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System.Linq.Dynamic.Core; |
| | | using Microsoft.AspNetCore.Http; |
| | | using System.Text; |
| | | using System.Web; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// åºä½ä¿¡æ¯æå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsPlace", Order = 100)] |
| | | [Route("api")] |
| | | public class WmsPlaceService : IWmsPlaceService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsPlace,MasterDbContextLocator> _wmsPlaceRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsPlaceService( |
| | | IRepository<WmsPlace,MasterDbContextLocator> wmsPlaceRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsPlaceRep = wmsPlaceRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢åºä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsPlace/page")] |
| | | public async Task<PageResult<WmsPlaceOutput>> Page([FromQuery] WmsPlaceSearch input) |
| | | { |
| | | var wmsPlaces = await _wmsPlaceRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(input.PlaceCode), u => u.PlaceCode == input.PlaceCode) |
| | | .Where(!string.IsNullOrEmpty(input.PlaceName), u => u.PlaceName == input.PlaceName) |
| | | .Where(!string.IsNullOrEmpty(input.PlaceAlias), u => u.PlaceAlias == input.PlaceAlias) |
| | | .Where(input.PlaceType != null, u => u.PlaceType == input.PlaceType) |
| | | .Where(!string.IsNullOrEmpty(input.PlaceTypeName), u => u.PlaceTypeName == input.PlaceTypeName) |
| | | .Where(!string.IsNullOrEmpty(input.StockUnit), u => u.StockUnit == input.StockUnit) |
| | | .Where(input.PlaceStatus != null, u => u.PlaceStatus == input.PlaceStatus) |
| | | .Where(input.IsSrmPlace != null, u => u.IsSrmPlace == input.IsSrmPlace) |
| | | .Where(!string.IsNullOrEmpty(input.SrmPlaceNo), u => u.SrmPlaceNo == input.SrmPlaceNo) |
| | | .Where(input.IsRgvPlace != null, u => u.IsRgvPlace == input.IsRgvPlace) |
| | | .Where(!string.IsNullOrEmpty(input.RgvPlaceNo), u => u.RgvPlaceNo == input.RgvPlaceNo) |
| | | .Where(input.IsAgvPlace != null, u => u.IsAgvPlace == input.IsAgvPlace) |
| | | .Where(!string.IsNullOrEmpty(input.AgvPlaceNo), u => u.AgvPlaceNo == input.AgvPlaceNo) |
| | | .Where(input.IsTransPlace != null, u => u.IsTransPlace == input.IsTransPlace) |
| | | .Where(!string.IsNullOrEmpty(input.TransPlaceNo), u => u.TransPlaceNo == input.TransPlaceNo) |
| | | .Where(input.IsActivateWCS != null, u => u.IsActivateWCS == input.IsActivateWCS) |
| | | .Where(!string.IsNullOrEmpty(input.Environment), u => u.Environment == input.Environment) |
| | | .Where(!string.IsNullOrEmpty(input.AreaCode), u => u.AreaCode == input.AreaCode) |
| | | .Where(input.AreaId != null, u => u.AreaId == input.AreaId) |
| | | .Where(!string.IsNullOrEmpty(input.AreaName), u => u.AreaName == input.AreaName) |
| | | .Where(!string.IsNullOrEmpty(input.VerificationCode), u => u.VerificationCode == input.VerificationCode) |
| | | .Where(input.RowNo != null, u => u.RowNo == input.RowNo) |
| | | .Where(input.ColumnNo != null, u => u.ColumnNo == input.ColumnNo) |
| | | .Where(input.LayerNo != null, u => u.LayerNo == input.LayerNo) |
| | | .Where(input.LaneNo != null, u => u.LaneNo == input.LaneNo) |
| | | .Where(!string.IsNullOrEmpty(input.Xzb), u => u.Xzb == input.Xzb) |
| | | .Where(!string.IsNullOrEmpty(input.Yzb), u => u.Yzb == input.Yzb) |
| | | .Where(!string.IsNullOrEmpty(input.Zzb), u => u.Zzb == input.Zzb) |
| | | .Where(input.Length != null, u => u.Length == input.Length) |
| | | .Where(input.Width != null, u => u.Width == input.Width) |
| | | .Where(input.Height != null, u => u.Height == input.Height) |
| | | .Where(input.MaxWeight != null, u => u.MaxWeight == input.MaxWeight) |
| | | .Where(input.InSequence != null, u => u.InSequence == input.InSequence) |
| | | .Where(input.OutSequence != null, u => u.OutSequence == input.OutSequence) |
| | | .Where(input.IsVirtually != null, u => u.IsVirtually == input.IsVirtually) |
| | | .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderBuilder<WmsPlaceSearch>(input)) |
| | | .ProjectToType<WmsPlaceOutput>() |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return wmsPlaces; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢åºä½ä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input">åºä½ä¿¡æ¯æ¥è¯¢åæ°</param> |
| | | /// <returns>(åºä½ä¿¡æ¯)å®ä¾å表</returns> |
| | | [HttpGet("WmsPlace/listNonPage")] |
| | | public async Task<List<WmsPlaceOutput>> ListNonPageAsync([FromQuery] WmsPlaceSearchNonPage input) |
| | | { |
| | | var pPlaceCode = input.PlaceCode?.Trim() ?? ""; |
| | | var pPlaceName = input.PlaceName?.Trim() ?? ""; |
| | | var pPlaceAlias = input.PlaceAlias?.Trim() ?? ""; |
| | | var pPlaceType = input.PlaceType; |
| | | var pPlaceTypeName = input.PlaceTypeName?.Trim() ?? ""; |
| | | var pStockUnit = input.StockUnit?.Trim() ?? ""; |
| | | var pPlaceStatus = input.PlaceStatus; |
| | | var pIsSrmPlace = input.IsSrmPlace; |
| | | var pSrmPlaceNo = input.SrmPlaceNo?.Trim() ?? ""; |
| | | var pIsRgvPlace = input.IsRgvPlace; |
| | | var pRgvPlaceNo = input.RgvPlaceNo?.Trim() ?? ""; |
| | | var pIsAgvPlace = input.IsAgvPlace; |
| | | var pAgvPlaceNo = input.AgvPlaceNo?.Trim() ?? ""; |
| | | var pIsTransPlace = input.IsTransPlace; |
| | | var pTransPlaceNo = input.TransPlaceNo?.Trim() ?? ""; |
| | | var pIsActivateWCS = input.IsActivateWCS; |
| | | var pEnvironment = input.Environment?.Trim() ?? ""; |
| | | var pAreaCode = input.AreaCode?.Trim() ?? ""; |
| | | var pAreaId = input.AreaId; |
| | | var pAreaName = input.AreaName?.Trim() ?? ""; |
| | | var pVerificationCode = input.VerificationCode?.Trim() ?? ""; |
| | | var pRowNo = input.RowNo; |
| | | var pColumnNo = input.ColumnNo; |
| | | var pLayerNo = input.LayerNo; |
| | | var pLaneNo = input.LaneNo; |
| | | var pXzb = input.Xzb?.Trim() ?? ""; |
| | | var pYzb = input.Yzb?.Trim() ?? ""; |
| | | var pZzb = input.Zzb?.Trim() ?? ""; |
| | | var pLength = input.Length; |
| | | var pWidth = input.Width; |
| | | var pHeight = input.Height; |
| | | var pMaxWeight = input.MaxWeight; |
| | | var pInSequence = input.InSequence; |
| | | var pOutSequence = input.OutSequence; |
| | | var pIsVirtually = input.IsVirtually; |
| | | var pIsDisabled = input.IsDisabled; |
| | | var pCreatedTime = input.CreatedTime; |
| | | var pUpdatedTime = input.UpdatedTime; |
| | | var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var wmsPlaces = await _wmsPlaceRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(pPlaceCode), u => u.PlaceCode == pPlaceCode) |
| | | .Where(!string.IsNullOrEmpty(pPlaceName), u => u.PlaceName == pPlaceName) |
| | | .Where(!string.IsNullOrEmpty(pPlaceAlias), u => u.PlaceAlias == pPlaceAlias) |
| | | .Where(pPlaceType != null, u => u.PlaceType == pPlaceType) |
| | | .Where(!string.IsNullOrEmpty(pPlaceTypeName), u => u.PlaceTypeName == pPlaceTypeName) |
| | | .Where(!string.IsNullOrEmpty(pStockUnit), u => u.StockUnit == pStockUnit) |
| | | .Where(pPlaceStatus != null, u => u.PlaceStatus == pPlaceStatus) |
| | | .Where(pIsSrmPlace != null, u => u.IsSrmPlace == pIsSrmPlace) |
| | | .Where(!string.IsNullOrEmpty(pSrmPlaceNo), u => u.SrmPlaceNo == pSrmPlaceNo) |
| | | .Where(pIsRgvPlace != null, u => u.IsRgvPlace == pIsRgvPlace) |
| | | .Where(!string.IsNullOrEmpty(pRgvPlaceNo), u => u.RgvPlaceNo == pRgvPlaceNo) |
| | | .Where(pIsAgvPlace != null, u => u.IsAgvPlace == pIsAgvPlace) |
| | | .Where(!string.IsNullOrEmpty(pAgvPlaceNo), u => u.AgvPlaceNo == pAgvPlaceNo) |
| | | .Where(pIsTransPlace != null, u => u.IsTransPlace == pIsTransPlace) |
| | | .Where(!string.IsNullOrEmpty(pTransPlaceNo), u => u.TransPlaceNo == pTransPlaceNo) |
| | | .Where(pIsActivateWCS != null, u => u.IsActivateWCS == pIsActivateWCS) |
| | | .Where(!string.IsNullOrEmpty(pEnvironment), u => u.Environment == pEnvironment) |
| | | .Where(!string.IsNullOrEmpty(pAreaCode), u => u.AreaCode == pAreaCode) |
| | | .Where(pAreaId != null, u => u.AreaId == pAreaId) |
| | | .Where(!string.IsNullOrEmpty(pAreaName), u => u.AreaName == pAreaName) |
| | | .Where(!string.IsNullOrEmpty(pVerificationCode), u => u.VerificationCode == pVerificationCode) |
| | | .Where(pRowNo != null, u => u.RowNo == pRowNo) |
| | | .Where(pColumnNo != null, u => u.ColumnNo == pColumnNo) |
| | | .Where(pLayerNo != null, u => u.LayerNo == pLayerNo) |
| | | .Where(pLaneNo != null, u => u.LaneNo == pLaneNo) |
| | | .Where(!string.IsNullOrEmpty(pXzb), u => u.Xzb == pXzb) |
| | | .Where(!string.IsNullOrEmpty(pYzb), u => u.Yzb == pYzb) |
| | | .Where(!string.IsNullOrEmpty(pZzb), u => u.Zzb == pZzb) |
| | | .Where(pLength != null, u => u.Length == pLength) |
| | | .Where(pWidth != null, u => u.Width == pWidth) |
| | | .Where(pHeight != null, u => u.Height == pHeight) |
| | | .Where(pMaxWeight != null, u => u.MaxWeight == pMaxWeight) |
| | | .Where(pInSequence != null, u => u.InSequence == pInSequence) |
| | | .Where(pOutSequence != null, u => u.OutSequence == pOutSequence) |
| | | .Where(pIsVirtually != null, u => u.IsVirtually == pIsVirtually) |
| | | .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderNonPageBuilder(input)) |
| | | .ProjectToType<WmsPlaceOutput>() |
| | | .ToListAsync(); |
| | | return wmsPlaces; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååºä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsPlace/detail")] |
| | | public async Task<WmsPlaceOutput> Get([FromQuery] QueryeWmsPlaceInput input) |
| | | { |
| | | return (await _wmsPlaceRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsPlaceOutput>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååºä½ä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsPlace/list")] |
| | | public async Task<List<WmsPlaceOutput>> List([FromQuery] WmsPlaceInput input) |
| | | { |
| | | return await _wmsPlaceRep.DetachedEntities.ProjectToType<WmsPlaceOutput>().ToListAsync(); |
| | | } |
| | | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å åºä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsPlace/add")] |
| | | public async Task Add(AddWmsPlaceInput input) |
| | | { |
| | | var wmsPlace = input.Adapt<WmsPlace>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsPlace); |
| | | |
| | | wmsPlace.CreatedUserId = wmsPlace.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsPlace.CreatedUserName = wmsPlace.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsPlace.CreatedTime = wmsPlace.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsPlaceRep.InsertAsync(wmsPlace); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤åºä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsPlace/delete")] |
| | | public async Task Delete(DeleteWmsPlaceInput input) |
| | | { |
| | | var wmsPlace = await _wmsPlaceRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsPlaceRep.DeleteAsync(wmsPlace); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åºä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsPlace/edit")] |
| | | public async Task Update(UpdateWmsPlaceInput input) |
| | | { |
| | | var isExist = await _wmsPlaceRep.AnyAsync(u => u.Id == input.Id, false); |
| | | if (!isExist) throw Oops.Oh(ErrorCode.D1002); |
| | | |
| | | var wmsPlace = input.Adapt<WmsPlace>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsPlace,true); |
| | | |
| | | wmsPlace.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsPlace.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsPlace.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsPlaceRep.UpdateAsync(wmsPlace,ignoreNullValues:true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥åºä½ä¿¡æ¯åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | | [HttpPost("WmsPlace/importExcel")] |
| | | public async Task<int> ImportExcelAsync(IFormFile file) |
| | | { |
| | | int _HeadStartLine = 2;//第1è¡æ¯è¯´æ,第2è¡æ¯åå |
| | | int _DataStartLine = 3;//第3è¡å¼å§æ¯æ°æ® |
| | | |
| | | DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine); |
| | | var addList =await CommonImport(importDataTable, _DataStartLine); |
| | | |
| | | lock (_lock) |
| | | { |
| | | _wmsPlaceRep.InsertAsync(addList); |
| | | |
| | | } |
| | | await Task.CompletedTask; |
| | | return addList.Count; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// DataTable转æ¢å®ä½å¯¹è±¡å表 |
| | | /// </summary> |
| | | /// <param name="dataTable"></param> |
| | | /// <param name="dataStartLine">模çååå¼å§è¡</param> |
| | | /// <returns></returns> |
| | | private async Task<List<WmsPlace>> CommonImport(DataTable dataTable, int dataStartLine) |
| | | { |
| | | |
| | | var details = new List<WmsPlace>(); |
| | | int index = dataStartLine;//模çååå¼å§è¡ |
| | | foreach (System.Data.DataRow row in dataTable.Rows) |
| | | { |
| | | index++; |
| | | |
| | | //导å
¥æ¨¡çå®å¶å代ç ï¼æ¿æ¢æ¨¡ç使ç¨ï¼ |
| | | |
| | | var addItem = new WmsPlace() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region å®ä¹åé |
| | | var _PlaceCode = "";//åºä½ç¼ç |
| | | var _PlaceName = "";//åºä½åç§° |
| | | var _PlaceAlias = "";//åºä½å«å |
| | | var _PlaceType = "";//åºä½ç±»å |
| | | var _PlaceTypeName = "";//åºä½ç±»ååç§° |
| | | var _StockUnit = "";//åæ¾åä½ |
| | | var _PlaceStatus = "";//åºä½å±æ§ |
| | | var _IsSrmPlace = "";//æ¯å¦å åæºåºä½ |
| | | var _SrmPlaceNo = "";//å åæºåºä½å· |
| | | var _IsRgvPlace = "";//æ¯å¦RGVåºä½ |
| | | var _RgvPlaceNo = "";//RGVåºä½å· |
| | | var _IsAgvPlace = "";//æ¯å¦AGVåºä½ |
| | | var _AgvPlaceNo = "";//AGVåºä½å· |
| | | var _IsTransPlace = "";//æ¯å¦è¾é线åºä½ |
| | | var _TransPlaceNo = "";//è¾é线åºä½å· |
| | | var _IsActivateWCS = "";//æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦ |
| | | var _Environment = "";//åºåç¯å¢ |
| | | var _AreaCode = "";//åºåºç¼å· |
| | | var _AreaId = "";//æå¨åºåº |
| | | var _AreaName = "";//åºåºåç§° |
| | | var _VerificationCode = "";//æ£éªç |
| | | var _RowNo = "";//æ |
| | | var _ColumnNo = "";//å |
| | | var _LayerNo = "";//å± |
| | | var _LaneNo = "";//å··é |
| | | var _Xzb = "";//åºä½Xåæ |
| | | var _Yzb = "";//åºä½Yåæ |
| | | var _Zzb = "";//åºä½Zåæ |
| | | var _Length = "";//åºä½é¿åº¦ |
| | | var _Width = "";//åºä½å®½åº¦ |
| | | var _Height = "";//åºä½é«åº¦ |
| | | var _MaxWeight = "";//æå¤§æ¿é |
| | | var _InSequence = "";//å
¥åºé¡ºåº |
| | | var _OutSequence = "";//åºåºé¡ºåº |
| | | var _IsVirtually = "";//æ¯å¦èæ |
| | | var _IsDisabled = "";//æ¯å¦ç¦ç¨ |
| | | var _Id = "";//Idä¸»é® |
| | | #endregion |
| | | |
| | | |
| | | #region åå¼ |
| | | _PlaceCode = row["åºä½ç¼ç "]?.ToString() ; |
| | | _PlaceName = row["åºä½åç§°"]?.ToString() ; |
| | | _PlaceAlias = row["åºä½å«å"]?.ToString() ; |
| | | _PlaceType = row["åºä½ç±»å"]?.ToString() ; |
| | | _PlaceTypeName = row["åºä½ç±»ååç§°"]?.ToString() ; |
| | | _StockUnit = row["åæ¾åä½"]?.ToString() ; |
| | | _PlaceStatus = row["åºä½å±æ§"]?.ToString() ; |
| | | _IsSrmPlace = row["æ¯å¦å åæºåºä½"]?.ToString() ; |
| | | _SrmPlaceNo = row["å åæºåºä½å·"]?.ToString() ; |
| | | _IsRgvPlace = row["æ¯å¦RGVåºä½"]?.ToString() ; |
| | | _RgvPlaceNo = row["RGVåºä½å·"]?.ToString() ; |
| | | _IsAgvPlace = row["æ¯å¦AGVåºä½"]?.ToString() ; |
| | | _AgvPlaceNo = row["AGVåºä½å·"]?.ToString() ; |
| | | _IsTransPlace = row["æ¯å¦è¾é线åºä½"]?.ToString() ; |
| | | _TransPlaceNo = row["è¾é线åºä½å·"]?.ToString() ; |
| | | _IsActivateWCS = row["æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦"]?.ToString() ; |
| | | _Environment = row["åºåç¯å¢"]?.ToString() ; |
| | | _AreaCode = row["åºåºç¼å·"]?.ToString() ; |
| | | _AreaId = row["æå¨åºåº"]?.ToString() ; |
| | | _AreaName = row["åºåºåç§°"]?.ToString() ; |
| | | _VerificationCode = row["æ£éªç "]?.ToString() ; |
| | | _RowNo = row["æ"]?.ToString() ; |
| | | _ColumnNo = row["å"]?.ToString() ; |
| | | _LayerNo = row["å±"]?.ToString() ; |
| | | _LaneNo = row["å··é"]?.ToString() ; |
| | | _Xzb = row["åºä½Xåæ "]?.ToString() ; |
| | | _Yzb = row["åºä½Yåæ "]?.ToString() ; |
| | | _Zzb = row["åºä½Zåæ "]?.ToString() ; |
| | | _Length = row["åºä½é¿åº¦"]?.ToString() ; |
| | | _Width = row["åºä½å®½åº¦"]?.ToString() ; |
| | | _Height = row["åºä½é«åº¦"]?.ToString() ; |
| | | _MaxWeight = row["æå¤§æ¿é"]?.ToString() ; |
| | | _InSequence = row["å
¥åºé¡ºåº"]?.ToString() ; |
| | | _OutSequence = row["åºåºé¡ºåº"]?.ToString() ; |
| | | _IsVirtually = row["æ¯å¦èæ"]?.ToString() ; |
| | | _IsDisabled = row["æ¯å¦ç¦ç¨"]?.ToString() ; |
| | | _Id = row["Id主é®"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region éªè¯ |
| | | |
| | | if (string.IsNullOrEmpty(_PlaceCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½ç¼ç ]{_PlaceCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_PlaceCode)) |
| | | { |
| | | addItem.PlaceCode = (string)_PlaceCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_PlaceName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½åç§°]{_PlaceName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_PlaceName)) |
| | | { |
| | | addItem.PlaceName = (string)_PlaceName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_PlaceAlias)) |
| | | { |
| | | addItem.PlaceAlias = (string)_PlaceAlias; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_PlaceType)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½ç±»å]{_PlaceType}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_PlaceType)) |
| | | { |
| | | if (!int.TryParse(_PlaceType, out int outPlaceType)&&!string.IsNullOrEmpty(_PlaceType)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½ç±»å]{_PlaceType}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outPlaceType <= 0&&!string.IsNullOrEmpty(_PlaceType)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½ç±»å]{_PlaceType}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.PlaceType = outPlaceType; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_PlaceTypeName)) |
| | | { |
| | | addItem.PlaceTypeName = (string)_PlaceTypeName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_StockUnit)) |
| | | { |
| | | addItem.StockUnit = (string)_StockUnit; |
| | | } |
| | | if(!string.IsNullOrEmpty(_PlaceStatus)) |
| | | { |
| | | if (!int.TryParse(_PlaceStatus, out int outPlaceStatus)&&!string.IsNullOrEmpty(_PlaceStatus)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½å±æ§]{_PlaceStatus}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outPlaceStatus <= 0&&!string.IsNullOrEmpty(_PlaceStatus)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½å±æ§]{_PlaceStatus}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.PlaceStatus = outPlaceStatus; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsSrmPlace)) |
| | | { |
| | | if(!_IsSrmPlace.Equals("æ¯") && !_IsSrmPlace.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦å åæºåºä½]{_IsSrmPlace}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsSrmPlace = _IsSrmPlace.Equals("æ¯") ? true : false; |
| | | addItem.IsSrmPlace = outIsSrmPlace; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_SrmPlaceNo)) |
| | | { |
| | | addItem.SrmPlaceNo = (string)_SrmPlaceNo; |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsRgvPlace)) |
| | | { |
| | | if(!_IsRgvPlace.Equals("æ¯") && !_IsRgvPlace.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦RGVåºä½]{_IsRgvPlace}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsRgvPlace = _IsRgvPlace.Equals("æ¯") ? true : false; |
| | | addItem.IsRgvPlace = outIsRgvPlace; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_RgvPlaceNo)) |
| | | { |
| | | addItem.RgvPlaceNo = (string)_RgvPlaceNo; |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsAgvPlace)) |
| | | { |
| | | if(!_IsAgvPlace.Equals("æ¯") && !_IsAgvPlace.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦AGVåºä½]{_IsAgvPlace}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsAgvPlace = _IsAgvPlace.Equals("æ¯") ? true : false; |
| | | addItem.IsAgvPlace = outIsAgvPlace; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_AgvPlaceNo)) |
| | | { |
| | | addItem.AgvPlaceNo = (string)_AgvPlaceNo; |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsTransPlace)) |
| | | { |
| | | if(!_IsTransPlace.Equals("æ¯") && !_IsTransPlace.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦è¾é线åºä½]{_IsTransPlace}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsTransPlace = _IsTransPlace.Equals("æ¯") ? true : false; |
| | | addItem.IsTransPlace = outIsTransPlace; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_TransPlaceNo)) |
| | | { |
| | | addItem.TransPlaceNo = (string)_TransPlaceNo; |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsActivateWCS)) |
| | | { |
| | | if(!_IsActivateWCS.Equals("æ¯") && !_IsActivateWCS.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦æ¿æ´»ä¸ä»»å¡è°åº¦]{_IsActivateWCS}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsActivateWCS = _IsActivateWCS.Equals("æ¯") ? true : false; |
| | | addItem.IsActivateWCS = outIsActivateWCS; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Environment)) |
| | | { |
| | | addItem.Environment = (string)_Environment; |
| | | } |
| | | if(!string.IsNullOrEmpty(_AreaCode)) |
| | | { |
| | | addItem.AreaCode = (string)_AreaCode; |
| | | } |
| | | if(!string.IsNullOrEmpty(_AreaId)) |
| | | { |
| | | if (!long.TryParse(_AreaId, out long outAreaId)&&!string.IsNullOrEmpty(_AreaId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æå¨åºåº]{_AreaId}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outAreaId <= 0&&!string.IsNullOrEmpty(_AreaId)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æå¨åºåº]{_AreaId}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.AreaId = outAreaId; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_AreaName)) |
| | | { |
| | | addItem.AreaName = (string)_AreaName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_VerificationCode)) |
| | | { |
| | | addItem.VerificationCode = (string)_VerificationCode; |
| | | } |
| | | if(!string.IsNullOrEmpty(_RowNo)) |
| | | { |
| | | if (!int.TryParse(_RowNo, out int outRowNo)&&!string.IsNullOrEmpty(_RowNo)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ]{_RowNo}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outRowNo <= 0&&!string.IsNullOrEmpty(_RowNo)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ]{_RowNo}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.RowNo = outRowNo; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_ColumnNo)) |
| | | { |
| | | if (!int.TryParse(_ColumnNo, out int outColumnNo)&&!string.IsNullOrEmpty(_ColumnNo)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å]{_ColumnNo}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outColumnNo <= 0&&!string.IsNullOrEmpty(_ColumnNo)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å]{_ColumnNo}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.ColumnNo = outColumnNo; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_LayerNo)) |
| | | { |
| | | if (!int.TryParse(_LayerNo, out int outLayerNo)&&!string.IsNullOrEmpty(_LayerNo)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å±]{_LayerNo}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outLayerNo <= 0&&!string.IsNullOrEmpty(_LayerNo)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å±]{_LayerNo}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.LayerNo = outLayerNo; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_LaneNo)) |
| | | { |
| | | if (!int.TryParse(_LaneNo, out int outLaneNo)&&!string.IsNullOrEmpty(_LaneNo)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å··é]{_LaneNo}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outLaneNo <= 0&&!string.IsNullOrEmpty(_LaneNo)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å··é]{_LaneNo}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.LaneNo = outLaneNo; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_Xzb)) |
| | | { |
| | | addItem.Xzb = (string)_Xzb; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Yzb)) |
| | | { |
| | | addItem.Yzb = (string)_Yzb; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Zzb)) |
| | | { |
| | | addItem.Zzb = (string)_Zzb; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Length)) |
| | | { |
| | | if (!decimal.TryParse(_Length, out decimal outLength)&&!string.IsNullOrEmpty(_Length)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½é¿åº¦]{_Length}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outLength <= 0&&!string.IsNullOrEmpty(_Length)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½é¿åº¦]{_Length}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Length = outLength; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_Width)) |
| | | { |
| | | if (!decimal.TryParse(_Width, out decimal outWidth)&&!string.IsNullOrEmpty(_Width)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½å®½åº¦]{_Width}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outWidth <= 0&&!string.IsNullOrEmpty(_Width)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½å®½åº¦]{_Width}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Width = outWidth; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_Height)) |
| | | { |
| | | if (!decimal.TryParse(_Height, out decimal outHeight)&&!string.IsNullOrEmpty(_Height)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½é«åº¦]{_Height}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outHeight <= 0&&!string.IsNullOrEmpty(_Height)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºä½é«åº¦]{_Height}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Height = outHeight; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_MaxWeight)) |
| | | { |
| | | if (!decimal.TryParse(_MaxWeight, out decimal outMaxWeight)&&!string.IsNullOrEmpty(_MaxWeight)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æå¤§æ¿é]{_MaxWeight}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outMaxWeight <= 0&&!string.IsNullOrEmpty(_MaxWeight)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æå¤§æ¿é]{_MaxWeight}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MaxWeight = outMaxWeight; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_InSequence)) |
| | | { |
| | | if (!int.TryParse(_InSequence, out int outInSequence)&&!string.IsNullOrEmpty(_InSequence)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å
¥åºé¡ºåº]{_InSequence}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outInSequence <= 0&&!string.IsNullOrEmpty(_InSequence)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å
¥åºé¡ºåº]{_InSequence}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.InSequence = outInSequence; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_OutSequence)) |
| | | { |
| | | if (!int.TryParse(_OutSequence, out int outOutSequence)&&!string.IsNullOrEmpty(_OutSequence)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºåºé¡ºåº]{_OutSequence}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outOutSequence <= 0&&!string.IsNullOrEmpty(_OutSequence)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åºåºé¡ºåº]{_OutSequence}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.OutSequence = outOutSequence; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsVirtually)) |
| | | { |
| | | if(!_IsVirtually.Equals("æ¯") && !_IsVirtually.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦èæ]{_IsVirtually}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsVirtually = _IsVirtually.Equals("æ¯") ? true : false; |
| | | addItem.IsVirtually = outIsVirtually; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if(!_IsDisabled.Equals("æ¯") && !_IsDisabled.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦ç¦ç¨]{_IsDisabled}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsDisabled = _IsDisabled.Equals("æ¯") ? true : false; |
| | | addItem.IsDisabled = outIsDisabled; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outId <= 0&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Id = outId; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | details.Add(addItem); |
| | | } |
| | | //éªé |
| | | await CheckExisitForImport(details); |
| | | |
| | | return details; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½åºä½ä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | | [HttpGet("WmsPlace/downloadExcelTemplate")] |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsPlace{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(åºä½ä¿¡æ¯).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç§ææ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-æ°æ®åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <param name="isEdit"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisit( WmsPlace input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//æ°å¢ |
| | | { |
| | | //æ°æ®æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsPlaceRep.AnyAsync(u => |
| | | u.PlaceCode.Equals(input.PlaceCode) |
| | | ,false); |
| | | } |
| | | else//ç¼è¾ |
| | | { |
| | | |
| | | |
| | | |
| | | //å½åç¼è¾æ°æ®ä»¥å¤æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsPlaceRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.PlaceCode.Equals(input.PlaceCode) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsPlace> inputs) |
| | | { |
| | | //æ ¹æ®èå主é®éªè¯è¡¨æ ¼ä¸ä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导å
¥æ°æ®ä¸è½ä¸ºç©º"); |
| | | } |
| | | //æ°æ®æ¯å¦éå¤ |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.PlaceCode |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.PlaceCode |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var wmsPlace = existExcelItem.Adapt<WmsPlace>(); |
| | | var item= existExcelItem.Adapt<WmsPlace>(); |
| | | throw Oops.Oh($"导å
¥çè¡¨æ ¼ä¸,åºä½ç¼ç [{item.PlaceCode}]å·²åå¨"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //æ ¹æ®èå主é®éªè¯æ°æ®åºä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | var existDBItem = await _wmsPlaceRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.PlaceCode |
| | | ) |
| | | .Contains("" |
| | | +w.PlaceCode |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var wmsPlace = existExcelItem.Adapt<WmsPlace>(); |
| | | var item= existExcelItem.Adapt<WmsPlace>(); |
| | | throw Oops.Oh($"ç³»ç»ä¸,åºä½ç¼ç [{item.PlaceCode}]å·²åå¨"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsUnitSearch : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string UnitCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public virtual string UnitName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public virtual string UnitDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<string> UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯ä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsUnitSearchNonPage : PageInputNonPageBase |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string UnitCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public virtual string UnitName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public virtual string UnitDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public virtual List<DateTimeOffset>? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public virtual string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public virtual string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsUnitInput |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç¼å·ä¸è½ä¸ºç©º")] |
| | | public virtual string UnitCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string UnitName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public virtual string UnitDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsUnitInput : WmsUnitInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsUnitInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsUnitInput : WmsUnitInput |
| | | { |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主é®ä¸è½ä¸ºç©º")] |
| | | public long? Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsUnitInput : BaseId |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core.Util.LowCode.Dto; |
| | | using System; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsUnitOutput |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public string UnitCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public string UnitName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public string UnitDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | public long? Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? CreatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? UpdatedTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å建è
åç§° |
| | | /// </summary> |
| | | public string CreatedUserName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¿®æ¹è
åç§° |
| | | /// </summary> |
| | | public string UpdatedUserName { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using Microsoft.AspNetCore.Http; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public interface IWmsUnitService |
| | | { |
| | | Task<WmsUnitOutput> Get([FromQuery] QueryeWmsUnitInput input); |
| | | Task<List<WmsUnitOutput>> List([FromQuery] WmsUnitInput input); |
| | | Task<PageResult<WmsUnitOutput>> Page([FromQuery] WmsUnitSearch input); |
| | | Task<List<WmsUnitOutput>> ListNonPageAsync([FromQuery] WmsUnitSearchNonPage input); |
| | | |
| | | Task Add(AddWmsUnitInput input); |
| | | Task Update(UpdateWmsUnitInput input); |
| | | Task Delete(DeleteWmsUnitInput input); |
| | | Task<int> ImportExcelAsync(IFormFile file); |
| | | IActionResult DownloadExcelTemplate(string version); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public class WmsUnitMapper : IRegister |
| | | { |
| | | public void Register(TypeAdapterConfig config) |
| | | { |
| | | config.ForType<AddWmsUnitInput, WmsUnit>() |
| | | ; |
| | | config.ForType<UpdateWmsUnitInput, WmsUnit>() |
| | | ; |
| | | config.ForType<WmsUnit, WmsUnitOutput>() |
| | | ; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Furion.DatabaseAccessor; |
| | | using Furion.DatabaseAccessor.Extensions; |
| | | using Furion.DependencyInjection; |
| | | using Furion.DynamicApiController; |
| | | using Furion.FriendlyException; |
| | | using Admin.NET.Core; |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System.Linq.Dynamic.Core; |
| | | using Microsoft.AspNetCore.Http; |
| | | using System.Text; |
| | | using System.Web; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// åä½ä¿¡æ¯æå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsUnit", Order = 100)] |
| | | [Route("api")] |
| | | public class WmsUnitService : IWmsUnitService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsUnit,MasterDbContextLocator> _wmsUnitRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsUnitService( |
| | | IRepository<WmsUnit,MasterDbContextLocator> wmsUnitRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsUnitRep = wmsUnitRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢åä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsUnit/page")] |
| | | public async Task<PageResult<WmsUnitOutput>> Page([FromQuery] WmsUnitSearch input) |
| | | { |
| | | var wmsUnits = await _wmsUnitRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(input.UnitCode), u => u.UnitCode == input.UnitCode) |
| | | .Where(!string.IsNullOrEmpty(input.UnitName), u => u.UnitName == input.UnitName) |
| | | .Where(!string.IsNullOrEmpty(input.UnitDesc), u => u.UnitDesc == input.UnitDesc) |
| | | .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderBuilder<WmsUnitSearch>(input)) |
| | | .ProjectToType<WmsUnitOutput>() |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return wmsUnits; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢åä½ä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input">åä½ä¿¡æ¯æ¥è¯¢åæ°</param> |
| | | /// <returns>(åä½ä¿¡æ¯)å®ä¾å表</returns> |
| | | [HttpGet("WmsUnit/listNonPage")] |
| | | public async Task<List<WmsUnitOutput>> ListNonPageAsync([FromQuery] WmsUnitSearchNonPage input) |
| | | { |
| | | var pUnitCode = input.UnitCode?.Trim() ?? ""; |
| | | var pUnitName = input.UnitName?.Trim() ?? ""; |
| | | var pUnitDesc = input.UnitDesc?.Trim() ?? ""; |
| | | var pIsDisabled = input.IsDisabled; |
| | | var pCreatedTime = input.CreatedTime; |
| | | var pUpdatedTime = input.UpdatedTime; |
| | | var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var wmsUnits = await _wmsUnitRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(pUnitCode), u => u.UnitCode == pUnitCode) |
| | | .Where(!string.IsNullOrEmpty(pUnitName), u => u.UnitName == pUnitName) |
| | | .Where(!string.IsNullOrEmpty(pUnitDesc), u => u.UnitDesc == pUnitDesc) |
| | | .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderNonPageBuilder(input)) |
| | | .ProjectToType<WmsUnitOutput>() |
| | | .ToListAsync(); |
| | | return wmsUnits; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsUnit/detail")] |
| | | public async Task<WmsUnitOutput> Get([FromQuery] QueryeWmsUnitInput input) |
| | | { |
| | | return (await _wmsUnitRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsUnitOutput>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååä½ä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsUnit/list")] |
| | | public async Task<List<WmsUnitOutput>> List([FromQuery] WmsUnitInput input) |
| | | { |
| | | return await _wmsUnitRep.DetachedEntities.ProjectToType<WmsUnitOutput>().ToListAsync(); |
| | | } |
| | | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å åä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsUnit/add")] |
| | | public async Task Add(AddWmsUnitInput input) |
| | | { |
| | | var wmsUnit = input.Adapt<WmsUnit>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsUnit); |
| | | |
| | | wmsUnit.CreatedUserId = wmsUnit.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsUnit.CreatedUserName = wmsUnit.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsUnit.CreatedTime = wmsUnit.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsUnitRep.InsertAsync(wmsUnit); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤åä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsUnit/delete")] |
| | | public async Task Delete(DeleteWmsUnitInput input) |
| | | { |
| | | var wmsUnit = await _wmsUnitRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsUnitRep.DeleteAsync(wmsUnit); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åä½ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsUnit/edit")] |
| | | public async Task Update(UpdateWmsUnitInput input) |
| | | { |
| | | var isExist = await _wmsUnitRep.AnyAsync(u => u.Id == input.Id, false); |
| | | if (!isExist) throw Oops.Oh(ErrorCode.D1002); |
| | | |
| | | var wmsUnit = input.Adapt<WmsUnit>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsUnit,true); |
| | | |
| | | wmsUnit.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsUnit.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsUnit.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsUnitRep.UpdateAsync(wmsUnit,ignoreNullValues:true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥åä½ä¿¡æ¯åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | | [HttpPost("WmsUnit/importExcel")] |
| | | public async Task<int> ImportExcelAsync(IFormFile file) |
| | | { |
| | | int _HeadStartLine = 2;//第1è¡æ¯è¯´æ,第2è¡æ¯åå |
| | | int _DataStartLine = 3;//第3è¡å¼å§æ¯æ°æ® |
| | | |
| | | DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine); |
| | | var addList =await CommonImport(importDataTable, _DataStartLine); |
| | | |
| | | lock (_lock) |
| | | { |
| | | _wmsUnitRep.InsertAsync(addList); |
| | | |
| | | } |
| | | await Task.CompletedTask; |
| | | return addList.Count; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// DataTable转æ¢å®ä½å¯¹è±¡å表 |
| | | /// </summary> |
| | | /// <param name="dataTable"></param> |
| | | /// <param name="dataStartLine">模çååå¼å§è¡</param> |
| | | /// <returns></returns> |
| | | private async Task<List<WmsUnit>> CommonImport(DataTable dataTable, int dataStartLine) |
| | | { |
| | | |
| | | var details = new List<WmsUnit>(); |
| | | int index = dataStartLine;//模çååå¼å§è¡ |
| | | foreach (System.Data.DataRow row in dataTable.Rows) |
| | | { |
| | | index++; |
| | | |
| | | //导å
¥æ¨¡çå®å¶å代ç ï¼æ¿æ¢æ¨¡ç使ç¨ï¼ |
| | | |
| | | var addItem = new WmsUnit() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region å®ä¹åé |
| | | var _UnitCode = "";//ç¼å· |
| | | var _UnitName = "";//åç§° |
| | | var _UnitDesc = "";//æè¿° |
| | | var _IsDisabled = "";//æ¯å¦ç¦ç¨ |
| | | var _Id = "";//Idä¸»é® |
| | | #endregion |
| | | |
| | | |
| | | #region åå¼ |
| | | _UnitCode = row["ç¼å·"]?.ToString() ; |
| | | _UnitName = row["åç§°"]?.ToString() ; |
| | | _UnitDesc = row["æè¿°"]?.ToString() ; |
| | | _IsDisabled = row["æ¯å¦ç¦ç¨"]?.ToString() ; |
| | | _Id = row["Id主é®"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region éªè¯ |
| | | |
| | | if (string.IsNullOrEmpty(_UnitCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç¼å·]{_UnitCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_UnitCode)) |
| | | { |
| | | addItem.UnitCode = (string)_UnitCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_UnitName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åç§°]{_UnitName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_UnitName)) |
| | | { |
| | | addItem.UnitName = (string)_UnitName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_UnitDesc)) |
| | | { |
| | | addItem.UnitDesc = (string)_UnitDesc; |
| | | } |
| | | if(!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if(!_IsDisabled.Equals("æ¯") && !_IsDisabled.Equals("å¦")) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦ç¦ç¨]{_IsDisabled}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsDisabled = _IsDisabled.Equals("æ¯") ? true : false; |
| | | addItem.IsDisabled = outIsDisabled; |
| | | } |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸æ£ç¡®ï¼"); |
| | | } |
| | | if (outId <= 0&&!string.IsNullOrEmpty(_Id)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[Id主é®]{_Id}å¼ä¸è½å°äºçäº0ï¼"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Id = outId; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | details.Add(addItem); |
| | | } |
| | | //éªé |
| | | await CheckExisitForImport(details); |
| | | |
| | | return details; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½åä½ä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | | [HttpGet("WmsUnit/downloadExcelTemplate")] |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsUnit{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(åä½ä¿¡æ¯).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç§ææ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-æ°æ®åº |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <param name="isEdit"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisit( WmsUnit input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//æ°å¢ |
| | | { |
| | | //æ°æ®æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsUnitRep.AnyAsync(u => |
| | | u.UnitCode.Equals(input.UnitCode) |
| | | ,false); |
| | | } |
| | | else//ç¼è¾ |
| | | { |
| | | |
| | | |
| | | |
| | | //å½åç¼è¾æ°æ®ä»¥å¤æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsUnitRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.UnitCode.Equals(input.UnitCode) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsUnit> inputs) |
| | | { |
| | | //æ ¹æ®èå主é®éªè¯è¡¨æ ¼ä¸ä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导å
¥æ°æ®ä¸è½ä¸ºç©º"); |
| | | } |
| | | //æ°æ®æ¯å¦éå¤ |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.UnitCode |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.UnitCode |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var wmsUnit = existExcelItem.Adapt<WmsUnit>(); |
| | | var item= existExcelItem.Adapt<WmsUnit>(); |
| | | throw Oops.Oh($"导å
¥çè¡¨æ ¼ä¸,ç¼å·[{item.UnitCode}]å·²åå¨"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //æ ¹æ®èå主é®éªè¯æ°æ®åºä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | var existDBItem = await _wmsUnitRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.UnitCode |
| | | ) |
| | | .Contains("" |
| | | +w.UnitCode |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var wmsUnit = existExcelItem.Adapt<WmsUnit>(); |
| | | var item= existExcelItem.Adapt<WmsUnit>(); |
| | | throw Oops.Oh($"ç³»ç»ä¸,ç¼å·[{item.UnitCode}]å·²åå¨"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | { |
| | | |
| | | /// <summary> |
| | | /// ä»åºè¡¨æ¥è¯¢åæ° |
| | | /// ä»åºä¿¡æ¯æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsWarehouseSearch : PageInputBase |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»åºè¡¨ä¸å页æ¥è¯¢åæ° |
| | | /// ä»åºä¿¡æ¯ä¸å页æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsWarehouseSearchNonPage : PageInputNonPageBase |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»åºè¡¨è¾å
¥åæ° |
| | | /// ä»åºä¿¡æ¯è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsWarehouseInput |
| | | { |
| | |
| | | /// <summary> |
| | | /// å·¥åç¼å· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "å·¥åç¼å·ä¸è½ä¸ºç©º")] |
| | | public virtual string FactoryCode { get; set; } |
| | | |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | [Required(ErrorMessage = "æ¯å¦ç¦ç¨ä¸è½ä¸ºç©º")] |
| | | public virtual bool IsDisabled { get; set; } |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»åºè¡¨æ°å¢åæ° |
| | | /// ä»åºä¿¡æ¯æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsWarehouseInput : WmsWarehouseInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»åºè¡¨å é¤åæ° |
| | | /// ä»åºä¿¡æ¯å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsWarehouseInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»åºè¡¨æ´æ°åæ° |
| | | /// ä»åºä¿¡æ¯æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsWarehouseInput : WmsWarehouseInput |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»åºè¡¨è·ååä¸ªåæ° |
| | | /// ä»åºä¿¡æ¯è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsWarehouseInput : BaseId |
| | | { |
| | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// ä»åºè¡¨è¾åºåæ° |
| | | /// ä»åºä¿¡æ¯è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsWarehouseOutput |
| | | { |
| | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool IsDisabled { get; set; } |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// ä»åºè¡¨æå¡ |
| | | /// ä»åºä¿¡æ¯æå¡ |
| | | /// </summary> |
| | | [ApiDescriptionSettings("WmsBase", Name = "WmsWarehouse", Order = 100)] |
| | | [Route("api")] |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢ä»åºè¡¨ |
| | | /// å页æ¥è¯¢ä»åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢ä»åºè¡¨å表 |
| | | /// ä¸å页æ¥è¯¢ä»åºä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input">ä»åºè¡¨æ¥è¯¢åæ°</param> |
| | | /// <returns>(ä»åºè¡¨)å®ä¾å表</returns> |
| | | /// <param name="input">ä»åºä¿¡æ¯æ¥è¯¢åæ°</param> |
| | | /// <returns>(ä»åºä¿¡æ¯)å®ä¾å表</returns> |
| | | [HttpGet("WmsWarehouse/listNonPage")] |
| | | public async Task<List<WmsWarehouseOutput>> ListNonPageAsync([FromQuery] WmsWarehouseSearchNonPage input) |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»åºè¡¨ |
| | | /// è·åä»åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»åºè¡¨å表 |
| | | /// è·åä»åºä¿¡æ¯å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å ä»åºè¡¨ |
| | | /// å¢å ä»åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤ä»åºè¡¨ |
| | | /// å é¤ä»åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ä»åºè¡¨ |
| | | /// æ´æ°ä»åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥ä»åºè¡¨åè½ |
| | | /// Excel模æ¿å¯¼å
¥ä»åºä¿¡æ¯åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | |
| | | { |
| | | addItem.Address = (string)_Address; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_FactoryCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[å·¥åç¼å·]{_FactoryCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_FactoryCode)) |
| | | { |
| | | addItem.FactoryCode = (string)_FactoryCode; |
| | |
| | | { |
| | | addItem.Position = (string)_Position; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[æ¯å¦ç¦ç¨]{_IsDisabled}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if(!_IsDisabled.Equals("æ¯") && !_IsDisabled.Equals("å¦")) |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®çæ¬ä¸è½½ä»åºè¡¨çExcel导å
¥æ¨¡æ¿ |
| | | /// æ ¹æ®çæ¬ä¸è½½ä»åºä¿¡æ¯çExcel导å
¥æ¨¡æ¿ |
| | | /// </summary> |
| | | /// <param name="version">模æ¿çæ¬</param> |
| | | /// <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | |
| | | public IActionResult DownloadExcelTemplate([FromQuery] string version) |
| | | { |
| | | string _path = TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çè·¯å¾ + $"\\WmsWarehouse{TemplateConst.EXCEL_TEMPLATEFILE_导å
¥æ¨¡çåç§°åç¼}.xlsx"; |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(ä»åºè¡¨).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | var fileName = HttpUtility.UrlEncode($"导å
¥æ¨¡æ¿(ä»åºä¿¡æ¯).xlsx", Encoding.GetEncoding("UTF-8")); |
| | | return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; |
| | | } |
| | | |
| | |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Admin.NET.Core; |
| | | //using Microsoft.EntityFrameworkCore; |
| | | //using System; |
| | | //using System.Collections.Generic; |
| | | //using System.ComponentModel.DataAnnotations; |
| | | //using System.Linq; |
| | | //using System.Text; |
| | | //using System.Threading.Tasks; |
| | | //using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// è·åæçç©æåæ£åæ° |
| | | /// </summary> |
| | | public class GetSortInfoOutput |
| | | { |
| | | /// <summary> |
| | | /// å®¹å¨ |
| | | /// </summary> |
| | | public WmsContainerDto WmsContainer { get; set; } |
| | | //namespace Admin.NET.Application |
| | | //{ |
| | | // /// <summary> |
| | | // /// è·åæçç©æåæ£åæ° |
| | | // /// </summary> |
| | | // public class GetSortInfoOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// å®¹å¨ |
| | | // /// </summary> |
| | | // public WmsContainerDto WmsContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ£ä¿¡æ¯ |
| | | /// </summary> |
| | | public List<WmsSortOrder> WmsSortOrderList { get; set; } |
| | | } |
| | | // /// <summary> |
| | | // /// åæ£ä¿¡æ¯ |
| | | // /// </summary> |
| | | // public List<WmsSortOrder> WmsSortOrderList { get; set; } |
| | | // } |
| | | |
| | | /// <summary> |
| | | /// å页è·å忣å |
| | | /// </summary> |
| | | public class SortPdaPageOutput : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// åæ®å¤§ç±» |
| | | /// </summary> |
| | | public long OrderLargeCategory { get; set; } |
| | | // /// <summary> |
| | | // /// å页è·å忣å |
| | | // /// </summary> |
| | | // public class SortPdaPageOutput : PageInputBase |
| | | // { |
| | | // /// <summary> |
| | | // /// åæ®å¤§ç±» |
| | | // /// </summary> |
| | | // public long OrderLargeCategory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®å°ç±» |
| | | /// </summary> |
| | | public long OrderSubclass { get; set; } |
| | | // /// <summary> |
| | | // /// åæ®å°ç±» |
| | | // /// </summary> |
| | | // public long OrderSubclass { get; set; } |
| | | |
| | | /// <summary> |
| | | /// äºå¡ç±»å |
| | | /// </summary> |
| | | public string MoveType { get; set; } |
| | | // /// <summary> |
| | | // /// äºå¡ç±»å |
| | | // /// </summary> |
| | | // public string MoveType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸ä½ç³»ç»åæ®å¯ä¸è¯å«ç |
| | | /// </summary> |
| | | public long SOID { get; set; } |
| | | // /// <summary> |
| | | // /// ä¸ä½ç³»ç»åæ®å¯ä¸è¯å«ç |
| | | // /// </summary> |
| | | // public long SOID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¼å· |
| | | /// </summary> |
| | | public string NO { get; set; } |
| | | // /// <summary> |
| | | // /// åæ®ç¼å· |
| | | // /// </summary> |
| | | // public string NO { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 颿åç³è¯·æ¥æ |
| | | /// </summary> |
| | | public DateTimeOffset Billdate { get; set; } |
| | | // /// <summary> |
| | | // /// 颿åç³è¯·æ¥æ |
| | | // /// </summary> |
| | | // public DateTimeOffset Billdate { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¢ç¨é¡¹ç®å· |
| | | /// </summary> |
| | | public string WBSElementcode { get; set; } |
| | | // /// <summary> |
| | | // /// é¢ç¨é¡¹ç®å· |
| | | // /// </summary> |
| | | // public string WBSElementcode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 颿é¨é¨ |
| | | /// </summary> |
| | | public string BenefitingDepartcode { get; set; } |
| | | // /// <summary> |
| | | // /// 颿é¨é¨ |
| | | // /// </summary> |
| | | // public string BenefitingDepartcode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åçé¨é¨ |
| | | /// </summary> |
| | | public string CostCenterID { get; set; } |
| | | // /// <summary> |
| | | // /// åçé¨é¨ |
| | | // /// </summary> |
| | | // public string CostCenterID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å®¢æ· |
| | | /// </summary> |
| | | public string FI_Client_Analysis_H { get; set; } |
| | | // /// <summary> |
| | | // /// å®¢æ· |
| | | // /// </summary> |
| | | // public string FI_Client_Analysis_H { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å
¬å¸é´äº¤æ |
| | | /// </summary> |
| | | public long IsInnerCompany { get; set; } |
| | | // /// <summary> |
| | | // /// æ¯å¦å
¬å¸é´äº¤æ |
| | | // /// </summary> |
| | | // public long IsInnerCompany { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¢æäºº |
| | | /// </summary> |
| | | public string PickerID { get; set; } |
| | | // /// <summary> |
| | | // /// é¢æäºº |
| | | // /// </summary> |
| | | // public string PickerID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»å¨ä¸å¿ |
| | | /// </summary> |
| | | public string WarehouseCentername { get; set; } |
| | | // /// <summary> |
| | | // /// ä»å¨ä¸å¿ |
| | | // /// </summary> |
| | | // public string WarehouseCentername { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å
¬å¸ |
| | | /// </summary> |
| | | public string Companyname { get; set; } |
| | | // /// <summary> |
| | | // /// å
¬å¸ |
| | | // /// </summary> |
| | | // public string Companyname { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ½å·¥é |
| | | /// </summary> |
| | | public string ConstructionTeamID { get; set; } |
| | | // /// <summary> |
| | | // /// æ½å·¥é |
| | | // /// </summary> |
| | | // public string ConstructionTeamID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¶æ |
| | | /// </summary> |
| | | public Admin.NET.Core.OrderStatusEnum OrderStatus { get; set; } |
| | | // /// <summary> |
| | | // /// åæ®ç¶æ |
| | | // /// </summary> |
| | | // public Admin.NET.Core.OrderStatusEnum OrderStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | public long Id { get; set; } |
| | | // /// <summary> |
| | | // /// Idä¸»é® |
| | | // /// </summary> |
| | | // public long Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¶é´ |
| | | /// </summary> |
| | | public DateTimeOffset? CreatedTime { get; set; } |
| | | } |
| | | // /// <summary> |
| | | // /// æ¶é´ |
| | | // /// </summary> |
| | | // public DateTimeOffset? CreatedTime { get; set; } |
| | | // } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®åºåºåè·å忣å |
| | | /// </summary> |
| | | public class SortPdaDetailPageOutput |
| | | { |
| | | /// <summary> |
| | | /// æ¥æºåå· |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | // /// <summary> |
| | | // /// æ ¹æ®åºåºåè·å忣å |
| | | // /// </summary> |
| | | // public class SortPdaDetailPageOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// æ¥æºåå· |
| | | // /// </summary> |
| | | // public string OrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string Materialcode { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æç¼å· |
| | | // /// </summary> |
| | | // public string Materialcode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string Materialname { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æåç§° |
| | | // /// </summary> |
| | | // public string Materialname { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public long OrderDetailID { get; set; } |
| | | // /// <summary> |
| | | // /// |
| | | // /// </summary> |
| | | // public long OrderDetailID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 忣ç»çåå· |
| | | /// </summary> |
| | | public string ContainerOrderNo { get; set; } |
| | | // /// <summary> |
| | | // /// 忣ç»çåå· |
| | | // /// </summary> |
| | | // public string ContainerOrderNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项ç®ç¼å· |
| | | /// </summary> |
| | | public string ProjectCode { get; set; } |
| | | // /// <summary> |
| | | // /// 项ç®ç¼å· |
| | | // /// </summary> |
| | | // public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// TAå· |
| | | /// </summary> |
| | | public string TACode { get; set; } |
| | | // /// <summary> |
| | | // /// TAå· |
| | | // /// </summary> |
| | | // public string TACode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®µå· |
| | | /// </summary> |
| | | public string PartCode { get; set; } |
| | | // /// <summary> |
| | | // /// åæ®µå· |
| | | // /// </summary> |
| | | // public string PartCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºä½ç¼ç |
| | | /// </summary> |
| | | public string PlaceCode { get; set; } |
| | | // /// <summary> |
| | | // /// åºä½ç¼ç |
| | | // /// </summary> |
| | | // public string PlaceCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 容å¨ç¼å· |
| | | /// </summary> |
| | | public string ContainerCode { get; set; } |
| | | // /// <summary> |
| | | // /// 容å¨ç¼å· |
| | | // /// </summary> |
| | | // public string ContainerCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ£æ° |
| | | /// </summary> |
| | | public decimal SortQuantity { get; set; } |
| | | // /// <summary> |
| | | // /// åæ£æ° |
| | | // /// </summary> |
| | | // public decimal SortQuantity { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å®é
åæ£æ° |
| | | /// </summary> |
| | | public decimal ActualQuantity { get; set; } |
| | | // /// <summary> |
| | | // /// å®é
åæ£æ° |
| | | // /// </summary> |
| | | // public decimal ActualQuantity { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remarks { get; set; } |
| | | // /// <summary> |
| | | // /// 夿³¨ |
| | | // /// </summary> |
| | | // public string Remarks { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¶æ-æªåæ£_1ã忣宿_2 |
| | | /// </summary> |
| | | public Admin.NET.Core.SortStatusEnum SortStatus { get; set; } |
| | | // /// <summary> |
| | | // /// ç¶æ-æªåæ£_1ã忣宿_2 |
| | | // /// </summary> |
| | | // public Admin.NET.Core.SortStatusEnum SortStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | public long Id { get; set; } |
| | | } |
| | | } |
| | | // /// <summary> |
| | | // /// Idä¸»é® |
| | | // /// </summary> |
| | | // public long Id { get; set; } |
| | | // } |
| | | //} |
| | |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Admin.NET.Core; |
| | | //using Microsoft.EntityFrameworkCore; |
| | | //using System; |
| | | //using System.Collections.Generic; |
| | | //using System.ComponentModel.DataAnnotations; |
| | | //using System.Linq; |
| | | //using System.Text; |
| | | //using System.Threading.Tasks; |
| | | //using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// è·åæçå
¥å |
| | | /// </summary> |
| | | public class GetContainerOutput |
| | | { |
| | | /// <summary> |
| | | /// æçå· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "æçå·ä¸è½ä¸ºç©º")] |
| | | public string ContainerCode { get; set; } |
| | | //namespace Admin.NET.Application |
| | | //{ |
| | | // /// <summary> |
| | | // /// è·åæçå
¥å |
| | | // /// </summary> |
| | | // public class GetContainerOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// æçå· |
| | | // /// </summary> |
| | | // [Required(ErrorMessage = "æçå·ä¸è½ä¸ºç©º")] |
| | | // public string ContainerCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public WmsContainerDto WmsContainer { get; set; } |
| | | // /// <summary> |
| | | // /// |
| | | // /// </summary> |
| | | // public WmsContainerDto WmsContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä¿¡æ¯ |
| | | /// </summary> |
| | | public List<WmsMaterialContainer> WmsMaterials { get; set; } |
| | | } |
| | | // /// <summary> |
| | | // /// ç©æä¿¡æ¯ |
| | | // /// </summary> |
| | | // public List<WmsMaterialContainer> WmsMaterials { get; set; } |
| | | // } |
| | | |
| | | /// <summary> |
| | | /// ä»
æ¶è´§ï¼ç»çï¼æåè¾åºåæ° |
| | | /// </summary> |
| | | public class GroupDiskOutput |
| | | { |
| | | /// <summary> |
| | | /// æç |
| | | /// </summary> |
| | | public string Containercode { get; set; } |
| | | // /// <summary> |
| | | // /// ä»
æ¶è´§ï¼ç»çï¼æåè¾åºåæ° |
| | | // /// </summary> |
| | | // public class GroupDiskOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// æç |
| | | // /// </summary> |
| | | // public string Containercode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç»çåæ® |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | } |
| | | /// <summary> |
| | | /// ç©æè¿ååæ° |
| | | /// </summary> |
| | | public class PadGetMaterialOutput |
| | | { |
| | | /// <summary> |
| | | /// Id |
| | | /// </summary> |
| | | public long Id { get; set; } |
| | | // /// <summary> |
| | | // /// ç»çåæ® |
| | | // /// </summary> |
| | | // public string OrderNo { get; set; } |
| | | // } |
| | | // /// <summary> |
| | | // /// ç©æè¿ååæ° |
| | | // /// </summary> |
| | | // public class PadGetMaterialOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// Id |
| | | // /// </summary> |
| | | // public long Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 忮Id |
| | | /// </summary> |
| | | public long OrderId { get; set; } |
| | | // /// <summary> |
| | | // /// 忮Id |
| | | // /// </summary> |
| | | // public long OrderId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string Materialname { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æåç§° |
| | | // /// </summary> |
| | | // public string Materialname { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string Materialcode { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æç¼å· |
| | | // /// </summary> |
| | | // public string Materialcode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºæ¬åä½ |
| | | /// </summary> |
| | | public string Unit { get; set; } |
| | | // /// <summary> |
| | | // /// åºæ¬åä½ |
| | | // /// </summary> |
| | | // public string Unit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public decimal Qty { get; set; } |
| | | // /// <summary> |
| | | // /// æ°é |
| | | // /// </summary> |
| | | // public decimal Qty { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ ¹é¿åº¦ |
| | | /// </summary> |
| | | public decimal SingleLength { get; set; } |
| | | // /// <summary> |
| | | // /// åæ ¹é¿åº¦ |
| | | // /// </summary> |
| | | // public decimal SingleLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç论éé |
| | | /// </summary> |
| | | public decimal TheoreticalWeight { get; set; } |
| | | // /// <summary> |
| | | // /// ç论éé |
| | | // /// </summary> |
| | | // public decimal TheoreticalWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸å«ç¨åä»· |
| | | /// </summary> |
| | | public decimal Price { get; set; } |
| | | // /// <summary> |
| | | // /// ä¸å«ç¨åä»· |
| | | // /// </summary> |
| | | // public decimal Price { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ææ¬éé¢ |
| | | /// </summary> |
| | | public decimal SumPrice { get; set; } |
| | | // /// <summary> |
| | | // /// ææ¬éé¢ |
| | | // /// </summary> |
| | | // public decimal SumPrice { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项ç®ç¼å· |
| | | /// </summary> |
| | | public string ProjectCode { get; set; } |
| | | // /// <summary> |
| | | // /// 项ç®ç¼å· |
| | | // /// </summary> |
| | | // public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ååç¼å· |
| | | /// </summary> |
| | | public string ContractCode { get; set; } |
| | | // /// <summary> |
| | | // /// ååç¼å· |
| | | // /// </summary> |
| | | // public string ContractCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// TAå· |
| | | /// </summary> |
| | | public string TACode { get; set; } |
| | | // /// <summary> |
| | | // /// TAå· |
| | | // /// </summary> |
| | | // public string TACode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥å
³åå |
| | | /// </summary> |
| | | public string TradeName { get; set; } |
| | | // /// <summary> |
| | | // /// æ¥å
³åå |
| | | // /// </summary> |
| | | // public string TradeName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥å
³é¡¹å· |
| | | /// </summary> |
| | | public string ItemNo { get; set; } |
| | | // /// <summary> |
| | | // /// æ¥å
³é¡¹å· |
| | | // /// </summary> |
| | | // public string ItemNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥å
³åä½ |
| | | /// </summary> |
| | | public string CustomsUnitName { get; set; } |
| | | // /// <summary> |
| | | // /// æ¥å
³åä½ |
| | | // /// </summary> |
| | | // public string CustomsUnitName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥å
³æ°é |
| | | /// </summary> |
| | | public decimal CustomsNum { get; set; } |
| | | // /// <summary> |
| | | // /// æ¥å
³æ°é |
| | | // /// </summary> |
| | | // public decimal CustomsNum { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¥å
³éé¢ |
| | | /// </summary> |
| | | public decimal CustomsPrices { get; set; } |
| | | // /// <summary> |
| | | // /// æ¥å
³éé¢ |
| | | // /// </summary> |
| | | // public decimal CustomsPrices { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç¹æ®è¦æ± |
| | | /// </summary> |
| | | public string SpecialNeeds { get; set; } |
| | | // /// <summary> |
| | | // /// ç¹æ®è¦æ± |
| | | // /// </summary> |
| | | // public string SpecialNeeds { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®ç¶æ |
| | | /// </summary> |
| | | public OrderDetailsStatusEnum OrderStatus { get; set; } |
| | | } |
| | | } |
| | | // /// <summary> |
| | | // /// åæ®ç¶æ |
| | | // /// </summary> |
| | | // public OrderDetailsStatusEnum OrderStatus { get; set; } |
| | | // } |
| | | //} |
| | |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Admin.NET.Core; |
| | | //using Microsoft.EntityFrameworkCore; |
| | | //using System; |
| | | //using System.Collections.Generic; |
| | | //using System.ComponentModel.DataAnnotations; |
| | | //using System.Linq; |
| | | //using System.Text; |
| | | //using System.Threading.Tasks; |
| | | //using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// è·åæçå
¥å |
| | | /// </summary> |
| | | public class StockReturnGetContainerOutput |
| | | { |
| | | /// <summary> |
| | | /// æçå· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "æçå·ä¸è½ä¸ºç©º")] |
| | | public string ContainerCode { get; set; } |
| | | //namespace Admin.NET.Application |
| | | //{ |
| | | // /// <summary> |
| | | // /// è·åæçå
¥å |
| | | // /// </summary> |
| | | // public class StockReturnGetContainerOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// æçå· |
| | | // /// </summary> |
| | | // [Required(ErrorMessage = "æçå·ä¸è½ä¸ºç©º")] |
| | | // public string ContainerCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public WmsContainerDto WmsContainer { get; set; } |
| | | // /// <summary> |
| | | // /// |
| | | // /// </summary> |
| | | // public WmsContainerDto WmsContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æä¿¡æ¯ |
| | | /// </summary> |
| | | public List<WmsMaterialContainer> WmsMaterials { get; set; } |
| | | } |
| | | // /// <summary> |
| | | // /// ç©æä¿¡æ¯ |
| | | // /// </summary> |
| | | // public List<WmsMaterialContainer> WmsMaterials { get; set; } |
| | | // } |
| | | |
| | | /// <summary> |
| | | /// ä»
æ¶è´§ï¼ç»çï¼æåè¾åºåæ° |
| | | /// </summary> |
| | | public class StockReturnGroupDiskOutput |
| | | { |
| | | /// <summary> |
| | | /// æç |
| | | /// </summary> |
| | | public string Containercode { get; set; } |
| | | // /// <summary> |
| | | // /// ä»
æ¶è´§ï¼ç»çï¼æåè¾åºåæ° |
| | | // /// </summary> |
| | | // public class StockReturnGroupDiskOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// æç |
| | | // /// </summary> |
| | | // public string Containercode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç»çåæ® |
| | | /// </summary> |
| | | public string OrderNo { get; set; } |
| | | } |
| | | /// <summary> |
| | | /// ç©æè¿ååæ° |
| | | /// </summary> |
| | | public class StockReturnPadGetMaterialOutput |
| | | { |
| | | /// <summary> |
| | | /// 忮Id |
| | | /// </summary> |
| | | public long OrderId { get; set; } |
| | | // /// <summary> |
| | | // /// ç»çåæ® |
| | | // /// </summary> |
| | | // public string OrderNo { get; set; } |
| | | // } |
| | | // /// <summary> |
| | | // /// ç©æè¿ååæ° |
| | | // /// </summary> |
| | | // public class StockReturnPadGetMaterialOutput |
| | | // { |
| | | // /// <summary> |
| | | // /// 忮Id |
| | | // /// </summary> |
| | | // public long OrderId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸ä½ç³»ç»åæ®æç»å¯ä¸è¯å«ç |
| | | /// </summary> |
| | | public long OID { get; set; } |
| | | // /// <summary> |
| | | // /// ä¸ä½ç³»ç»åæ®æç»å¯ä¸è¯å«ç |
| | | // /// </summary> |
| | | // public long OID { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | public string Materialcode { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æç¼å· |
| | | // /// </summary> |
| | | // public string Materialcode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string Materialname { get; set; } |
| | | // /// <summary> |
| | | // /// ç©æåç§° |
| | | // /// </summary> |
| | | // public string Materialname { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºæ¬åä½ |
| | | /// </summary> |
| | | public string Unit { get; set; } |
| | | // /// <summary> |
| | | // /// åºæ¬åä½ |
| | | // /// </summary> |
| | | // public string Unit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | public decimal Qty { get; set; } |
| | | // /// <summary> |
| | | // /// æ°é |
| | | // /// </summary> |
| | | // public decimal Qty { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ ¹é¿åº¦ |
| | | /// </summary> |
| | | public decimal Length { get; set; } |
| | | // /// <summary> |
| | | // /// åæ ¹é¿åº¦ |
| | | // /// </summary> |
| | | // public decimal Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»¶æ° |
| | | /// </summary> |
| | | public decimal Number { get; set; } |
| | | // /// <summary> |
| | | // /// ä»¶æ° |
| | | // /// </summary> |
| | | // public decimal Number { get; set; } |
| | | |
| | | /// <summary> |
| | | /// SCMæ¹æ¬¡å· |
| | | /// </summary> |
| | | public string Batchno_SCM { get; set; } |
| | | // /// <summary> |
| | | // /// SCMæ¹æ¬¡å· |
| | | // /// </summary> |
| | | // public string Batchno_SCM { get; set; } |
| | | |
| | | /// <summary> |
| | | /// WMSæ¹æ¬¡å· |
| | | /// </summary> |
| | | public string Batchno_WMS { get; set; } |
| | | // /// <summary> |
| | | // /// WMSæ¹æ¬¡å· |
| | | // /// </summary> |
| | | // public string Batchno_WMS { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 项ç®ç¼å· |
| | | /// </summary> |
| | | public string ProjectCode { get; set; } |
| | | // /// <summary> |
| | | // /// 项ç®ç¼å· |
| | | // /// </summary> |
| | | // public string ProjectCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// TAå· |
| | | /// </summary> |
| | | public string TACode { get; set; } |
| | | // /// <summary> |
| | | // /// TAå· |
| | | // /// </summary> |
| | | // public string TACode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åæ®µå· |
| | | /// </summary> |
| | | public string PartCode { get; set; } |
| | | } |
| | | } |
| | | // /// <summary> |
| | | // /// åæ®µå· |
| | | // /// </summary> |
| | | // public string PartCode { get; set; } |
| | | // } |
| | | //} |
old mode 100755
new mode 100644