Commit e57792fc by zhangtw

入库单导入按照客户模板进行字段匹配

parent 0cee0a3f
......@@ -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) {
......
......@@ -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
......
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);
}
// 辅助方法:获取缺失的列名
......
......@@ -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;
......
......@@ -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;
......
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 + '\'' +
'}';
}
}
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;
}
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;
}
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;
}
......@@ -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);
/**
......
......@@ -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接口
......
......@@ -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;
......
......@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论