diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue index 6ed423e..0788f31 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue @@ -1,145 +1,64 @@ <template> - <a-card :bordered="false"> - <!-- 查询区域 --> - <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> - <a-row :gutter="24"> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="货主"> - <a-select - show-search - placeholder="请选择货主" - option-filter-prop="children" - v-model="queryParam.companyCode"> - <a-select-option v-for="item in companyList" :key="item.name" :value="item.code">{{ - item.name - }} - </a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="库区"> - <a-select - show-search - placeholder="请选择库区" - option-filter-prop="children" - v-model="queryParam.zoneCode"> - <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code"> - {{item.name}} - </a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="库位编码"> - <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="容器编码"> - <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="库存状态"> - <j-dict-select-tag placeholder="请选择库存状态" v-model="queryParam.inventoryStatus" dictCode="inventory_status"/> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="物料编码"> - <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="物料名称"> - <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input> - </a-form-item> - </a-col> - <template v-if="toggleSearchStatus"> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="物料规格"> - <a-input placeholder="请输入物料规格" v-model="queryParam.materialSpec"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="物料单位"> - <a-input placeholder="请输入物料单位" v-model="queryParam.materialUnit"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="容器状态"> - <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.containerStatus" dictCode="container_status"/> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="库龄(天)"> - <a-input placeholder="请输入库龄(天)" v-model="queryParam.inventoryAge"></a-input> - </a-form-item> - </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="唯一号"> - <a-input placeholder="请输入唯一号" v-model="queryParam.uniqueCode"></a-input> - </a-form-item> - </a-col> - <a-col :xl="10" :lg="11" :md="12" :sm="24"> - <a-form-item label="创建日期"> - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date> - <span class="query-group-split-cust"></span> - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.createTime_end"></j-date> - </a-form-item> - </a-col> - </template> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> - <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> - <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> - <a @click="handleToggleSearch" style="margin-left: 8px"> - {{ toggleSearchStatus ? '收起' : '展开' }} - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> - </a> - </span> - </a-col> - </a-row> - </a-form> - </div> - <!-- 查询区域-END --> - + <a-card :bordered="false" :class="'cust-erp-sub-tab'"> <!-- 操作按钮区域 --> - <div class="table-operator"> - <a-button v-has="'inventoryChild:superSearch'" @click="handleAdd" type="primary" icon="plus">新增</a-button> - <a-button v-has="'inventoryChild:export'" type="primary" icon="download" @click="handleExportXls('库存明细')">导出</a-button> - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> - <a-button v-has="'inventoryChild:import'" type="primary" icon="import">导入</a-button> + <div class="table-operator" v-if="mainId"> + <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> + <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')" + >导出 + </a-button + > + <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button> + <a-upload + v-has="'inventoryDetail:import'" + name="file" + :showUploadList="false" + :multiple="false" + :headers="tokenHeader" + :action="importExcelUrl" + @change="handleImportExcel" + > + <a-button type="primary" icon="import">导入</a-button> </a-upload> <a-dropdown v-if="selectedRowKeys.length > 0"> - <a-menu slot="overlay"> - <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> + <a-menu slot="overlay" v-has="'inventoryDetail:deleteBatch'"> + <a-menu-item key="1" @click="batchDel"> + <a-icon type="delete"/> + 删除 + </a-menu-item> </a-menu> - <a-button v-has="'inventoryChild:delete'" style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> + <a-button style="margin-left: 8px"> + 批量操作 + <a-icon type="down"/> + </a-button> </a-dropdown> </div> <!-- table区域-begin --> <div> <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项 <a style="margin-left: 24px" @click="onClearSelected">清空</a> </div> <a-table ref="table" size="middle" - :scroll="{x:true}" bordered rowKey="id" + :scroll="{ x: true }" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - class="j-table-force-nowrap" - @change="handleTableChange"> + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" + @change="handleTableChange" + > + <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText"> + <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)"> + {{ inventoryStatus_dictText }} + </a-tag> + </span> <span slot="companyCode" slot-scope="companyCode"> <a-tag :key="companyCode" color="blue"> @@ -147,197 +66,248 @@ </a-tag> </span> - <span slot="zoneCode" slot-scope="zoneCode"> - <a-tag :key="zoneCode" color=blue> - {{ solutionZoneCode(zoneCode) }} - </a-tag> - </span> - <template slot="htmlSlot" slot-scope="text"> <div v-html="text"></div> </template> <template slot="imgSlot" slot-scope="text"> <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> - <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> + <img + v-else + :src="getImgView(text)" + height="25px" + alt="" + style="max-width:80px;font-size: 12px;font-style: italic;" + /> </template> <template slot="fileSlot" slot-scope="text"> <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> - <a-button - v-else - :ghost="true" - type="primary" - icon="download" - size="small" - @click="downloadFile(text)"> + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)"> 下载 </a-button> </template> + <span slot="action" slot-scope="text, record"> - <a v-has="'inventoryChild:edit'" @click="handleEdit(record)">编辑</a> + <a v-has="'inventoryDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a> + <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> + <a v-has="'inventoryDetail:delete'">删除</a> + </a-popconfirm> </span> </a-table> </div> - <inventory-child-modal ref="modalForm" @ok="modalFormOk"></inventory-child-modal> + <inventoryDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></inventoryDetail-modal> </a-card> </template> <script> - -import '@/assets/less/TableExpand.less' -import { mixinDevice } from '@/utils/mixin' -import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import InventoryChildModal from './modules/InventoryChildModal' -import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' - -import {getCompanyList, getZoneList} from "@api/api"; +import {JeecgListMixin} from '@/mixins/JeecgListMixin' +import InventoryDetailModal from './modules/InventoryDetailModal' +import {getCompanyList, getZoneList} from '@/api/api' export default { - name: 'InventoryChildList', - mixins:[JeecgListMixin, mixinDevice], - components: { - InventoryChildModal + name: 'InventoryDetailList', + mixins: [JeecgListMixin], + components: {InventoryDetailModal}, + props: { + mainId: { + type: String, + default: '', + required: false + } + }, + watch: { + mainId: { + immediate: true, + handler(val) { + if (!this.mainId) { + this.clearList() + } else { + this.queryParam['inventoryHeaderId'] = val + this.loadData(1) + } + } + } }, - data () { + data() { return { - zoneList: [], + description: '库存表管理页面', + disableMixinCreated: true, companyList: [], - description: '库存明细管理页面', // 表头 columns: [ { - title: '#', - dataIndex: '', - key:'rowIndex', - width:60, - align:"center", - customRender:function (t,r,index) { - return parseInt(index)+1; - } - }, - { - title:'货主', - align:"center", - dataIndex: 'companyCode' - }, - { - title:'库区', - align:"center", - dataIndex: 'zoneCode' + title: '库存详情ID', + align: 'center', + dataIndex: 'id' }, { - title:'容器状态', - align:"center", - dataIndex: 'containerStatus_dictText' + title: '货主', + align: 'center', + dataIndex: 'companyCode', + key: 'companyCode', + scopedSlots: {customRender: 'companyCode'} }, + // { + // title: '库区', + // align: "center", + // dataIndex: 'zoneCode' + // }, { - title:'容器编码', - align:"center", + title: '容器编码', + align: 'center', dataIndex: 'containerCode' }, { - title:'库位编码', - align:"center", + title: '库位编码', + align: 'center', dataIndex: 'locationCode' }, { - title:'物料编码', - align:"center", + title: '物料编码', + align: 'center', dataIndex: 'materialCode' }, { - title:'物料名称', - align:"center", + title: '物料名称', + align: 'center', dataIndex: 'materialName' }, { - title:'物料规格', - align:"center", + title: '物料规格', + align: 'center', dataIndex: 'materialSpec' }, { - title:'物料单位', - align:"center", + title: '物料单位', + align: 'center', dataIndex: 'materialUnit' }, { - title:'库存状态', - align:"center", - dataIndex: 'inventoryStatus_dictText' + title: '数量', + align: 'center', + dataIndex: 'qty' }, { - title:'库龄(天)', - align:"center", - dataIndex: 'inventoryAge' + title: '任务锁定数量', + align: 'center', + dataIndex: 'taskQty' }, { - title:'唯一号', - align:"center", - dataIndex: 'uniqueCode' + title: '托盘填充度', + align: 'center', + dataIndex: 'fillDensity', + customRender: text => { + return text == null ? '' : text + '%' + } }, { - title:'创建人', - align:"center", + title: '库存状态', + align: 'center', + dataIndex: 'inventoryStatus_dictText', + scopedSlots: {customRender: 'inventoryStatus_dictText'} + }, + { + title: '批次', + align: 'center', + dataIndex: 'batch' + }, + { + title: '序列号', + align: "center", + dataIndex: 'sn' + }, + { + title: '入库日期', + align: 'center', + dataIndex: 'receiptDate' + }, + { + title: '库龄(天)', + align: 'center', + dataIndex: 'inventoryAge' + }, + { + title: '创建人', + align: 'center', dataIndex: 'createBy' }, { - title:'创建日期', - align:"center", + title: '创建日期', + align: 'center', dataIndex: 'createTime' }, { - title:'更新人', - align:"center", + title: '更新人', + align: 'center', dataIndex: 'updateBy' }, { - title:'更新日期', - align:"center", + title: '更新日期', + align: 'center', dataIndex: 'updateTime' }, { title: '操作', dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' } + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: {customRender: 'action'} } ], url: { - list: "/inventory/inventoryChild/list", - delete: "/inventory/inventoryChild/delete", - deleteBatch: "/inventory/inventoryChild/deleteBatch", - exportXlsUrl: "/inventory/inventoryChild/exportXls", - importExcelUrl: "inventory/inventoryChild/importExcel", - + list: '/inventory/inventoryHeader/listInventoryDetailByMainId', + delete: '/inventory/inventoryHeader/deleteInventoryDetail', + deleteBatch: '/inventory/inventoryHeader/deleteBatchInventoryDetail', + exportXlsUrl: '/inventory/inventoryHeader/exportInventoryDetail', + importUrl: '/inventory/inventoryHeader/importInventoryDetail' }, - dictOptions:{}, - superFieldList:[], + dictOptions: { + containerStatus: [] + } } }, created() { - this.getSuperFieldList(); - this.loadFrom(); + this.loadFrom() }, computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - }, + importExcelUrl() { + return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}` + } }, methods: { + getStatusColor(status) { + const colors = { + '良品': 'green', + '报废品': 'purple', + '待确认 ': 'grey', + '次品': 'red', + default: 'blue' + }; + return colors[status] || colors.default; + }, loadFrom() { - getZoneList().then((res) => { - if (res.success) { - this.zoneList = res.result - } - }); + // getZoneList().then((res) => { + // if (res.success) { + // this.zoneList = res.result + // } + // }); getCompanyList().then(res => { if (res.success) { this.companyList = res.result } }) }, + // solutionZoneCode(value) { + // var actions = [] + // Object.keys(this.zoneList).some((key) => { + // if (this.zoneList[key].code == ('' + value)) { + // actions.push(this.zoneList[key].name) + // return true + // } + // }) + // return actions.join('') + // }, solutionCompany(value) { var actions = [] Object.keys(this.companyList).some(key => { @@ -348,41 +318,14 @@ export default { }) return actions.join('') }, - solutionZoneCode(value) { - var actions = [] - Object.keys(this.zoneList).some((key) => { - if (this.zoneList[key].code == ('' + value)) { - actions.push(this.zoneList[key].name) - return true - } - }) - return actions.join('') - }, - initDictConfig(){ - }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'string',value:'companyCode',text:'货主',dictCode:''}) - fieldList.push({type:'string',value:'zoneCode',text:'库区',dictCode:''}) - fieldList.push({type:'string',value:'containerStatus',text:'容器状态',dictCode:'container_status'}) - fieldList.push({type:'string',value:'containerCode',text:'容器编码',dictCode:''}) - fieldList.push({type:'string',value:'locationCode',text:'库位编码',dictCode:''}) - fieldList.push({type:'string',value:'materialCode',text:'物料编码',dictCode:''}) - fieldList.push({type:'string',value:'materialName',text:'物料名称',dictCode:''}) - fieldList.push({type:'string',value:'materialSpec',text:'物料规格',dictCode:''}) - fieldList.push({type:'string',value:'materialUnit',text:'物料单位',dictCode:''}) - fieldList.push({type:'string',value:'inventoryStatus',text:'库存状态',dictCode:'inventory_status'}) - fieldList.push({type:'int',value:'inventoryAge',text:'库龄(天)',dictCode:''}) - fieldList.push({type:'string',value:'uniqueCode',text:'唯一号',dictCode:''}) - fieldList.push({type:'string',value:'createBy',text:'创建人',dictCode:''}) - fieldList.push({type:'datetime',value:'createTime',text:'创建日期'}) - fieldList.push({type:'string',value:'updateBy',text:'更新人',dictCode:''}) - fieldList.push({type:'datetime',value:'updateTime',text:'更新日期'}) - this.superFieldList = fieldList + clearList() { + this.dataSource = [] + this.selectedRowKeys = [] + this.ipagination.current = 1 } } } </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue index 65503bb..8ea82ed 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue @@ -189,9 +189,9 @@ export default { dataIndex: 'batch' }, // { - // title: '唯一号', + // title: '序列号', // align: "center", - // dataIndex: 'uniqueCode' + // dataIndex: 'sn' // }, { title: '入库日期', diff --git a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue index 5466a9b..bbc0d81 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue @@ -77,8 +77,8 @@ </a-form-item> </a-col> <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="唯一号"> - <a-input placeholder="请输入唯一号" v-model="queryParam.uniqueCode"></a-input> + <a-form-item label="序列号"> + <a-input placeholder="请输入序列号" v-model="queryParam.sn"></a-input> </a-form-item> </a-col> --> <a-col :xl="12" :lg="14" :md="16" :sm="24"> @@ -320,9 +320,9 @@ export default { dataIndex: 'batch' }, // { - // title:'唯一号', + // title:'序列号', // align:"center", - // dataIndex: 'uniqueCode' + // dataIndex: 'sn' // }, { title: '入库日期', @@ -443,7 +443,7 @@ export default { fieldList.push({type: 'BigDecimal', value: 'taskQty', text: '任务锁定数量', dictCode: ''}) fieldList.push({type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status'}) fieldList.push({type: 'string', value: 'batch', text: '批次', dictCode: ''}) - // fieldList.push({type:'string',value:'uniqueCode',text:'唯一号',dictCode:''}) + // fieldList.push({type:'string',value:'sn',text:'序列号',dictCode:''}) fieldList.push({type: 'datetime', value: 'receiptDate', text: '入库日期'}) fieldList.push({type: 'int', value: 'inventoryAge', text: '库龄(天)', dictCode: ''}) fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''}) diff --git a/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue b/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue index 511e158..688c790 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue @@ -59,8 +59,8 @@ </a-form-model-item> </a-col> <a-col :span="24"> - <a-form-model-item label="唯一号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="uniqueCode"> - <a-input v-model="model.uniqueCode" placeholder="请输入唯一号" ></a-input> + <a-form-model-item label="序列号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sn"> + <a-input v-model="model.sn" placeholder="请输入序列号" ></a-input> </a-form-model-item> </a-col> </a-row> @@ -106,8 +106,8 @@ validatorRules: { materialName: [ { required: true, message: '请输入物料名称!'}, ], - uniqueCode: [ - { required: true, message: '请输入唯一号!'}, + sn: [ + { required: true, message: '请输入序列号!'}, ], }, url: { @@ -160,7 +160,7 @@ validatorRules: { that.confirmLoading = false; }) } - + }) }, } diff --git a/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue b/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue index 4abc3c8..2ed3407 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue @@ -2,33 +2,33 @@ <a-card :bordered="false" :class="'cust-erp-sub-tab'"> <!-- 操作按钮区域 --> <div class="table-operator" v-if="mainId"> - <!-- <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> --> + <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> <a-button type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button> </div> <!-- table区域-begin --> <div> - <a-table + <a-table ref="table" size="middle" bordered rowKey="id" - :scroll="{ x: true }" + :scroll="{x:true}" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" - @change="handleTableChange" - class='j-table-force-nowrap' - > - - <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText"> + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + @change="handleTableChange"> + + <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText"> <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)"> {{ inventoryStatus_dictText }} </a-tag> </span> - + <span slot="companyCode" slot-scope="companyCode"> + <a-tag :key="companyCode" color="blue"> {{ solutionCompany(companyCode) }} </a-tag> @@ -47,13 +47,17 @@ </template> <script> + import { JeecgListMixin } from '@/mixins/JeecgListMixin' import InventoryDetailModal from '../modules/InventoryDetailModal' + import { getCompanyList, getZoneList } from '@/api/api' export default { + name: 'InventoryDetailSubTable', mixins: [JeecgListMixin], + components: { InventoryDetailModal }, props: { mainId: { @@ -69,6 +73,7 @@ export default { if (!this.mainId) { this.clearList() } else { + this.queryParam['zoneCode'] = val.split("_")[0]; this.queryParam['materialCode'] = val.split("_")[1]; this.loadData(1) @@ -78,6 +83,7 @@ export default { }, data() { return { + description: '库存物料汇总详情页面', disableMixinCreated: true, companyList: [], @@ -86,18 +92,22 @@ export default { columns: [ { title: '库存详情ID', + align: 'center', dataIndex: 'id' }, { title: '货主', + align: 'center', dataIndex: 'companyCode', key: 'companyCode', + scopedSlots: { customRender: 'companyCode' } }, { title: '库区', + align: 'center', dataIndex: 'zoneCode', key: 'zoneCode', @@ -123,11 +133,6 @@ export default { align: 'center', dataIndex: 'materialName' }, - // { - // title: '物料规格', - // align: 'center', - // dataIndex: 'materialSpec' - // }, { title: '物料单位', align: 'center', @@ -160,9 +165,9 @@ export default { dataIndex: 'batch' }, { - title: '唯一号', + title: '序列号', align: 'center', - dataIndex: 'uniqueCode' + dataIndex: 'sn' }, { title: '入库日期', @@ -191,21 +196,12 @@ export default { }, { title: '更新日期', - align: 'center' + align: 'center', + dataIndex: 'updateTime' }, - // { - // title: '操作', - // dataIndex: 'action', - // align: 'center', - // fixed: 'right', - // width: 147, - // scopedSlots: { customRender: 'action' } - // } ], url: { - list: '/InventoryMaterialSummary/inventoryMaterialSummary/inventoryMaterialSummaryChild', - exportXlsUrl: '/inventory/inventoryHeader/exportInventoryDetail', - importUrl: '/inventory/inventoryHeader/importInventoryDetail' + importUrl: "/inventory/inventoryHeader/importInventoryDetail", }, dictOptions: { containerStatus: [] @@ -213,7 +209,7 @@ export default { } }, created() { - this.loadFrom() + this.loadFrom(); }, computed: { importExcelUrl() { @@ -232,6 +228,7 @@ export default { return colors[status] || colors.default; }, loadFrom() { + getCompanyList().then(res => { if (res.success) { this.companyList = res.result @@ -244,6 +241,7 @@ export default { }) }, solutionCompany(value) { + let actions = [] Object.keys(this.companyList).some(key => { if (this.companyList[key].code === '' + value) { diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue index aa0d5ef..ef7f163 100644 --- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue @@ -117,8 +117,8 @@ </a-button> </template> <span slot="action" slot-scope="text, record"> - <a v-if="record.status == 0 && record.taskType == 200" @click="selectFillPort(record)" v-has="'receiptContainerHeader:fill'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a> - <a v-else-if="record.status == 0" @click="selectContainerStatus(record)" v-has="'receiptContainerHeader:fill'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a> + <a v-if="record.status == 0 && record.taskType == 200" @click="selectFillPort(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a> + <a v-else-if="record.status == 0" @click="selectContainerStatus(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a> <!-- <a v-if="record.status == 0 && record.taskType == 200" @click="selectPort(record)" v-has="'receiptContainerHeader:createTask'">生成任务<a-divider type="vertical"/></a>--> <!-- <a v-else-if="record.status == 0" @click="createTask(record)" v-has="'receiptContainerHeader:createTask'">生成任务<a-divider type="vertical"/></a>--> <a-popconfirm v-if="record.status == 0" v-has="'receiptContainerHeader:delete'" title="确定取消配盘吗?" @confirm="() => handleDelete(record.id)"> diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java index 7d32058..582b8bd 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java @@ -123,6 +123,7 @@ public class LocationAllocationServiceImpl implements LocationAllocationService if (roadWays == null || roadWays.size() == 0) { throw new JeecgBootException("分配库位时, 巷道为空"); } + Collections.shuffle(roadWays); Integer roadWay = locationAllocationService.getRoadWay(roadWays, warehouseCode); // 优先找外侧库位 LambdaQueryWrapper<Location> locationLambda = Wrappers.lambdaQuery(); @@ -176,6 +177,10 @@ public class LocationAllocationServiceImpl implements LocationAllocationService roadWays = locationList.stream().map(Location::getRoadWay).distinct().collect(toList()); } String lastString = "ORDER BY high asc, layer asc, id asc limit 1"; + if (roadWays == null || roadWays.size() == 0) { + throw new JeecgBootException("分配库位时, 巷道为空"); + } + Collections.shuffle(roadWays); Integer roadWay = locationAllocationService.getRoadWay(roadWays, warehouseCode); LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); locationLambdaQueryWrapper.eq(Location::getZoneCode, zoneCode).eq(Location::getWarehouseCode, warehouseCode).eq(Location::getRoadWay, roadWay) @@ -194,11 +199,18 @@ public class LocationAllocationServiceImpl implements LocationAllocationService @Override @Transactional(rollbackFor = Exception.class) public Integer getRoadWay(List<Integer> roadWays, String warehouseCode) { + if (StringUtils.isEmpty(roadWays)) { + throw new JeecgBootException("分配库位错误,没有巷道"); + } + int roadWay = roadWays.get(0); if (roadWays.size() == 1) { - return roadWays.get(0); + return roadWay; } roadWays = locationAllocationService.removeRoadWaysByPreLocations(roadWays, warehouseCode); - int roadWay = getRoadWayByMaxFreeLocation(roadWays, warehouseCode); + if (StringUtils.isEmpty(roadWays)) { + return roadWay; + } + roadWay = getRoadWayByMaxFreeLocation(roadWays, warehouseCode); return roadWay; } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java index 6c62c6a..9039620 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java @@ -119,6 +119,7 @@ public class WcsServiceImpl implements WcsService { String height = warecellDomain.getHeight(); String taskNo = warecellDomain.getTaskNo(); String locationCode = null; + Integer preTaskNo = 0; List<Integer> roadWays = warecellDomain.getRoadWays(); if (height == null) { return Result.error("分配库位时,高度为空"); @@ -139,6 +140,13 @@ public class WcsServiceImpl implements WcsService { } int taskType = taskHeader.getTaskType(); String containerCode = taskHeader.getContainerCode(); + String toLocationCode = taskHeader.getToLocationCode(); + if (StringUtils.isNotEmpty(toLocationCode)) { + WcsTask wcsTask2 = new WcsTask(); + wcsTask2.setToLocationCode(toLocationCode); + wcsTask2.setPreTaskNo(String.valueOf(preTaskNo)); + return Result.OK(wcsTask2); + } Container container = containerService.getContainerByCode(containerCode, warehouseCode); if (container == null) { return Result.error("分配库位时,任务托盘为空"); @@ -228,7 +236,6 @@ public class WcsServiceImpl implements WcsService { // 修改任务明细目标库位 Location location = locationService.getLocationByCode(locationCode, warehouseCode); int rowFlag = location.getRowFlag().intValue(); - Integer preTaskNo = 0; // 如果是外侧库位,那么就要判断该库位对应的内侧库位是不是有托盘 if (rowFlag == QuantityConstant.ROW_OUT) { Location insideLocation = locationService.getInsideNear(location); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java index 9c40ca1..f2a48e6 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java @@ -1,108 +1,107 @@ package org.jeecg.modules.wms.inventory.inventoryChild.entity; import java.io.Serializable; -import java.io.UnsupportedEncodingException; import java.util.Date; -import java.math.BigDecimal; + +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; -import org.jeecg.common.aspect.annotation.Dict; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * @Description: 库存明细 - * @Author: jeecg-boot - * @Date: 2023-03-24 - * @Version: V1.0 + * @Author: jeecg-boot + * @Date: 2023-03-24 + * @Version: V1.0 */ @Data @TableName("inventory_child") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -@ApiModel(value="inventory_child对象", description="库存明细") +@ApiModel(value = "inventory_child对象", description = "库存明细") public class InventoryChild implements Serializable { private static final long serialVersionUID = 1L; - /**主键*/ - @TableId(type = IdType.ASSIGN_ID) + /** 主键 */ + @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主键") private String id; - /**库存头ID*/ - @Excel(name = "库存头ID", width = 15) + /** 库存头ID */ + @Excel(name = "库存头ID", width = 15) @ApiModelProperty(value = "库存头ID") private Integer inventoryHeaderId; - /**仓库编码*/ - @Excel(name = "仓库编码", width = 15) + /** 仓库编码 */ + @Excel(name = "仓库编码", width = 15) @ApiModelProperty(value = "仓库编码") private String warehouseCode; - /**货主*/ - @Excel(name = "货主", width = 15) + /** 货主 */ + @Excel(name = "货主", width = 15) @ApiModelProperty(value = "货主") private String companyCode; - /**库区*/ - @Excel(name = "库区", width = 15) + /** 库区 */ + @Excel(name = "库区", width = 15) @ApiModelProperty(value = "库区") private String zoneCode; - /**容器状态*/ - @Excel(name = "容器状态", width = 15, dicCode = "container_status") - @Dict(dicCode = "container_status") + /** 容器状态 */ + @Excel(name = "容器状态", width = 15, dicCode = "container_status") + @Dict(dicCode = "container_status") @ApiModelProperty(value = "容器状态") private String containerStatus; - /**容器编码*/ - @Excel(name = "容器编码", width = 15) + /** 容器编码 */ + @Excel(name = "容器编码", width = 15) @ApiModelProperty(value = "容器编码") private String containerCode; - /**库位编码*/ - @Excel(name = "库位编码", width = 15) + /** 库位编码 */ + @Excel(name = "库位编码", width = 15) @ApiModelProperty(value = "库位编码") private String locationCode; - /**物料编码*/ - @Excel(name = "物料编码", width = 15) + /** 物料编码 */ + @Excel(name = "物料编码", width = 15) @ApiModelProperty(value = "物料编码") private String materialCode; - /**物料名称*/ - @Excel(name = "物料名称", width = 15) + /** 物料名称 */ + @Excel(name = "物料名称", width = 15) @ApiModelProperty(value = "物料名称") private String materialName; - /**物料规格*/ - @Excel(name = "物料规格", width = 15) + /** 物料规格 */ + @Excel(name = "物料规格", width = 15) @ApiModelProperty(value = "物料规格") private String materialSpec; - /**物料单位*/ - @Excel(name = "物料单位", width = 15) + /** 物料单位 */ + @Excel(name = "物料单位", width = 15) @ApiModelProperty(value = "物料单位") private String materialUnit; - /**库存状态*/ - @Excel(name = "库存状态", width = 15, dicCode = "inventory_status") - @Dict(dicCode = "inventory_status") + /** 库存状态 */ + @Excel(name = "库存状态", width = 15, dicCode = "inventory_status") + @Dict(dicCode = "inventory_status") @ApiModelProperty(value = "库存状态") private String inventoryStatus; - /**库龄(天)*/ - @Excel(name = "库龄(天)", width = 15) + /** 库龄(天) */ + @Excel(name = "库龄(天)", width = 15) @ApiModelProperty(value = "库龄(天)") private Integer inventoryAge; - /**唯一号*/ - @Excel(name = "唯一号", width = 15) - @ApiModelProperty(value = "唯一号") - private String uniqueCode; - /**创建人*/ + /** 序列号 */ + @Excel(name = "序列号", width = 15) + @ApiModelProperty(value = "序列号") + private String sn; + /** 创建人 */ @ApiModelProperty(value = "创建人") private String createBy; - /**创建日期*/ + /** 创建日期 */ @ApiModelProperty(value = "创建日期") private Date createTime; - /**更新人*/ + /** 更新人 */ @ApiModelProperty(value = "更新人") private String updateBy; - /**更新日期*/ + /** 更新日期 */ @ApiModelProperty(value = "更新日期") private Date updateTime; } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java index 23a16a3..e7b8cbf 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java @@ -106,14 +106,17 @@ public class InventoryDetail implements Serializable { @Excel(name = "项目号", width = 15) @ApiModelProperty(value = "项目号") private String project; - /** 唯一号 */ - @Excel(name = "唯一号", width = 15) - @ApiModelProperty(value = "唯一号") - private String uniqueCode; + /** 序列号 */ + @Excel(name = "序列号", width = 15) + @ApiModelProperty(value = "序列号") + private String sn; /** 箱码 */ @Excel(name = "箱码", width = 15) @ApiModelProperty(value = "箱码") private String boxCode; + @Excel(name = "收货日期", width = 15) + @ApiModelProperty(value = "收货日期") + private Date receiveTime; /** 入库日期 */ @Excel(name = "入库日期", width = 15) @ApiModelProperty(value = "入库日期") diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java index 7ad6bbd..26c8bd6 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java @@ -125,10 +125,10 @@ public class InventoryTransaction implements Serializable { @Excel(name = "项目号", width = 15) @ApiModelProperty(value = "项目号") private String project; - /** 唯一号 */ - @Excel(name = "唯一号", width = 15) - @ApiModelProperty(value = "唯一号") - private String uniqueCode; + /** 序列号 */ + @Excel(name = "序列号", width = 15) + @ApiModelProperty(value = "序列号") + private String sn; /** 备用字段1 */ @Excel(name = "备用字段1", width = 15) @ApiModelProperty(value = "备用字段1") diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java index 761483f..3871e07 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java @@ -48,7 +48,7 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope switch (logDTO.getTag()) { case "入库组盘": message = "容器编码:{},物料编码:{},数量:{}"; - operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getUniqueCode", message, "getReferCode", + operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getsn", message, "getReferCode", "getReceiptCode", "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty")); break; } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java index c9fd333..00e47b3 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java @@ -2,6 +2,7 @@ package org.jeecg.modules.wms.receipt.receiptContainerHeader.controller; import java.io.IOException; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -208,6 +209,7 @@ public class ReceiptContainerHeaderController extends JeecgController<ReceiptCon @PostMapping(value = "/addReceiptContainerDetail") @RequiresPermissions("receiptContainerDetail:add") public Result<String> addReceiptContainerDetail(@RequestBody ReceiptContainerDetail receiptContainerDetail) { + receiptContainerDetail.setReceiveTime(new Date()); receiptContainerDetailService.save(receiptContainerDetail); return Result.OK("添加成功!"); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java index 4579470..0d754b0 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java @@ -97,9 +97,12 @@ public class ReceiptContainerDetail implements Serializable { @Excel(name = "项目号", width = 15) @ApiModelProperty(value = "项目号") private String project; - @Excel(name = "唯一号", width = 15) - @ApiModelProperty(value = "唯一号") - private String uniqueCode; + @Excel(name = "序列号", width = 15) + @ApiModelProperty(value = "序列号") + private String sn; + @Excel(name = "收货日期", width = 15) + @ApiModelProperty(value = "收货日期") + private Date receiveTime; /** 备用字段1 */ @Excel(name = "备用字段1", width = 15) @ApiModelProperty(value = "备用字段1") diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java index 4a1ff6e..be0f943 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java @@ -179,6 +179,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai taskDetail.setBatch(receiptContainerDetail.getBatch()); taskDetail.setLot(receiptContainerDetail.getLot()); taskDetail.setProject(receiptContainerDetail.getProject()); + taskDetail.setReceiveTime(receiptContainerDetail.getReceiveTime()); taskDetailList.add(taskDetail); ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()); if (receiptDetail == null) { diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java index d9f20df..4b7b423 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java @@ -1,12 +1,12 @@ package org.jeecg.modules.wms.receipt.receiving.domain; -import lombok.Data; - import java.io.Serializable; import java.math.BigDecimal; import org.jeecg.common.aspect.annotation.Dict; +import lombok.Data; + @Data public class Receive implements Serializable { private static final long serialVersionUID = 1L; @@ -15,7 +15,7 @@ public class Receive implements Serializable { private String containerCode; // 托盘号 - private String uniqueCode;// 唯一号 + private String sn;// 序列号 private String materialCode; diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java index 36b9317..c40bea8 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java @@ -2,6 +2,7 @@ package org.jeecg.modules.wms.receipt.receiving.service.impl; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -234,7 +235,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl receiptContainerDetail = new ReceiptContainerDetail(); receiptContainerDetail.setCompanyCode(receiptDetail.getCompanyCode()); receiptContainerDetail.setReferCode(receiptDetail.getReferCode()); - receiptContainerDetail.setUniqueCode(receive.getUniqueCode()); + receiptContainerDetail.setSn(receive.getSn()); receiptContainerDetail.setContainerCode(receive.getContainerCode()); receiptContainerDetail.setReceiptDetailId(receiptDetail.getId()); receiptContainerDetail.setReceiptId(receiptDetail.getReceiptId()); @@ -250,6 +251,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl receiptContainerDetail.setLot(receiptDetail.getLot()); receiptContainerDetail.setProject(receiptDetail.getProject()); receiptContainerDetail.setInventoryStatus(receiptDetail.getInventoryStatus()); + receiptContainerDetail.setReceiveTime(new Date()); receiptContainerDetailList.add(receiptContainerDetail); } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java index f5cf5a4..c9ef1d5 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java @@ -145,9 +145,13 @@ public class TaskDetail implements Serializable { @ApiModelProperty(value = "入库的库存详情id") private Integer toInventoryDetailId; - @Excel(name = "唯一号", width = 15) - @ApiModelProperty(value = "唯一号") - private String uniqueCode; + @Excel(name = "序列号", width = 15) + @ApiModelProperty(value = "序列号") + private String sn; + + @Excel(name = "收货日期", width = 15) + @ApiModelProperty(value = "收货日期") + private Date receiveTime; /** 备用字段1 */ @Excel(name = "备用字段1", width = 15) diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java index b6413b7..16b7c7e 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java @@ -1108,6 +1108,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryDetail.setBatch(taskDetail.getBatch()); inventoryDetail.setLot(taskDetail.getLot()); inventoryDetail.setProject(taskDetail.getProject()); + inventoryDetail.setReceiveTime(taskDetail.getReceiveTime()); inventoryDetail.setReceiptDate(new Date()); inventoryDetailList.add(inventoryDetail);