Merge branch 'master' of http://222.71.245.114:9086/r/iWare_RawMaterialWarehouse
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { axios } from '@/utils/request' |
| | | |
| | | /** |
| | | * æ¥è¯¢å·¥åä¿¡æ¯è¡¨ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsFactoryPage (parameter) { |
| | | return axios({ |
| | | url: '/WmsFactory/page', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å·¥åä¿¡æ¯è¡¨å表 |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsFactoryList (parameter) { |
| | | return axios({ |
| | | url: '/WmsFactory/list', |
| | | method: 'get', |
| | | params: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å å·¥åä¿¡æ¯è¡¨ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsFactoryAdd (parameter) { |
| | | return axios({ |
| | | url: '/WmsFactory/add', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * ç¼è¾å·¥åä¿¡æ¯è¡¨ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsFactoryEdit (parameter) { |
| | | return axios({ |
| | | url: '/WmsFactory/edit', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å é¤å·¥åä¿¡æ¯è¡¨ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsFactoryDelete (parameter) { |
| | | return axios({ |
| | | url: '/WmsFactory/delete', |
| | | method: 'post', |
| | | data: parameter |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 导åºå·¥åä¿¡æ¯è¡¨çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsFactoryToExcel (parameter) { |
| | | return axios({ |
| | | url: '/WmsFactory/toExcel', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 导å
¥å·¥åä¿¡æ¯è¡¨çExcelæä»¶ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsFactoryImportExcel (data, parameter) { |
| | | return axios({ |
| | | url: '/WmsFactory/importExcel', |
| | | method: 'post', |
| | | data: data, |
| | | params: parameter |
| | | |
| | | }) |
| | | } |
| | | |
| | | |
| | | /** |
| | | * ä¸è½½å·¥åä¿¡æ¯è¡¨çExcel导å
¥æ¨¡æ¿ |
| | | * |
| | | * @author ly |
| | | */ |
| | | export function WmsFactoryDownloadExcelTemplate(parameter) { |
| | | return axios({ |
| | | url: '/WmsFactory/downloadExcelTemplate', |
| | | method: 'get', |
| | | params: parameter, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="['factoryCode', {rules: [{required: true, message: '请è¾å
¥ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åç§°" v-decorator="['factoryName', {rules: [{required: true, message: '请è¾å
¥åç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="å°å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å°å" v-decorator="['factoryAddress']" /> |
| | | </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 { |
| | | WmsFactoryAdd |
| | | } from '@/api/modular/main/WmsBase/WmsFactoryManage' |
| | | 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]) |
| | | } |
| | | } |
| | | WmsFactoryAdd(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="['factoryCode', {rules: [{required: true, message: '请è¾å
¥ç¼å·ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="åç§°" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥åç§°" v-decorator="['factoryName', {rules: [{required: true, message: '请è¾å
¥åç§°ï¼'}]}]" /> |
| | | </a-form-item> |
| | | <a-form-item label="å°å" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请è¾å
¥å°å" v-decorator="['factoryAddress']" /> |
| | | </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 { |
| | | WmsFactoryEdit |
| | | } from '@/api/modular/main/WmsBase/WmsFactoryManage' |
| | | 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, |
| | | factoryCode: record.factoryCode, |
| | | factoryName: record.factoryName, |
| | | factoryAddress: record.factoryAddress, |
| | | 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] |
| | | } |
| | | } |
| | | WmsFactoryEdit(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="wmsFactoryDownloadExcelTemplate" 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 { WmsFactoryImportExcel, WmsFactoryDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsFactoryManage' |
| | | 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("wmsFactoryDownloadExcelTemplate") |
| | | window.downloadFile = this.wmsFactoryDownloadExcelTemplate; |
| | | this.getTable(); |
| | | }, |
| | | showDemand() { |
| | | this.detailed = !this.detailed; |
| | | }, |
| | | customRequest(document) { |
| | | this.uploadFile = document |
| | | }, |
| | | getTable() { |
| | | sysExcelTemplateGetColumnList({className: "WmsFactory"}).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) |
| | | WmsFactoryImportExcel(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 |
| | | }, |
| | | wmsFactoryDownloadExcelTemplate() { |
| | | WmsFactoryDownloadExcelTemplate({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('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.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.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('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" /> |
| | | </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: { |
| | | 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') |
| | | |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less"> |
| | | .table-operator { |
| | | margin-bottom: 18px; |
| | | } |
| | | button { |
| | | margin-right: 8px; |
| | | } |
| | | </style> |
| | |
| | | 代ç çæå¨æå¡ |
| | | </summary> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.CodeGen.CodeGenerateService.#ctor(Furion.DatabaseAccessor.IRepository{Admin.NET.Core.SysCodeGen},Furion.DatabaseAccessor.IRepository{Furion.Extras.Admin.NET.Entity.SysLowCode},Admin.NET.Application.ICodeGenConfigService,Furion.ViewEngine.IViewEngine,Furion.DatabaseAccessor.IRepository{Admin.NET.Core.SysMenu},Admin.NET.Application.ISysExcelTemplateService)"> |
| | | <member name="M:Admin.NET.Application.CodeGen.CodeGenerateService.#ctor(Furion.DatabaseAccessor.IRepository{Admin.NET.Core.SysCodeGen},Furion.DatabaseAccessor.IRepository{Furion.Extras.Admin.NET.Entity.SysLowCode},Admin.NET.Application.ICodeGenConfigService,Furion.ViewEngine.IViewEngine,Furion.DatabaseAccessor.IRepository{Admin.NET.Core.SysMenu},Admin.NET.Application.ISysEnumDataService)"> |
| | | <summary> |
| | | æé 彿° |
| | | </summary> |
| | |
| | | <param name="codeGenConfigService"></param> |
| | | <param name="viewEngine"></param> |
| | | <param name="sysMenuRep"></param> |
| | | <param name="sysEnumDataService"></param> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.CodeGen.CodeGenerateService.QueryCodeGenPageList(Admin.NET.Application.CodeGenPageInput)"> |
| | | <summary> |
| | |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.ISysEnumDataService.GetEnumDataListStrAsync(Admin.NET.Application.EnumDataInput)"> |
| | | <summary> |
| | | éè¿æä¸¾ç±»åè·åæä¸¾å¼å符串éå |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.ISysEnumDataService.GetEnumDataListStr(Admin.NET.Application.EnumDataInput)"> |
| | | <summary> |
| | | éè¿æä¸¾ç±»åè·åæä¸¾å¼å符串éå |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.ISysEnumDataService.GetEnumDataListByField(Admin.NET.Application.QueryEnumDataInput)"> |
| | | <summary> |
| | | |
| | |
| | | <member name="M:Admin.NET.Application.SysEnumDataService.GetEnumDataList(Admin.NET.Application.EnumDataInput)"> |
| | | <summary> |
| | | éè¿æä¸¾ç±»åè·åæä¸¾å¼éå |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.SysEnumDataService.GetEnumDataListStrAsync(Admin.NET.Application.EnumDataInput)"> |
| | | <summary> |
| | | éè¿æä¸¾ç±»åè·åæä¸¾å¼å符串éå |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.SysEnumDataService.GetEnumDataListStr(Admin.NET.Application.EnumDataInput)"> |
| | | <summary> |
| | | éè¿æä¸¾ç±»åè·åæä¸¾å¼å符串éå |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | |
| | | <param name="Aisle"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.WmsFactorySearch"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨æ¥è¯¢åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearch.FactoryCode"> |
| | | <summary> |
| | | ç¼å· |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearch.FactoryName"> |
| | | <summary> |
| | | åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearch.FactoryAddress"> |
| | | <summary> |
| | | å°å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearch.IsDisabled"> |
| | | <summary> |
| | | æ¯å¦ç¦ç¨ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearch.CreatedTime"> |
| | | <summary> |
| | | å建æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearch.UpdatedTime"> |
| | | <summary> |
| | | æ´æ°æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearch.CreatedUserName"> |
| | | <summary> |
| | | å建è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearch.UpdatedUserName"> |
| | | <summary> |
| | | ä¿®æ¹è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.WmsFactorySearchNonPage"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨ä¸å页æ¥è¯¢åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearchNonPage.FactoryCode"> |
| | | <summary> |
| | | ç¼å· |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearchNonPage.FactoryName"> |
| | | <summary> |
| | | åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearchNonPage.FactoryAddress"> |
| | | <summary> |
| | | å°å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearchNonPage.IsDisabled"> |
| | | <summary> |
| | | æ¯å¦ç¦ç¨ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearchNonPage.CreatedTime"> |
| | | <summary> |
| | | å建æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearchNonPage.UpdatedTime"> |
| | | <summary> |
| | | æ´æ°æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearchNonPage.CreatedUserName"> |
| | | <summary> |
| | | å建è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactorySearchNonPage.UpdatedUserName"> |
| | | <summary> |
| | | ä¿®æ¹è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.WmsFactoryInput"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨è¾å
¥åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryInput.FactoryCode"> |
| | | <summary> |
| | | ç¼å· |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryInput.FactoryName"> |
| | | <summary> |
| | | åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryInput.FactoryAddress"> |
| | | <summary> |
| | | å°å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryInput.IsDisabled"> |
| | | <summary> |
| | | æ¯å¦ç¦ç¨ |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.AddWmsFactoryInput"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨æ°å¢åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.DeleteWmsFactoryInput"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨å é¤åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.UpdateWmsFactoryInput"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨æ´æ°åæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.UpdateWmsFactoryInput.Id"> |
| | | <summary> |
| | | Idä¸»é® |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.QueryeWmsFactoryInput"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨è·ååä¸ªåæ° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.WmsFactoryOutput"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨è¾åºåæ° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.FactoryCode"> |
| | | <summary> |
| | | ç¼å· |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.FactoryName"> |
| | | <summary> |
| | | åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.FactoryAddress"> |
| | | <summary> |
| | | å°å |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.IsDisabled"> |
| | | <summary> |
| | | æ¯å¦ç¦ç¨ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.Id"> |
| | | <summary> |
| | | Idä¸»é® |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.CreatedTime"> |
| | | <summary> |
| | | å建æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.UpdatedTime"> |
| | | <summary> |
| | | æ´æ°æ¶é´ |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.CreatedUserName"> |
| | | <summary> |
| | | å建è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="P:Admin.NET.Application.WmsFactoryOutput.UpdatedUserName"> |
| | | <summary> |
| | | ä¿®æ¹è
åç§° |
| | | </summary> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.WmsFactoryService"> |
| | | <summary> |
| | | å·¥åä¿¡æ¯è¡¨æå¡ |
| | | </summary> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.Page(Admin.NET.Application.WmsFactorySearch)"> |
| | | <summary> |
| | | å页æ¥è¯¢å·¥åä¿¡æ¯è¡¨ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.ListNonPageAsync(Admin.NET.Application.WmsFactorySearchNonPage)"> |
| | | <summary> |
| | | ä¸å页æ¥è¯¢å·¥åä¿¡æ¯è¡¨å表 |
| | | </summary> |
| | | <param name="input">å·¥åä¿¡æ¯è¡¨æ¥è¯¢åæ°</param> |
| | | <returns>(å·¥åä¿¡æ¯è¡¨)å®ä¾å表</returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.Get(Admin.NET.Application.QueryeWmsFactoryInput)"> |
| | | <summary> |
| | | è·åå·¥åä¿¡æ¯è¡¨ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.List(Admin.NET.Application.WmsFactoryInput)"> |
| | | <summary> |
| | | è·åå·¥åä¿¡æ¯è¡¨å表 |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.Add(Admin.NET.Application.AddWmsFactoryInput)"> |
| | | <summary> |
| | | å¢å å·¥åä¿¡æ¯è¡¨ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.Delete(Admin.NET.Application.DeleteWmsFactoryInput)"> |
| | | <summary> |
| | | å é¤å·¥åä¿¡æ¯è¡¨ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.Update(Admin.NET.Application.UpdateWmsFactoryInput)"> |
| | | <summary> |
| | | æ´æ°å·¥åä¿¡æ¯è¡¨ |
| | | </summary> |
| | | <param name="input"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.ImportExcelAsync(Microsoft.AspNetCore.Http.IFormFile)"> |
| | | <summary> |
| | | Excel模æ¿å¯¼å
¥å·¥åä¿¡æ¯è¡¨åè½ |
| | | </summary> |
| | | <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | <returns>导å
¥çè®°å½æ°</returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.CommonImport(System.Data.DataTable,System.Int32)"> |
| | | <summary> |
| | | DataTable转æ¢å®ä½å¯¹è±¡å表 |
| | | </summary> |
| | | <param name="dataTable"></param> |
| | | <param name="dataStartLine">模çååå¼å§è¡</param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.DownloadExcelTemplate(System.String)"> |
| | | <summary> |
| | | æ ¹æ®çæ¬ä¸è½½å·¥åä¿¡æ¯è¡¨çExcel导å
¥æ¨¡æ¿ |
| | | </summary> |
| | | <param name="version">模æ¿çæ¬</param> |
| | | <returns>ä¸è½½çæ¨¡æ¿æä»¶</returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.CheckExisit(Admin.NET.Core.WmsFactory,System.Boolean)"> |
| | | <summary> |
| | | æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-æ°æ®åº |
| | | </summary> |
| | | <param name="input"></param> |
| | | <param name="isEdit"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="M:Admin.NET.Application.WmsFactoryService.CheckExisitForImport(System.Collections.Generic.List{Admin.NET.Core.WmsFactory})"> |
| | | <summary> |
| | | æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | </summary> |
| | | <param name="inputs"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="T:Admin.NET.Application.WmsMaterialSearch"> |
| | | <summary> |
| | | ç©æä¿¡æ¯è¡¨æ¥è¯¢åæ° |
| | |
| | | using Microsoft.EntityFrameworkCore.Infrastructure; |
| | | using Microsoft.EntityFrameworkCore.Metadata; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.Drawing; |
| | | using OfficeOpenXml; |
| | | using System; |
| | | using StackExchange.Profiling.Internal; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Web; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; |
| | | using OfficeOpenXml.Style; |
| | | using System.Net.WebSockets; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; |
| | | using Microsoft.EntityFrameworkCore.Metadata.Internal; |
| | | using System.Reflection; |
| | | using NetTopologySuite.Noding; |
| | | using System.Xml.Linq; |
| | | using static Npgsql.Replication.PgOutput.Messages.RelationMessage; |
| | | using StackExchange.Profiling.Internal; |
| | | using System.Collections.Generic; |
| | | using System.Data.SqlTypes; |
| | | |
| | | namespace Admin.NET.Application.CodeGen |
| | | { |
| | |
| | | private readonly IRepository<SysLowCode> _sysLowCodeRep; // 代ç çæå¨ä»å¨ |
| | | private readonly ICodeGenConfigService _codeGenConfigService; |
| | | private readonly IViewEngine _viewEngine; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly ISysEnumDataService _sysEnumDataService; |
| | | private readonly IRepository<SysMenu> _sysMenuRep; // èå表ä»å¨ |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="codeGenConfigService"></param> |
| | | /// <param name="viewEngine"></param> |
| | | /// <param name="sysMenuRep"></param> |
| | | /// <param name="sysEnumDataService"></param> |
| | | public CodeGenerateService(IRepository<SysCodeGen> sysCodeGenRep, |
| | | IRepository<SysLowCode> sysLowCodeRep, |
| | | ICodeGenConfigService codeGenConfigService, |
| | | IViewEngine viewEngine, |
| | | IRepository<SysMenu> sysMenuRep, |
| | | ISysExcelTemplateService sysExcelTemplateService) |
| | | ISysEnumDataService sysEnumDataService) |
| | | { |
| | | _sysCodeGenRep = sysCodeGenRep; |
| | | _sysLowCodeRep = sysLowCodeRep; |
| | | _codeGenConfigService = codeGenConfigService; |
| | | _viewEngine = viewEngine; |
| | | _sysMenuRep = sysMenuRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | _sysEnumDataService = sysEnumDataService; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | //è·åè¦å¤çç代ç çæé
ç½®çæ¯å¢æ¹ç模çåæ®µ |
| | | var showCodeGenConfigs = tableFieldList.Where(w => w.WhetherAddUpdate.Equals("Y")).ToList(); |
| | | showCodeGenConfigs = showCodeGenConfigs.Where(x => x.ColumnKey.ToLower() == "false").ToList(); |
| | | int _mergeCellsCount = showCodeGenConfigs.Count();//åå¹¶åï¼æ¨¡çèµå¼çæ é¢åæ°ï¼ |
| | | //è·åå¿
å¡«åæ®µ |
| | | |
| | |
| | | StringBuilder _remarkContentBuilder = new StringBuilder(); |
| | | _remarkContentBuilder.AppendLine(""); |
| | | _remarkContentBuilder.AppendLine("1.æ¯æExcel2007å以ä¸çæ¬æä»¶ã"); |
| | | _remarkContentBuilder.AppendLine("2.导å
¥æ°å¢æ°æ®æ¶ä¸è½è¶
è¿5000è¡ã"); |
| | | _remarkContentBuilder.AppendLine("3.导å
¥æ´æ°æ°æ®æ¶ä¸è½è¶
è¿2000è¡ã"); |
| | | _remarkContentBuilder.AppendLine("2.导å
¥æ°æ®æ¶ä¸è½è¶
è¿5000è¡ã"); |
| | | _remarkContentBuilder.AppendLine(""); |
| | | _remarkContentBuilder.AppendLine(""); |
| | | |
| | | Dictionary<string, string> typeNameDict = new() |
| | | { |
| | | { "string", "ææ¬ã"}, |
| | | { "int", "æ°åã"}, |
| | | { "long", "æ°åã"}, |
| | | { "decimal", "å°æ°ã"}, |
| | | { "bool", "å¸å°ã示ä¾ï¼æ¯ãå¦ã"}, |
| | | { "string", "è¾å
¥ææ¬ã"}, |
| | | { "int", "è¾å
¥æ°åã"}, |
| | | { "long", "è¾å
¥æ°åã"}, |
| | | { "decimal", "è¾å
¥å°æ°ã"}, |
| | | { "bool", "æ¯,å¦ã"}, |
| | | |
| | | }; |
| | | Dictionary<string, string> effectTypeDict = new() |
| | | { |
| | | { "datepicker", "æ¥æã 示ä¾: 2023/3/1"}, |
| | | { "datetimepicker", "æ¥ææ¶é´ã示ä¾: 2023/3/1 12:00:00"}, |
| | | { "datepicker", "æ¥æã 示ä¾: 2023/3/1ã"}, |
| | | { "datetimepicker", "æ¥ææ¶é´ã示ä¾: 2023/3/1 12:00:00ã"}, |
| | | |
| | | }; |
| | | |
| | | requiredTableFieldList.ForEach(x => |
| | | { |
| | | string text = ""; |
| | |
| | | { |
| | | text += typeNameDict[x.DtoNetType]; |
| | | } |
| | | else if (x.EffectType == "select") |
| | | { |
| | | var queryValue = x.DtoNetType.Split('.').Last(); |
| | | var enumStr = _sysEnumDataService.GetEnumDataListStr(new EnumDataInput() { EnumName = queryValue }); |
| | | text += enumStr + "ã"; |
| | | } |
| | | else |
| | | { |
| | | text += ("注æï¼ç±»åæªè½è¯å«åºæ¥ï¼éè¦èªå·±ç»´æ¤ï¼ï¼ï¼ã"); |
| | |
| | | Task<dynamic> GetEnumDataList([FromQuery] EnumDataInput input); |
| | | |
| | | /// <summary> |
| | | /// éè¿æä¸¾ç±»åè·åæä¸¾å¼å符串éå |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<string> GetEnumDataListStrAsync([FromQuery] EnumDataInput input); |
| | | |
| | | /// <summary> |
| | | /// éè¿æä¸¾ç±»åè·åæä¸¾å¼å符串éå |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | string GetEnumDataListStr([FromQuery] EnumDataInput input); |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | |
| | | using Furion.FriendlyException; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System.Linq; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿æä¸¾ç±»åè·åæä¸¾å¼å符串éå |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("sysEnumData/getEnumDataListStrAsync")] |
| | | public async Task<string> GetEnumDataListStrAsync([FromQuery] EnumDataInput input) |
| | | { |
| | | // æ¥æ¾æä¸¾ |
| | | var enumType = App.EffectiveTypes.FirstOrDefault(t => t.IsEnum && t.Name == input.EnumName); |
| | | if (enumType == null) |
| | | throw Oops.Oh(ErrorCode.D1502).StatusCode(405); |
| | | |
| | | // è·åæä¸¾çKeyåæè¿° |
| | | List<EnumDataOutput> retList = await Task.Run(() => EnumUtil.GetEnumDescDictionary(enumType) |
| | | .Select(x => new EnumDataOutput |
| | | { |
| | | Code = x.Key, |
| | | Value = x.Value |
| | | }).ToList()); |
| | | return string.Join(",", retList.Select(x => x.Value).ToList()); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿æä¸¾ç±»åè·åæä¸¾å¼å符串éå |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("sysEnumData/getEnumDataListStr")] |
| | | public string GetEnumDataListStr([FromQuery] EnumDataInput input) |
| | | { |
| | | // æ¥æ¾æä¸¾ |
| | | var enumType = App.EffectiveTypes.FirstOrDefault(t => t.IsEnum && t.Name == input.EnumName); |
| | | if (enumType == null) |
| | | throw Oops.Oh(ErrorCode.D1502).StatusCode(405); |
| | | |
| | | // è·åæä¸¾çKeyåæè¿° |
| | | List<EnumDataOutput> retList = EnumUtil.GetEnumDescDictionary(enumType) |
| | | .Select(x => new EnumDataOutput |
| | | { |
| | | Code = x.Key, |
| | | Value = x.Value |
| | | }).ToList(); |
| | | return string.Join(",", retList.Select(x => x.Value).ToList()); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿å®ä½å段类åè·åç¸å
³éåï¼ç®åä»
æ¯ææä¸¾ç±»åï¼ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core; |
| | | using Admin.NET.Core.Service; |
| | | using System.ComponentModel.DataAnnotations; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class WmsFactorySearch : PageInputBase |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string FactoryCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public virtual string FactoryName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°å |
| | | /// </summary> |
| | | public virtual string FactoryAddress { 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 WmsFactorySearchNonPage : PageInputNonPageBase |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string FactoryCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public virtual string FactoryName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°å |
| | | /// </summary> |
| | | public virtual string FactoryAddress { 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 WmsFactoryInput |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | [Required(ErrorMessage = "ç¼å·ä¸è½ä¸ºç©º")] |
| | | public virtual string FactoryCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | [Required(ErrorMessage = "åç§°ä¸è½ä¸ºç©º")] |
| | | public virtual string FactoryName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°å |
| | | /// </summary> |
| | | public virtual string FactoryAddress { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨æ°å¢åæ° |
| | | /// </summary> |
| | | public class AddWmsFactoryInput : WmsFactoryInput |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨å é¤åæ° |
| | | /// </summary> |
| | | public class DeleteWmsFactoryInput : BaseId |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨æ´æ°åæ° |
| | | /// </summary> |
| | | public class UpdateWmsFactoryInput : WmsFactoryInput |
| | | { |
| | | /// <summary> |
| | | /// Idä¸»é® |
| | | /// </summary> |
| | | [Required(ErrorMessage = "Id主é®ä¸è½ä¸ºç©º")] |
| | | public long? Id { get; set; } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨è·ååä¸ªåæ° |
| | | /// </summary> |
| | | public class QueryeWmsFactoryInput : BaseId |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Admin.NET.Core.Util.LowCode.Dto; |
| | | using System; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | /// <summary> |
| | | /// å·¥åä¿¡æ¯è¡¨è¾åºåæ° |
| | | /// </summary> |
| | | public class WmsFactoryOutput |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public string FactoryCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public string FactoryName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å°å |
| | | /// </summary> |
| | | public string FactoryAddress { 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 IWmsFactoryService |
| | | { |
| | | Task<WmsFactoryOutput> Get([FromQuery] QueryeWmsFactoryInput input); |
| | | Task<List<WmsFactoryOutput>> List([FromQuery] WmsFactoryInput input); |
| | | Task<PageResult<WmsFactoryOutput>> Page([FromQuery] WmsFactorySearch input); |
| | | Task<List<WmsFactoryOutput>> ListNonPageAsync([FromQuery] WmsFactorySearchNonPage input); |
| | | |
| | | Task Add(AddWmsFactoryInput input); |
| | | Task Update(UpdateWmsFactoryInput input); |
| | | Task Delete(DeleteWmsFactoryInput input); |
| | | Task<int> ImportExcelAsync(IFormFile file); |
| | | IActionResult DownloadExcelTemplate(string version); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Admin.NET.Core; |
| | | |
| | | namespace Admin.NET.Application |
| | | { |
| | | public class WmsFactoryMapper : IRegister |
| | | { |
| | | public void Register(TypeAdapterConfig config) |
| | | { |
| | | config.ForType<AddWmsFactoryInput, WmsFactory>() |
| | | ; |
| | | config.ForType<UpdateWmsFactoryInput, WmsFactory>() |
| | | ; |
| | | config.ForType<WmsFactory, WmsFactoryOutput>() |
| | | ; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 = "WmsFactory", Order = 100)] |
| | | [Route("api")] |
| | | public class WmsFactoryService : IWmsFactoryService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsFactory,MasterDbContextLocator> _wmsFactoryRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsFactoryService( |
| | | IRepository<WmsFactory,MasterDbContextLocator> wmsFactoryRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsFactoryRep = wmsFactoryRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页æ¥è¯¢å·¥åä¿¡æ¯è¡¨ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsFactory/page")] |
| | | public async Task<PageResult<WmsFactoryOutput>> Page([FromQuery] WmsFactorySearch input) |
| | | { |
| | | var wmsFactorys = await _wmsFactoryRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(input.FactoryCode), u => u.FactoryCode == input.FactoryCode) |
| | | .Where(!string.IsNullOrEmpty(input.FactoryName), u => EF.Functions.Like(u.FactoryName, $"%{input.FactoryName.Trim()}%")) |
| | | .Where(!string.IsNullOrEmpty(input.FactoryAddress), u => u.FactoryAddress == input.FactoryAddress) |
| | | .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<WmsFactorySearch>(input)) |
| | | .ProjectToType<WmsFactoryOutput>() |
| | | .ToADPagedListAsync(input.PageNo, input.PageSize); |
| | | return wmsFactorys; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸å页æ¥è¯¢å·¥åä¿¡æ¯è¡¨å表 |
| | | /// </summary> |
| | | /// <param name="input">å·¥åä¿¡æ¯è¡¨æ¥è¯¢åæ°</param> |
| | | /// <returns>(å·¥åä¿¡æ¯è¡¨)å®ä¾å表</returns> |
| | | [HttpGet("WmsFactory/listNonPage")] |
| | | public async Task<List<WmsFactoryOutput>> ListNonPageAsync([FromQuery] WmsFactorySearchNonPage input) |
| | | { |
| | | var pFactoryCode = input.FactoryCode?.Trim() ?? ""; |
| | | var pFactoryName = input.FactoryName?.Trim() ?? ""; |
| | | var pFactoryAddress = input.FactoryAddress?.Trim() ?? ""; |
| | | var pIsDisabled = input.IsDisabled; |
| | | var pCreatedTime = input.CreatedTime; |
| | | var pUpdatedTime = input.UpdatedTime; |
| | | var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; |
| | | var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; |
| | | var wmsFactorys = await _wmsFactoryRep.DetachedEntities |
| | | .Where(!string.IsNullOrEmpty(pFactoryCode), u => u.FactoryCode == pFactoryCode) |
| | | .Where(!string.IsNullOrEmpty(pFactoryName), u => EF.Functions.Like(u.FactoryName, $"%{pFactoryName}%")) |
| | | .Where(!string.IsNullOrEmpty(pFactoryAddress), u => u.FactoryAddress == pFactoryAddress) |
| | | .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<WmsFactoryOutput>() |
| | | .ToListAsync(); |
| | | return wmsFactorys; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå·¥åä¿¡æ¯è¡¨ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsFactory/detail")] |
| | | public async Task<WmsFactoryOutput> Get([FromQuery] QueryeWmsFactoryInput input) |
| | | { |
| | | return (await _wmsFactoryRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsFactoryOutput>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå·¥åä¿¡æ¯è¡¨å表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsFactory/list")] |
| | | public async Task<List<WmsFactoryOutput>> List([FromQuery] WmsFactoryInput input) |
| | | { |
| | | return await _wmsFactoryRep.DetachedEntities.ProjectToType<WmsFactoryOutput>().ToListAsync(); |
| | | } |
| | | |
| | | #region å¢ãå ãæ¹ |
| | | |
| | | /// <summary> |
| | | /// å¢å å·¥åä¿¡æ¯è¡¨ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsFactory/add")] |
| | | public async Task Add(AddWmsFactoryInput input) |
| | | { |
| | | var wmsFactory = input.Adapt<WmsFactory>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsFactory); |
| | | |
| | | wmsFactory.CreatedUserId = wmsFactory.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsFactory.CreatedUserName = wmsFactory.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsFactory.CreatedTime = wmsFactory.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsFactoryRep.InsertAsync(wmsFactory); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å·¥åä¿¡æ¯è¡¨ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsFactory/delete")] |
| | | public async Task Delete(DeleteWmsFactoryInput input) |
| | | { |
| | | var wmsFactory = await _wmsFactoryRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsFactoryRep.DeleteAsync(wmsFactory); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°å·¥åä¿¡æ¯è¡¨ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost("WmsFactory/edit")] |
| | | public async Task Update(UpdateWmsFactoryInput input) |
| | | { |
| | | var isExist = await _wmsFactoryRep.AnyAsync(u => u.Id == input.Id, false); |
| | | if (!isExist) throw Oops.Oh(ErrorCode.D1002); |
| | | |
| | | var wmsFactory = input.Adapt<WmsFactory>(); |
| | | //éªè¯ |
| | | await CheckExisit(wmsFactory,true); |
| | | |
| | | wmsFactory.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsFactory.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsFactory.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsFactoryRep.UpdateAsync(wmsFactory,ignoreNullValues:true); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 导å
¥ |
| | | |
| | | /// <summary> |
| | | /// Excel模æ¿å¯¼å
¥å·¥åä¿¡æ¯è¡¨åè½ |
| | | /// </summary> |
| | | /// <param name="file">Excelæ¨¡æ¿æä»¶</param> |
| | | /// <returns>导å
¥çè®°å½æ°</returns> |
| | | [HttpPost("WmsFactory/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) |
| | | { |
| | | _wmsFactoryRep.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<WmsFactory>> CommonImport(DataTable dataTable, int dataStartLine) |
| | | { |
| | | |
| | | var details = new List<WmsFactory>(); |
| | | int index = dataStartLine;//模çååå¼å§è¡ |
| | | foreach (System.Data.DataRow row in dataTable.Rows) |
| | | { |
| | | index++; |
| | | |
| | | //导å
¥æ¨¡çå®å¶å代ç ï¼æ¿æ¢æ¨¡ç使ç¨ï¼ |
| | | |
| | | var addItem = new WmsFactory() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region å®ä¹åé |
| | | var _FactoryCode = "";//ç¼å· |
| | | var _FactoryName = "";//åç§° |
| | | var _FactoryAddress = "";//å°å |
| | | var _IsDisabled = "";//æ¯å¦ç¦ç¨ |
| | | var _Id = "";//Idä¸»é® |
| | | #endregion |
| | | |
| | | |
| | | #region åå¼ |
| | | _FactoryCode = row["ç¼å·"]?.ToString() ; |
| | | _FactoryName = row["åç§°"]?.ToString() ; |
| | | _FactoryAddress = row["å°å"]?.ToString() ; |
| | | _IsDisabled = row["æ¯å¦ç¦ç¨"]?.ToString() ; |
| | | _Id = row["Id主é®"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region éªè¯ |
| | | |
| | | if (string.IsNullOrEmpty(_FactoryCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[ç¼å·]{_FactoryCode}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_FactoryCode)) |
| | | { |
| | | addItem.FactoryCode = (string)_FactoryCode; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_FactoryName)) |
| | | { |
| | | throw Oops.Oh($"第{index}è¡[åç§°]{_FactoryName}ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_FactoryName)) |
| | | { |
| | | addItem.FactoryName = (string)_FactoryName; |
| | | } |
| | | if(!string.IsNullOrEmpty(_FactoryAddress)) |
| | | { |
| | | addItem.FactoryAddress = (string)_FactoryAddress; |
| | | } |
| | | 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("WmsFactory/downloadExcelTemplate")] |
| | | 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")); |
| | | 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( WmsFactory input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//æ°å¢ |
| | | { |
| | | //æ°æ®æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsFactoryRep.AnyAsync(u => |
| | | u.FactoryCode.Equals(input.FactoryCode) |
| | | ,false); |
| | | } |
| | | else//ç¼è¾ |
| | | { |
| | | |
| | | |
| | | |
| | | //å½åç¼è¾æ°æ®ä»¥å¤æ¯å¦åå¨éå¤ |
| | | isExist = await _wmsFactoryRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.FactoryCode.Equals(input.FactoryCode) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®èå主é®éªè¯æ°æ®æ¯å¦å·²åå¨-导å
¥æ¶éªè¯ |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsFactory> inputs) |
| | | { |
| | | //æ ¹æ®èå主é®éªè¯è¡¨æ ¼ä¸ä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导å
¥æ°æ®ä¸è½ä¸ºç©º"); |
| | | } |
| | | //æ°æ®æ¯å¦éå¤ |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.FactoryCode |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.FactoryCode |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var wmsFactory = existExcelItem.Adapt<WmsFactory>(); |
| | | var item= existExcelItem.Adapt<WmsFactory>(); |
| | | throw Oops.Oh($"导å
¥çè¡¨æ ¼ä¸,ç¼å·[{item.FactoryCode}]å·²åå¨"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //æ ¹æ®èå主é®éªè¯æ°æ®åºä¸æ¯å¦å·²åå¨ç¸åæ°æ® |
| | | var existDBItem = await _wmsFactoryRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.FactoryCode |
| | | ) |
| | | .Contains("" |
| | | +w.FactoryCode |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var wmsFactory = existExcelItem.Adapt<WmsFactory>(); |
| | | var item= existExcelItem.Adapt<WmsFactory>(); |
| | | throw Oops.Oh($"ç³»ç»ä¸,ç¼å·[{item.FactoryCode}]å·²åå¨"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |