Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mini-wms
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
周海峰
mini-wms
Commits
e57792fc
Commit
e57792fc
authored
Dec 15, 2025
by
zhangtw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
入库单导入按照客户模板进行字段匹配
parent
0cee0a3f
全部展开
显示空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
512 行增加
和
449 行删除
+512
-449
ruoyi-admin-vue/src/components/ImportExcel/index.vue
+1
-1
ruoyi-admin-vue/src/views/inventory/inbound/index.vue
+10
-1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/inventory/InboundOrdersController.java
+71
-39
ruoyi-inventory/src/main/java/com/ruoyi/inventory/controller/OutboundOrderItemsController.java
+1
-1
ruoyi-inventory/src/main/java/com/ruoyi/inventory/controller/OutboundOrdersController.java
+1
-1
ruoyi-inventory/src/main/java/com/ruoyi/inventory/domain/vo/InboundTemplateVO.java
+0
-395
ruoyi-inventory/src/main/java/com/ruoyi/inventory/domain/vo/inboundVO/InboundFinishTemplateVO.java
+139
-0
ruoyi-inventory/src/main/java/com/ruoyi/inventory/domain/vo/inboundVO/InboundTRDCTemplateVO.java
+136
-0
ruoyi-inventory/src/main/java/com/ruoyi/inventory/domain/vo/inboundVO/InboundTemplateVO.java
+143
-0
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/IInboundOrdersService.java
+2
-3
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/IOutboundOrderItemsService.java
+0
-3
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/impl/InboundOrdersServiceImpl.java
+0
-0
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/impl/OutboundOrderItemsServiceImpl.java
+1
-1
ruoyi-inventory/src/main/resources/mapper/inventory/InboundOrdersMapper.xml
+7
-4
没有找到文件。
ruoyi-admin-vue/src/components/ImportExcel/index.vue
View file @
e57792fc
...
...
@@ -151,7 +151,7 @@ export default {
},
/** 下载模板操作 */
importTemplate
()
{
this
.
download
(
this
.
templateUrl
,
{},
`
${
this
.
templateName
}
_
${
new
Date
().
getTime
()}
.xlsx`
)
this
.
download
(
this
.
templateUrl
,
{
orderType
:
this
.
upload
.
orderType
},
`
${
this
.
templateName
}
_
${
new
Date
().
getTime
()}
.xlsx`
)
},
// 文件上传中处理
handleFileUploadProgress
(
event
,
file
,
fileList
)
{
...
...
ruoyi-admin-vue/src/views/inventory/inbound/index.vue
View file @
e57792fc
...
...
@@ -443,7 +443,7 @@
title
=
"导入"
import
-
url
=
"/inventory/inbound/import"
template
-
url
=
"/inventory/inbound/importTemplate"
template
-
name
=
"入库单导入模板
"
:
template
-
name
=
"getTemplateName()
"
@
success
=
"getList"
:
show
-
trdc
-
checkbox
=
"true"
@
orderTypeChange
=
"handleOrderTypeChange"
...
...
@@ -1051,6 +1051,15 @@ export default {
handleImport() {
this.$refs.import.show()
}
,
getTemplateName(){
if(this.form.orderTypeId === '1'){
return "入库单导入模板"
}
else if(this.form.orderTypeId === '2'){
return "成品入库单导入模板"
}
else if(this.form.orderTypeId === '3'){
return "退料TRDC入库单导入模板"
}
}
,
/** 处理明细项选择变化 */
handleItemsSelectionChange(selection) {
this.selectedItems = selection
...
...
ruoyi-admin/src/main/java/com/ruoyi/web/controller/inventory/InboundOrdersController.java
View file @
e57792fc
package
com
.
ruoyi
.
web
.
controller
.
inventory
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
com.ruoyi.common.core.domain.entity.Materials
;
import
com.ruoyi.common.utils.uuid.UUID
;
import
javax.servlet.http.HttpServletResponse
;
import
com.ruoyi.inventory.domain.
InboundOrderItems
;
import
com.ruoyi.inventory.domain.
vo.inboundVO.InboundFinishTemplateVO
;
import
com.ruoyi.inventory.domain.vo.InboundMaterialTotalVO
;
import
com.ruoyi.inventory.domain.vo.InboundTemplateVO
;
import
com.ruoyi.inventory.domain.vo.inboundVO.InboundTRDCTemplateVO
;
import
com.ruoyi.inventory.domain.vo.inboundVO.InboundTemplateVO
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -113,10 +112,22 @@ public class InboundOrdersController extends BaseController
@PreAuthorize
(
"@ss.hasPermi('inventory:inbound:importTemplate')"
)
@Log
(
title
=
"入库导入模板"
,
businessType
=
BusinessType
.
IMPORT
)
@PostMapping
(
"/importTemplate"
)
public
void
importTemplate
(
HttpServletResponse
response
)
public
void
importTemplate
(
HttpServletResponse
response
,
@RequestParam
(
"orderType"
)
Integer
orderType
)
{
switch
(
orderType
){
case
1
:
ExcelUtil
<
InboundTemplateVO
>
util
=
new
ExcelUtil
<
InboundTemplateVO
>(
InboundTemplateVO
.
class
);
util
.
importTemplateExcel
(
response
,
"入库单及入库物料明细信息"
);
break
;
case
2
:
ExcelUtil
<
InboundFinishTemplateVO
>
util1
=
new
ExcelUtil
<
InboundFinishTemplateVO
>(
InboundFinishTemplateVO
.
class
);
util1
.
importTemplateExcel
(
response
,
"成品入库单及入库物料明细信息"
);
break
;
case
3
:
ExcelUtil
<
InboundTRDCTemplateVO
>
util2
=
new
ExcelUtil
<
InboundTRDCTemplateVO
>(
InboundTRDCTemplateVO
.
class
);
util2
.
importTemplateExcel
(
response
,
"TRDC退库入库单及入库物料明细信息"
);
break
;
}
}
/**
...
...
@@ -139,46 +150,67 @@ public class InboundOrdersController extends BaseController
if
(!
fileName
.
endsWith
(
".xlsx"
)
&&
!
fileName
.
endsWith
(
".xls"
))
{
return
error
(
"仅支持Excel格式文件(.xlsx/.xls)!"
);
}
// 第二步:校验Excel列名是否匹配模板(核心!拦截非模板数据)
List
<
String
>
templateColumns
=
Arrays
.
asList
(
"入库日期"
,
"SAP No"
,
"物料名称"
,
"TS Code"
,
"货主"
,
"批号"
,
"计划数量"
,
"单号"
,
"系统编号"
,
"件重"
,
"约数"
,
"实际件数"
,
"实发数量"
,
"仓库"
,
"库位"
,
"标签颜色"
,
"凭证号"
,
"单价"
,
"备注"
,
"订单类型"
,
"收货人"
,
"物料备注"
);
List
<
String
>
excelColumns
=
ExcelUtil
.
getExcelHeader
(
file
.
getInputStream
());
// 自定义方法读取表头
if
(
CollectionUtils
.
isEmpty
(
excelColumns
)
||
!
excelColumns
.
containsAll
(
templateColumns
))
{
return
AjaxResult
.
error
(
"导入文件不是标准模板!请下载官方模板后填写(缺失列:"
+
getMissingColumns
(
templateColumns
,
excelColumns
)
+
")"
);
}
// // 第二步:校验Excel列名是否匹配模板(核心!拦截非模板数据)
// List<String> templateColumns = Arrays.asList(
// "入库日期",
// "SAP No",
// "物料名称",
// "TS Code",
// "货主",
// "批号",
// "计划数量",
// "单号",
// "系统编号",
// "件重",
// "约数",
// "实际件数",
// "实发数量",
// "仓库",
// "库位",
// "标签颜色",
// "凭证号",
// "单价",
// "备注",
// "订单类型",
// "收货人",
// "物料备注"
// );
// List<String> excelColumns = ExcelUtil.getExcelHeader(file.getInputStream()); // 自定义方法读取表头
// if (CollectionUtils.isEmpty(excelColumns) || !excelColumns.containsAll(templateColumns)) {
// return AjaxResult.error("导入文件不是标准模板!请下载官方模板后填写(缺失列:"
// + getMissingColumns(templateColumns, excelColumns) + ")");
// }
String
message
=
null
;
String
operName
=
getUsername
();
switch
(
orderType
){
case
1
:
ExcelUtil
<
InboundTemplateVO
>
util
=
new
ExcelUtil
<
InboundTemplateVO
>(
InboundTemplateVO
.
class
);
List
<
InboundTemplateVO
>
inboundOrders
=
util
.
importExcel
(
file
.
getInputStream
());
// 防护3:拦截空列表,避免 Service 层处理空数据
if
(
CollectionUtils
.
isEmpty
(
inboundOrders
))
{
return
error
(
"Excel中未解析到有效数据,请检查模板是否正确!"
);
}
String
operName
=
getUsername
();
String
message
=
inboundOrdersService
.
importInboundOrders
(
inboundOrders
,
updateSupport
,
operName
,
orderType
);
message
=
inboundOrdersService
.
importInboundOrders
(
inboundOrders
,
updateSupport
,
operName
,
orderType
);
break
;
case
2
:
ExcelUtil
<
InboundFinishTemplateVO
>
util1
=
new
ExcelUtil
<
InboundFinishTemplateVO
>(
InboundFinishTemplateVO
.
class
);
List
<
InboundFinishTemplateVO
>
inboundOrders1
=
util1
.
importExcel
(
file
.
getInputStream
());
// 防护3:拦截空列表,避免 Service 层处理空数据
if
(
CollectionUtils
.
isEmpty
(
inboundOrders1
))
{
return
error
(
"Excel中未解析到有效数据,请检查模板是否正确!"
);
}
message
=
inboundOrdersService
.
importInboundOrders
(
inboundOrders1
,
updateSupport
,
operName
,
orderType
);
break
;
case
3
:
ExcelUtil
<
InboundTRDCTemplateVO
>
util2
=
new
ExcelUtil
<
InboundTRDCTemplateVO
>(
InboundTRDCTemplateVO
.
class
);
List
<
InboundTRDCTemplateVO
>
inboundOrders2
=
util2
.
importExcel
(
file
.
getInputStream
());
// 防护3:拦截空列表,避免 Service 层处理空数据
if
(
CollectionUtils
.
isEmpty
(
inboundOrders2
))
{
return
error
(
"Excel中未解析到有效数据,请检查模板是否正确!"
);
}
message
=
inboundOrdersService
.
importInboundOrders
(
inboundOrders2
,
updateSupport
,
operName
,
orderType
);
break
;
}
return
success
(
message
);
}
// 辅助方法:获取缺失的列名
...
...
ruoyi-inventory/src/main/java/com/ruoyi/inventory/controller/OutboundOrderItemsController.java
View file @
e57792fc
...
...
@@ -3,7 +3,7 @@ package com.ruoyi.inventory.controller;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
com.ruoyi.inventory.domain.vo.InboundTemplateVO
;
import
com.ruoyi.inventory.domain.vo.
inboundVO.
InboundTemplateVO
;
import
com.ruoyi.inventory.domain.vo.OutboundOrdersSummaryVO
;
import
com.ruoyi.inventory.domain.vo.OutboundTemplateVO
;
import
org.springframework.security.access.prepost.PreAuthorize
;
...
...
ruoyi-inventory/src/main/java/com/ruoyi/inventory/controller/OutboundOrdersController.java
View file @
e57792fc
...
...
@@ -6,7 +6,7 @@ import javax.servlet.http.HttpServletResponse;
import
com.alibaba.fastjson2.JSONObject
;
import
com.ruoyi.inventory.domain.Inventory
;
import
com.ruoyi.inventory.domain.vo.InboundTemplateVO
;
import
com.ruoyi.inventory.domain.vo.
inboundVO.
InboundTemplateVO
;
import
com.ruoyi.inventory.domain.vo.OutboundTemplateVO
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
ruoyi-inventory/src/main/java/com/ruoyi/inventory/domain/vo/InboundTemplateVO.java
deleted
100644 → 0
View file @
0cee0a3f
package
com
.
ruoyi
.
inventory
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.ruoyi.common.annotation.Excel
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
java.util.Date
;
/**
* 入库单导入对象 inboundTemplate
*
* @author ruoyi
* @date 2025-12-02
*/
public
class
InboundTemplateVO
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 编号 */
private
String
id
;
/** 入库日期 日期无时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@Excel
(
name
=
"入库日期"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd"
)
private
Date
inboundDate
;
/** 货物ID 字典,检索条件 */
@Excel
(
name
=
"SAP No"
)
private
String
sapNo
;
/** 货物名称 */
@Excel
(
name
=
"物料名称"
)
private
String
materialName
;
/** 货物名称 */
@Excel
(
name
=
"TS Code"
)
private
String
tsCode
;
/** 货主ID */
@Excel
(
name
=
"货主"
)
private
String
ownerId
;
/** 批次ID 检索条件 */
@Excel
(
name
=
"批号"
)
private
String
batchId
;
/** 计划数量 */
@Excel
(
name
=
"计划数量"
)
private
Long
plannedQuantity
;
/** 入库单号 检索条件 */
@Excel
(
name
=
"单号"
)
private
String
orderId
;
/** 系统编号 检索条件 */
@Excel
(
name
=
"系统编号"
)
private
String
systemNo
;
/** 入库类型 字典,检索条件 */
// @Excel(name = "入库类型")
private
String
orderTypeId
;
@Excel
(
name
=
"件重"
)
private
Double
unitWeight
;
/** 约数 */
@Excel
(
name
=
"约数"
)
private
Long
divisor
;
/** 实际件数 */
@Excel
(
name
=
"实际件数"
)
private
Long
actualPackages
;
/** 实际数量 */
@Excel
(
name
=
"实发数量"
)
private
Long
actualQuantity
;
/** 仓库ID 暂无用 */
@Excel
(
name
=
"仓库"
)
private
String
warehouseId
;
/** 库位ID 检索条件 */
@Excel
(
name
=
"库位"
)
private
String
locationId
;
/** 标签颜色 字典,检索条件 */
@Excel
(
name
=
"标签颜色"
)
private
Long
labelColor
;
/** 凭证号 检索条件 */
@Excel
(
name
=
"凭证号"
)
private
String
voucherNumber
;
/** 单价 */
@Excel
(
name
=
"单价"
)
private
Long
unitPrice
;
/** 备注 */
@Excel
(
name
=
"备注"
)
private
String
remark
;
/** 订单类型 字典,检索条件 */
@Excel
(
name
=
"订单类型"
)
private
String
orderType
;
/** 收货人 */
@Excel
(
name
=
"收货人"
)
private
String
receivedBy
;
/** 物料备注 */
@Excel
(
name
=
"物料备注"
)
private
String
remark2
;
/** 负责人 暂无用 */
// @Excel(name = "负责人 暂无用")
private
String
opUserName
;
/** 计划件数 暂无用 */
// @Excel(name = "件数")
private
Long
plannedPackages
;
/** 排序号 */
private
Long
sortNo
;
/** 创建日期 */
private
String
createUserCode
;
private
String
updateUserCode
;
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getOrderId
()
{
return
orderId
;
}
public
void
setOrderId
(
String
orderId
)
{
this
.
orderId
=
orderId
;
}
public
String
getSystemNo
()
{
return
systemNo
;
}
public
void
setSystemNo
(
String
systemNo
)
{
this
.
systemNo
=
systemNo
;
}
public
String
getOrderTypeId
()
{
return
orderTypeId
;
}
public
void
setOrderTypeId
(
String
orderTypeId
)
{
this
.
orderTypeId
=
orderTypeId
;
}
public
String
getBatchId
()
{
return
batchId
;
}
public
void
setBatchId
(
String
batchId
)
{
this
.
batchId
=
batchId
;
}
public
Date
getInboundDate
()
{
return
inboundDate
;
}
public
void
setInboundDate
(
Date
inboundDate
)
{
this
.
inboundDate
=
inboundDate
;
}
public
String
getOrderType
()
{
return
orderType
;
}
public
void
setOrderType
(
String
orderType
)
{
this
.
orderType
=
orderType
;
}
public
String
getRemark
()
{
return
remark
;
}
public
void
setRemark
(
String
remark
)
{
this
.
remark
=
remark
;
}
public
String
getOwnerId
()
{
return
ownerId
;
}
public
void
setOwnerId
(
String
ownerId
)
{
this
.
ownerId
=
ownerId
;
}
public
String
getWarehouseId
()
{
return
warehouseId
;
}
public
void
setWarehouseId
(
String
warehouseId
)
{
this
.
warehouseId
=
warehouseId
;
}
public
String
getLocationId
()
{
return
locationId
;
}
public
void
setLocationId
(
String
locationId
)
{
this
.
locationId
=
locationId
;
}
public
String
getRemark2
()
{
return
remark2
;
}
public
void
setRemark2
(
String
remark2
)
{
this
.
remark2
=
remark2
;
}
public
String
getSapNo
()
{
return
sapNo
;
}
public
void
setSapNo
(
String
sapNo
)
{
this
.
sapNo
=
sapNo
;
}
public
String
getMaterialName
()
{
return
materialName
;
}
public
void
setMaterialName
(
String
materialName
)
{
this
.
materialName
=
materialName
;
}
public
String
getOpUserName
()
{
return
opUserName
;
}
public
void
setOpUserName
(
String
opUserName
)
{
this
.
opUserName
=
opUserName
;
}
public
Long
getPlannedQuantity
()
{
return
plannedQuantity
;
}
public
void
setPlannedQuantity
(
Long
plannedQuantity
)
{
this
.
plannedQuantity
=
plannedQuantity
;
}
public
Long
getActualQuantity
()
{
return
actualQuantity
;
}
public
void
setActualQuantity
(
Long
actualQuantity
)
{
this
.
actualQuantity
=
actualQuantity
;
}
public
Long
getPlannedPackages
()
{
return
plannedPackages
;
}
public
void
setPlannedPackages
(
Long
plannedPackages
)
{
this
.
plannedPackages
=
plannedPackages
;
}
public
Long
getActualPackages
()
{
return
actualPackages
;
}
public
void
setActualPackages
(
Long
actualPackages
)
{
this
.
actualPackages
=
actualPackages
;
}
public
Long
getDivisor
()
{
return
divisor
;
}
public
void
setDivisor
(
Long
divisor
)
{
this
.
divisor
=
divisor
;
}
public
Long
getLabelColor
()
{
return
labelColor
;
}
public
void
setLabelColor
(
Long
labelColor
)
{
this
.
labelColor
=
labelColor
;
}
public
String
getVoucherNumber
()
{
return
voucherNumber
;
}
public
void
setVoucherNumber
(
String
voucherNumber
)
{
this
.
voucherNumber
=
voucherNumber
;
}
public
Long
getUnitPrice
()
{
return
unitPrice
;
}
public
void
setUnitPrice
(
Long
unitPrice
)
{
this
.
unitPrice
=
unitPrice
;
}
public
String
getReceivedBy
()
{
return
receivedBy
;
}
public
void
setReceivedBy
(
String
receivedBy
)
{
this
.
receivedBy
=
receivedBy
;
}
public
String
getCreateUserCode
()
{
return
createUserCode
;
}
public
void
setCreateUserCode
(
String
createUserCode
)
{
this
.
createUserCode
=
createUserCode
;
}
public
String
getUpdateUserCode
()
{
return
updateUserCode
;
}
public
void
setUpdateUserCode
(
String
updateUserCode
)
{
this
.
updateUserCode
=
updateUserCode
;
}
public
Long
getSortNo
()
{
return
sortNo
;
}
public
void
setSortNo
(
Long
sortNo
)
{
this
.
sortNo
=
sortNo
;
}
public
String
getTsCode
()
{
return
tsCode
;
}
public
void
setTsCode
(
String
tsCode
)
{
this
.
tsCode
=
tsCode
;
}
public
Double
getUnitWeight
()
{
return
unitWeight
;
}
public
void
setUnitWeight
(
Double
unitWeight
)
{
this
.
unitWeight
=
unitWeight
;
}
@Override
public
String
toString
()
{
return
"InboundTemplateVO{"
+
"id='"
+
id
+
'\''
+
", inboundDate="
+
inboundDate
+
", sapNo='"
+
sapNo
+
'\''
+
", materialName='"
+
materialName
+
'\''
+
", tsCode='"
+
tsCode
+
'\''
+
", batchId='"
+
batchId
+
'\''
+
", plannedQuantity="
+
plannedQuantity
+
", orderId='"
+
orderId
+
'\''
+
", systemNo='"
+
systemNo
+
'\''
+
", orderTypeId='"
+
orderTypeId
+
'\''
+
", unitWeight="
+
unitWeight
+
", divisor="
+
divisor
+
", actualPackages="
+
actualPackages
+
", actualQuantity="
+
actualQuantity
+
", warehouseId='"
+
warehouseId
+
'\''
+
", locationId='"
+
locationId
+
'\''
+
", labelColor="
+
labelColor
+
", voucherNumber='"
+
voucherNumber
+
'\''
+
", unitPrice="
+
unitPrice
+
", remark='"
+
remark
+
'\''
+
", orderType='"
+
orderType
+
'\''
+
", receivedBy='"
+
receivedBy
+
'\''
+
", remark2='"
+
remark2
+
'\''
+
", ownerId='"
+
ownerId
+
'\''
+
", opUserName='"
+
opUserName
+
'\''
+
", plannedPackages="
+
plannedPackages
+
", sortNo="
+
sortNo
+
", createUserCode='"
+
createUserCode
+
'\''
+
", updateUserCode='"
+
updateUserCode
+
'\''
+
'}'
;
}
}
ruoyi-inventory/src/main/java/com/ruoyi/inventory/domain/vo/inboundVO/InboundFinishTemplateVO.java
0 → 100644
View file @
e57792fc
package
com
.
ruoyi
.
inventory
.
domain
.
vo
.
inboundVO
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.ruoyi.common.annotation.Excel
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
InboundFinishTemplateVO
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 编号 */
private
String
id
;
/** 入库日期 日期无时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@Excel
(
name
=
"日期"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd"
)
private
Date
inboundDate
;
/** 货物ID 字典,检索条件 */
@Excel
(
name
=
"SAP No"
)
private
String
sapNo
;
/** 货物名称 */
@Excel
(
name
=
"物料名称"
)
private
String
materialName
;
/** 货物名称 */
@Excel
(
name
=
"TS Code"
)
private
String
tsCode
;
/** 批次ID 检索条件 */
@Excel
(
name
=
"批号"
)
private
String
batchId
;
/** 计划数量 */
@Excel
(
name
=
"计划数量"
)
private
Long
plannedQuantity
;
@Excel
(
name
=
"件重"
)
private
Double
packageWeight
;
/** 约数 */
@Excel
(
name
=
"约数"
)
private
Long
divisor
;
@Excel
(
name
=
"件数"
)
private
Long
actualPackages
;
@Excel
(
name
=
"重量"
)
private
Double
unitWeight
;
/** 实际数量 */
// @Excel(name = "实发数量")
private
Long
actualQuantity
;
/** 库位 */
@Excel
(
name
=
"库位"
)
private
String
locationId
;
/** 仓库ID 暂无用 */
@Excel
(
name
=
"仓库"
)
private
String
warehouseId
;
/** 成品表里的第二个 "库位" */
@Excel
(
name
=
"库位"
)
private
String
remark2
;
/** 库位ID 检索条件 */
// @Excel(name = "收货库位")
private
String
relocationId
;
/** 标签颜色 字典,检索条件 */
@Excel
(
name
=
"标签颜色"
)
private
Long
labelColor
;
/** 凭证号 检索条件 */
@Excel
(
name
=
"凭证号"
)
private
String
voucherNumber
;
@Excel
(
name
=
"保温"
)
private
String
keepWarm
;
@Excel
(
name
=
"危险类别"
)
private
String
hazardId
;
/** 入库单号 检索条件 */
@Excel
(
name
=
"智观(客户订单号)"
)
private
String
orderId
;
/** 系统编号 检索条件 */
@Excel
(
name
=
"客户订单号/PO号"
)
private
String
systemNo
;
/** 货主ID */
@Excel
(
name
=
"货主"
)
private
String
ownerId
;
/** 入库类型 字典,检索条件 */
@Excel
(
name
=
"贴标数量"
)
private
String
labelQuantity
;
/** 订单类型 字典,检索条件 */
@Excel
(
name
=
"订单类型"
)
private
String
orderType
;
@Excel
(
name
=
"单个件重"
)
private
Double
packageWeight2
;
/** 单价 */
// @Excel(name = "单价")
private
Long
unitPrice
;
/** 收货人 */
// @Excel(name = "收货人")
private
String
receivedBy
;
/** 物料备注 */
// @Excel(name = "物料备注")
private
String
remark1
;
/** 负责人 暂无用 */
// @Excel(name = "负责人 暂无用")
private
String
opUserName
;
/** 计划件数 暂无用 */
// @Excel(name = "件数")
private
Long
plannedPackages
;
/** 排序号 */
private
Long
sortNo
;
/** 创建日期 */
private
String
createUserCode
;
private
String
updateUserCode
;
}
ruoyi-inventory/src/main/java/com/ruoyi/inventory/domain/vo/inboundVO/InboundTRDCTemplateVO.java
0 → 100644
View file @
e57792fc
package
com
.
ruoyi
.
inventory
.
domain
.
vo
.
inboundVO
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.ruoyi.common.annotation.Excel
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
InboundTRDCTemplateVO
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 编号 */
private
String
id
;
/** 入库日期 日期无时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@Excel
(
name
=
"日期"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd"
)
private
Date
inboundDate
;
/** 货物ID 字典,检索条件 */
@Excel
(
name
=
"SAP No"
)
private
String
sapNo
;
/** 货物名称 */
@Excel
(
name
=
"物料名称"
)
private
String
materialName
;
/** 货物名称 */
@Excel
(
name
=
"TS Code"
)
private
String
tsCode
;
/** 批次ID 检索条件 */
@Excel
(
name
=
"批号"
)
private
String
batchId
;
/** 计划数量 */
@Excel
(
name
=
"计划数量"
)
private
Long
plannedQuantity
;
@Excel
(
name
=
"件重"
)
private
Double
unitWeight
;
/** 约数 */
@Excel
(
name
=
"约数"
)
private
Long
divisor
;
/** 实际件数 */
@Excel
(
name
=
"件数"
)
private
Long
actualPackages
;
/** 实际数量 */
@Excel
(
name
=
"实发数量"
)
private
Long
actualQuantity
;
/** 库位ID 检索条件 */
@Excel
(
name
=
"库位"
)
private
String
locationId
;
/** 仓库ID 暂无用 */
@Excel
(
name
=
"仓库"
)
private
String
warehouseId
;
/** 备注 */
@Excel
(
name
=
"备注"
)
private
String
remark
;
/** 库位ID 检索条件 */
// @Excel(name = "收货库位")
private
String
relocationId
;
/** 标签颜色 字典,检索条件 */
@Excel
(
name
=
"标签颜色"
)
private
Long
labelColor
;
/** 凭证号 检索条件 */
@Excel
(
name
=
"凭证号"
)
private
String
voucherNumber
;
@Excel
(
name
=
"保温"
)
private
String
keepWarm
;
@Excel
(
name
=
"危险类别"
)
private
String
hazardId
;
/** 入库单号 检索条件 */
@Excel
(
name
=
"单号"
)
private
String
orderId
;
/** 系统编号 检索条件 */
@Excel
(
name
=
"系统编号"
)
private
String
systemNo
;
/** 货主ID */
@Excel
(
name
=
"货主"
)
private
String
ownerId
;
/** 入库类型 字典,检索条件 */
@Excel
(
name
=
"贴标数量"
)
private
String
labelQuantity
;
/** 订单类型 字典,检索条件 */
@Excel
(
name
=
"订单类型"
)
private
String
orderType
;
@Excel
(
name
=
"单件重量"
)
private
Double
packageWeight
;
/** 单价 */
// @Excel(name = "单价")
private
Long
unitPrice
;
/** 收货人 */
// @Excel(name = "收货人")
private
String
receivedBy
;
/** 物料备注 */
// @Excel(name = "物料备注")
private
String
remark2
;
/** 负责人 暂无用 */
// @Excel(name = "负责人 暂无用")
private
String
opUserName
;
/** 计划件数 暂无用 */
// @Excel(name = "件数")
private
Long
plannedPackages
;
/** 排序号 */
private
Long
sortNo
;
/** 创建日期 */
private
String
createUserCode
;
private
String
updateUserCode
;
}
ruoyi-inventory/src/main/java/com/ruoyi/inventory/domain/vo/inboundVO/InboundTemplateVO.java
0 → 100644
View file @
e57792fc
package
com
.
ruoyi
.
inventory
.
domain
.
vo
.
inboundVO
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.ruoyi.common.annotation.Excel
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 入库单导入对象 inboundTemplate
*
* @author ZTW
* @date 2025-12-02
*/
@Data
public
class
InboundTemplateVO
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** 编号 */
private
String
id
;
/** 入库日期 日期无时间 */
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@Excel
(
name
=
"日期"
,
width
=
30
,
dateFormat
=
"yyyy-MM-dd"
)
private
Date
inboundDate
;
/** 货物ID 字典,检索条件 */
@Excel
(
name
=
"SAP No"
)
private
String
sapNo
;
/** 货物名称 */
@Excel
(
name
=
"物料名称"
)
private
String
materialName
;
/** 货物名称 */
@Excel
(
name
=
"TS Code"
)
private
String
tsCode
;
/** 批次ID 检索条件 */
@Excel
(
name
=
"批号"
)
private
String
batchId
;
/** 计划数量 */
@Excel
(
name
=
"计划数量"
)
private
Long
plannedQuantity
;
@Excel
(
name
=
"件重"
)
private
Double
unitWeight
;
/** 约数 */
@Excel
(
name
=
"约数"
)
private
Long
divisor
;
/** 实际件数 */
@Excel
(
name
=
"件数"
)
private
Long
actualPackages
;
/** 实际数量 */
@Excel
(
name
=
"实发数量"
)
private
Long
actualQuantity
;
/** 库位ID 检索条件 */
@Excel
(
name
=
"库位"
)
private
String
locationId
;
/** 仓库ID 暂无用 */
@Excel
(
name
=
"仓库"
)
private
String
warehouseId
;
/** 备注 */
// @Excel(name = "备注")
private
String
remark
;
/** 库位ID 检索条件 */
@Excel
(
name
=
"收货库位"
)
private
String
relocationId
;
/** 标签颜色 字典,检索条件 */
@Excel
(
name
=
"标签颜色"
)
private
Long
labelColor
;
/** 凭证号 检索条件 */
@Excel
(
name
=
"凭证号"
)
private
String
voucherNumber
;
@Excel
(
name
=
"保温"
)
private
String
keepWarm
;
@Excel
(
name
=
"危险类别"
)
private
String
hazardId
;
/** 入库单号 检索条件 */
@Excel
(
name
=
"单号"
)
private
String
orderId
;
/** 系统编号 检索条件 */
@Excel
(
name
=
"系统编号"
)
private
String
systemNo
;
/** 货主ID */
@Excel
(
name
=
"货主"
)
private
String
ownerId
;
/** 入库类型 字典,检索条件 */
@Excel
(
name
=
"贴标数量"
)
private
String
labelQuantity
;
/** 订单类型 字典,检索条件 */
@Excel
(
name
=
"订单类型"
)
private
String
orderType
;
@Excel
(
name
=
"单件重量"
)
private
Double
packageWeight
;
/** 单价 */
// @Excel(name = "单价")
private
Long
unitPrice
;
/** 收货人 */
// @Excel(name = "收货人")
private
String
receivedBy
;
/** 物料备注 */
// @Excel(name = "物料备注")
private
String
remark2
;
/** 负责人 暂无用 */
// @Excel(name = "负责人 暂无用")
private
String
opUserName
;
/** 计划件数 暂无用 */
// @Excel(name = "件数")
private
Long
plannedPackages
;
/** 排序号 */
private
Long
sortNo
;
/** 创建日期 */
private
String
createUserCode
;
private
String
updateUserCode
;
}
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/IInboundOrdersService.java
View file @
e57792fc
...
...
@@ -2,10 +2,9 @@ package com.ruoyi.inventory.service;
import
java.util.List
;
import
com.ruoyi.inventory.domain.InboundOrderItems
;
import
com.ruoyi.inventory.domain.InboundOrders
;
import
com.ruoyi.inventory.domain.vo.InboundMaterialTotalVO
;
import
com.ruoyi.inventory.domain.vo.InboundTemplateVO
;
/**
* 入库单主Service接口
...
...
@@ -69,7 +68,7 @@ public interface IInboundOrdersService
* @param inboundOrders,isUpdateSupport,operName 入库单数据信息
* @return 结果
*/
public
String
importInboundOrders
(
List
<
InboundTemplateVO
>
inboundOrders
,
Integer
isUpdateSupport
,
String
operName
,
Integer
orderType
);
public
<
T
>
String
importInboundOrders
(
List
<
T
>
inboundOrders
,
Integer
isUpdateSupport
,
String
operName
,
Integer
orderType
);
/**
...
...
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/IOutboundOrderItemsService.java
View file @
e57792fc
...
...
@@ -2,10 +2,7 @@ package com.ruoyi.inventory.service;
import
java.util.List
;
import
com.ruoyi.inventory.domain.OutboundOrderItems
;
import
com.ruoyi.inventory.domain.vo.InboundTemplateVO
;
import
com.ruoyi.inventory.domain.vo.OutboundOrdersSummaryVO
;
import
com.ruoyi.inventory.domain.vo.OutboundTemplateVO
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* 出库单明细Service接口
...
...
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/impl/InboundOrdersServiceImpl.java
View file @
e57792fc
差异被折叠。
点击展开。
ruoyi-inventory/src/main/java/com/ruoyi/inventory/service/impl/OutboundOrderItemsServiceImpl.java
View file @
e57792fc
...
...
@@ -11,7 +11,7 @@ import com.ruoyi.common.utils.StringUtils;
import
com.ruoyi.common.utils.bean.BeanUtils
;
import
com.ruoyi.inventory.domain.InboundOrderItems
;
import
com.ruoyi.inventory.domain.InboundOrders
;
import
com.ruoyi.inventory.domain.vo.InboundTemplateVO
;
import
com.ruoyi.inventory.domain.vo.
inboundVO.
InboundTemplateVO
;
import
com.ruoyi.inventory.domain.vo.OutboundOrdersSummaryVO
;
import
com.ruoyi.inventory.domain.vo.OutboundTemplateVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
ruoyi-inventory/src/main/resources/mapper/inventory/InboundOrdersMapper.xml
View file @
e57792fc
...
...
@@ -255,8 +255,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join inbound_orders as io
on io.id = ioi.inbound_order_id
and io.order_status = 2
group by m.id, m.material_name
order by total_quantity desc
where m.is_used = 1 and m.is_active = 1
group by m.id
order by total_quantity
</select>
<select
id=
"countInboundMaterialMoney"
resultMap=
"InboundMaterialTotalResultMap"
parameterType=
"String"
>
select m.material_name,
...
...
@@ -267,7 +268,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join inbound_orders as io
on io.id = ioi.inbound_order_id
and io.order_status = 2
group by m.id, m.material_name
order by total_money desc
where m.is_used = 1 and m.is_active = 1
group by m.id
order by total_money
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论