From 3b8d01b673e11e09016d15e565981759797477b9 Mon Sep 17 00:00:00 2001 From: zc Date: Fri, 20 Mar 2026 18:06:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MaterialInfoServiceImpl.java | 11 +- .../mapper/MaterialProcessMapper.java | 6 + .../model/req/MaterialProcessImportReq.java | 37 +++ .../req/MaterialProcessImportRowReq.java | 35 +++ .../resp/MaterialProcessImportParseResp.java | 49 ++++ .../model/resp/MaterialProcessImportResp.java | 42 +++ .../model/resp/MaterialProcessResp.java | 3 + .../service/MaterialProcessService.java | 14 +- .../impl/MaterialProcessServiceImpl.java | 265 +++++++++++++++++- .../mapper/MaterialProcessMapper.xml | 58 ++++ .../resources/mapper/MeterialInfoMapper.xml | 100 ++++--- .../MaterialProcessController.java | 27 +- .../main/resources/config/application-dev.yml | 2 +- .../resources/config/application-prod.yml | 2 +- 14 files changed, 578 insertions(+), 73 deletions(-) create mode 100644 wms-module-system/src/main/java/top/wms/admin/materialProcess/model/req/MaterialProcessImportReq.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/materialProcess/model/req/MaterialProcessImportRowReq.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessImportParseResp.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessImportResp.java diff --git a/wms-module-system/src/main/java/top/wms/admin/material/service/impl/MaterialInfoServiceImpl.java b/wms-module-system/src/main/java/top/wms/admin/material/service/impl/MaterialInfoServiceImpl.java index f111237..e4f8d99 100644 --- a/wms-module-system/src/main/java/top/wms/admin/material/service/impl/MaterialInfoServiceImpl.java +++ b/wms-module-system/src/main/java/top/wms/admin/material/service/impl/MaterialInfoServiceImpl.java @@ -5,7 +5,10 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.lang.UUID; -import cn.hutool.core.util.*; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.extra.validation.ValidationUtil; import cn.hutool.http.ContentType; import cn.hutool.json.JSONUtil; @@ -17,15 +20,12 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.servlet.http.HttpServletResponse; -import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; - import lombok.extern.slf4j.Slf4j; import net.dreamlu.mica.core.result.R; import org.dromara.x.file.storage.core.FileInfo; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; - import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import top.continew.starter.cache.redisson.util.RedisUtils; @@ -61,8 +61,6 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.time.Duration; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -70,7 +68,6 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import static top.wms.admin.system.enums.ImportPolicyEnum.*; -import static top.wms.admin.system.enums.ImportPolicyEnum.SKIP; /** * 物料信息业务实现 diff --git a/wms-module-system/src/main/java/top/wms/admin/materialProcess/mapper/MaterialProcessMapper.java b/wms-module-system/src/main/java/top/wms/admin/materialProcess/mapper/MaterialProcessMapper.java index d4cf133..fe64315 100644 --- a/wms-module-system/src/main/java/top/wms/admin/materialProcess/mapper/MaterialProcessMapper.java +++ b/wms-module-system/src/main/java/top/wms/admin/materialProcess/mapper/MaterialProcessMapper.java @@ -1,9 +1,12 @@ package top.wms.admin.materialProcess.mapper; +import org.apache.ibatis.annotations.Param; import top.continew.starter.data.mp.base.BaseMapper; import top.wms.admin.materialProcess.model.entity.MaterialProcessDO; import org.springframework.stereotype.Repository; +import java.util.List; + /** * 海康物料流程 Mapper * @@ -13,4 +16,7 @@ import org.springframework.stereotype.Repository; @Repository public interface MaterialProcessMapper extends BaseMapper { + void updateByName(@Param("list") List updateByNameList); + + void updateByCode(@Param("list") List updateByCodeList); } \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/req/MaterialProcessImportReq.java b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/req/MaterialProcessImportReq.java new file mode 100644 index 0000000..fd56e82 --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/req/MaterialProcessImportReq.java @@ -0,0 +1,37 @@ +package top.wms.admin.materialProcess.model.req; + +import lombok.Data; +import lombok.experimental.Accessors; +import top.wms.admin.system.enums.ImportPolicyEnum; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 物料流程导入请求 + * + * @author zc + * @since 2026/03/20 + */ +@Data +public class MaterialProcessImportReq implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 导入key + */ + private String importKey; + + /** + * 重复流程名称处理策略: 0-跳过 1-更新 2-退出 + */ + private ImportPolicyEnum duplicateName; + + /** + * 重复流程编码处理策略: 0-跳过 1-更新 2-退出 + */ + private ImportPolicyEnum duplicateCode; + +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/req/MaterialProcessImportRowReq.java b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/req/MaterialProcessImportRowReq.java new file mode 100644 index 0000000..412e814 --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/req/MaterialProcessImportRowReq.java @@ -0,0 +1,35 @@ +package top.wms.admin.materialProcess.model.req; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 物料流程导入行数据 + * + * @author zc + * @since 2026/03/20 + */ +@Data +public class MaterialProcessImportRowReq implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 流程名称 + */ + @NotBlank(message = "流程名称不能为空") + private String processName; + + /** + * 流程编码 + */ + @NotBlank(message = "流程编码不能为空") + private String processCode; + +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessImportParseResp.java b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessImportParseResp.java new file mode 100644 index 0000000..ce97ea3 --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessImportParseResp.java @@ -0,0 +1,49 @@ +package top.wms.admin.materialProcess.model.resp; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Schema(description = "用户导入解析结果") +public class MaterialProcessImportParseResp implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 导入会话 Key + */ + @Schema(description = "导入会话Key", example = "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed") + private String importKey; + + /** + * 总计行数 + */ + @Schema(description = "总计行数", example = "100") + private Integer totalRows; + + /** + * 有效行数 + */ + @Schema(description = "有效行数", example = "100") + private Integer validRows; + + /** + * 重复名称行数 + */ + @Schema(description = "重复名称行数", example = "100") + private Integer duplicateNameRows; + + /** + * 重复编码行数 + */ + @Schema(description = "重复编码行数", example = "100") + private Integer duplicateCodeRows; +} diff --git a/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessImportResp.java b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessImportResp.java new file mode 100644 index 0000000..50b3dcf --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessImportResp.java @@ -0,0 +1,42 @@ +package top.wms.admin.materialProcess.model.resp; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 物料流程导入响应 + * + * @author zc + * @since 2026/03/20 + */ +@Data +public class MaterialProcessImportResp implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 总处理数 + */ + private Integer totalHandleCount; + + /** + * 新增数 + */ + private Integer insertCount; + + /** + * 更新数 + */ + private Integer updateCount; + + public MaterialProcessImportResp(Integer totalHandleCount, Integer insertCount, Integer updateCount) { + this.totalHandleCount = totalHandleCount; + this.insertCount = insertCount; + this.updateCount = updateCount; + } + +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessResp.java b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessResp.java index 02c9963..bd9d24a 100644 --- a/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessResp.java +++ b/wms-module-system/src/main/java/top/wms/admin/materialProcess/model/resp/MaterialProcessResp.java @@ -1,5 +1,6 @@ package top.wms.admin.materialProcess.model.resp; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; import io.swagger.v3.oas.annotations.media.Schema; @@ -26,11 +27,13 @@ public class MaterialProcessResp extends BaseDetailResp { * 流程名称 */ @Schema(description = "流程名称") + @ExcelProperty(value = "流程名称", order = 1) private String processName; /** * 流程编码 */ @Schema(description = "流程编码") + @ExcelProperty(value = "流程编码", order = 2) private String processCode; } \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/materialProcess/service/MaterialProcessService.java b/wms-module-system/src/main/java/top/wms/admin/materialProcess/service/MaterialProcessService.java index 74f0442..9ce44b9 100644 --- a/wms-module-system/src/main/java/top/wms/admin/materialProcess/service/MaterialProcessService.java +++ b/wms-module-system/src/main/java/top/wms/admin/materialProcess/service/MaterialProcessService.java @@ -4,11 +4,11 @@ import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.multipart.MultipartFile; import top.continew.starter.extension.crud.model.resp.LabelValueResp; import top.continew.starter.extension.crud.service.BaseService; -import top.wms.admin.material.model.req.MaterialInfoImportReq; -import top.wms.admin.material.model.resp.MaterialImportParseResp; -import top.wms.admin.material.model.resp.MaterialInfoImportResp; import top.wms.admin.materialProcess.model.query.MaterialProcessQuery; +import top.wms.admin.materialProcess.model.req.MaterialProcessImportReq; import top.wms.admin.materialProcess.model.req.MaterialProcessReq; +import top.wms.admin.materialProcess.model.resp.MaterialProcessImportParseResp; +import top.wms.admin.materialProcess.model.resp.MaterialProcessImportResp; import top.wms.admin.materialProcess.model.resp.MaterialProcessResp; import java.util.List; @@ -36,14 +36,14 @@ public interface MaterialProcessService extends BaseService list = super.list(query, sortQuery, this.getDetailClass()); + list.forEach(super::fill); + ExcelUtils.export(list, "物料流程导出", MaterialProcessResp.class, response); + } + @Override public List getSelectList() { List materialProcessDOS = baseMapper.selectList(new QueryWrapper<>()); @@ -58,12 +109,210 @@ public class MaterialProcessServiceImpl extends BaseServiceImpl importRowList; + // 读取表格数据 + try { + importRowList = com.alibaba.excel.EasyExcel.read(file.getInputStream()) + .head(MaterialProcessImportRowReq.class) + .sheet() + .headRowNumber(1) + .doReadSync(); + } catch (Exception e) { + log.error("物料流程导入数据文件解析异常:", e); + throw new BusinessException("数据文件解析异常"); + } + // 总计行数 + importResp.setTotalRows(importRowList.size()); + CheckUtils.throwIfEmpty(importRowList, "数据文件格式错误"); + // 有效行数:过滤无效数据 + List validRowList = this.filterImportData(importRowList); + importResp.setValidRows(validRowList.size()); + CheckUtils.throwIfEmpty(validRowList, "数据文件格式错误"); + + // 检测表格内数据是否合法 + Set seenCode = new HashSet<>(); + boolean hasDuplicateCode = validRowList.stream() + .map(MaterialProcessImportRowReq::getProcessCode) + .anyMatch(code -> code != null && !seenCode.add(code)); + CheckUtils.throwIf(hasDuplicateCode, "存在重复流程编码,请检测数据"); + + // 查询重复流程名称 + importResp + .setDuplicateNameRows(countExistByField(validRowList, MaterialProcessImportRowReq::getProcessName, MaterialProcessDO::getProcessName)); + // 查询重复流程编码 + importResp + .setDuplicateCodeRows(countExistByField(validRowList, MaterialProcessImportRowReq::getProcessCode, MaterialProcessDO::getProcessCode)); + // 设置导入会话并缓存数据,有效期10分钟 + String importKey = java.util.UUID.randomUUID().toString().replace("-", ""); + RedisUtils.set(CacheConstants.DATA_IMPORT_KEY + importKey, JSONUtil.toJsonStr(validRowList), Duration + .ofMinutes(10)); + importResp.setImportKey(importKey); + return importResp; } @Override - public MaterialInfoImportResp importMaterial(MaterialInfoImportReq req) { - return null; + @Transactional(rollbackFor = Exception.class) + public MaterialProcessImportResp importMaterialProcess(MaterialProcessImportReq req) { + // 校验导入会话是否过期 + List importMaterialList; + try { + String data = RedisUtils.get(CacheConstants.DATA_IMPORT_KEY + req.getImportKey()); + importMaterialList = JSONUtil.toList(data, MaterialProcessImportRowReq.class); + CheckUtils.throwIf(ObjectUtil.isEmpty(importMaterialList), "导入已过期,请重新上传"); + } catch (Exception e) { + log.error("导入异常:", e); + throw new BusinessException("导入已过期,请重新上传"); + } + // 已存在数据查询 + List existName = listExistByField(importMaterialList, MaterialProcessImportRowReq::getProcessName, MaterialProcessDO::getProcessName); + List existCode = listExistByField(importMaterialList, MaterialProcessImportRowReq::getProcessCode, MaterialProcessDO::getProcessCode); + CheckUtils.throwIf(isExitImportMaterial(req, importMaterialList, existName, existCode), "数据不符合导入策略,已退出导入"); + + // 批量操作数据库集合 + List insertList = new ArrayList<>(); + List updateByNameList = new ArrayList<>(); + List updateByCodeList = new ArrayList<>(); + // 处理导入数据 + for (MaterialProcessImportRowReq row : importMaterialList) { + if (isSkipMaterialImport(req, row, existName, existCode)) { + continue; + } + MaterialProcessDO materialProcessDO = new MaterialProcessDO(); + materialProcessDO.setProcessName(row.getProcessName()); + materialProcessDO.setProcessCode(row.getProcessCode()); + // 修改 or 新增 + if (UPDATE.validate(req.getDuplicateName(), row.getProcessName(), existName)) { + materialProcessDO.setProcessCode(row.getProcessCode()); + materialProcessDO.setUpdateUser(UserContextHolder.getUserId()); + updateByNameList.add(materialProcessDO); + } else if (UPDATE.validate(req.getDuplicateCode(), row.getProcessCode(), existCode)) { + materialProcessDO.setProcessCode(row.getProcessCode()); + materialProcessDO.setUpdateUser(UserContextHolder.getUserId()); + updateByCodeList.add(materialProcessDO); + } else { + insertList.add(materialProcessDO); + } + } + doImportMaterial(insertList, updateByNameList, updateByCodeList); + RedisUtils.delete(CacheConstants.DATA_IMPORT_KEY + req.getImportKey()); + int insertCount = insertList.size(); + int updateByNameCount = updateByNameList.size(); + int updateByCodeCount = updateByCodeList.size(); + int totalUpdateCount = updateByNameCount + updateByCodeCount; + int totalHandleCount = insertCount + totalUpdateCount; + return new MaterialProcessImportResp(totalHandleCount, // 总处理数 + insertCount, // 新增数 + totalUpdateCount // 更新总数 + ); + } + + /** + * 按指定数据集获取数据库已存在的数量 + * + * @param materialRowList 导入的数据源 + * @param rowField 导入数据的字段 + * @param dbField 对比数据库的字段 + * @return 存在的数量 + */ + private int countExistByField(List materialRowList, + Function rowField, + SFunction dbField) { + List fieldValues = materialRowList.stream().map(rowField).filter(Objects::nonNull).toList(); + if (fieldValues.isEmpty()) { + return 0; + } + return (int)this.count(Wrappers.lambdaQuery() + .in(dbField, fieldValues)); + } + + /** + * 过滤无效的导入数据 + * + * @param importRowList 导入数据 + */ + private List filterImportData(List importRowList) { + // 校验过滤 + return importRowList.stream() + .filter(row -> ValidationUtil.validate(row).isEmpty()) + .toList(); + } + + /** + * 按指定数据集获取数据库已存在内容 + * + * @param materialRowList 导入的数据源 + * @param rowField 导入数据的字段 + * @param dbField 对比数据库的字段 + * @return 存在的内容 + */ + private List listExistByField(List materialRowList, + Function rowField, + SFunction dbField) { + List fieldValues = materialRowList.stream().map(rowField).filter(Objects::nonNull).toList(); + if (fieldValues.isEmpty()) { + return Collections.emptyList(); + } + List materialProcessDOList = baseMapper.selectList(Wrappers.lambdaQuery() + .in(dbField, fieldValues) + .select(dbField)); + return materialProcessDOList.stream().map(dbField).filter(Objects::nonNull).toList(); + } + + /** + * 判断是否退出导入 + * + * @param req 导入参数 + * @param list 导入数据 + * @param existName 导入数据中已存在的流程名称 + * @param existCode 导入数据中已存在的流程编码 + * @return 是否退出 + */ + private boolean isExitImportMaterial(MaterialProcessImportReq req, + List list, + List existName, + List existCode) { + return list.stream() + .anyMatch(row -> EXIT.validate(req.getDuplicateName(), row.getProcessName(), existName) || EXIT + .validate(req.getDuplicateCode(), row.getProcessCode(), existCode)); + } + + /** + * 判断是否跳过导入 + * + * @param req 导入参数 + * @param row 导入数据 + * @param existName 导入数据中已存在的流程名称 + * @param existCode 导入数据中已存在的流程编码 + * @return 是否跳过 + */ + private boolean isSkipMaterialImport(MaterialProcessImportReq req, + MaterialProcessImportRowReq row, + List existName, + List existCode) { + return SKIP.validate(req.getDuplicateName(), row.getProcessName(), existName) || SKIP.validate(req + .getDuplicateCode(), row.getProcessCode(), existCode); + } + + /** + * 导入物料流程 + * + * @param insertList 新增流程 + * @param updateByNameList 根据名称修改流程 + * @param updateByCodeList 根据编码修改流程 + */ + private void doImportMaterial(List insertList, + List updateByNameList, + List updateByCodeList) { + if (insertList != null && !insertList.isEmpty()) { + baseMapper.insertBatch(insertList); + } + if (updateByNameList != null && !updateByNameList.isEmpty()) { + baseMapper.updateByName(updateByNameList); + } + if (updateByCodeList != null && !updateByCodeList.isEmpty()) { + baseMapper.updateByCode(updateByCodeList); + } } } \ No newline at end of file diff --git a/wms-module-system/src/main/resources/mapper/MaterialProcessMapper.xml b/wms-module-system/src/main/resources/mapper/MaterialProcessMapper.xml index c7649d7..7048785 100644 --- a/wms-module-system/src/main/resources/mapper/MaterialProcessMapper.xml +++ b/wms-module-system/src/main/resources/mapper/MaterialProcessMapper.xml @@ -1,4 +1,62 @@ + + + UPDATE sys_material_process + + + process_code = CASE + + + WHEN process_name = #{item.processName} THEN #{item.processCode} + + + ELSE process_code + END, + update_user = CASE + + + WHEN process_name = #{item.processName} THEN #{item.updateUser} + + + ELSE update_user + END, + update_time = NOW() + + + WHERE process_name IN + + #{item.processName} + + + + + UPDATE sys_material_process + + + process_name = CASE + + + WHEN process_code = #{item.processCode} THEN #{item.processName} + + + ELSE process_name + END, + update_user = CASE + + + WHEN process_code = #{item.processCode} THEN #{item.updateUser} + + + ELSE update_user + END, + update_time = NOW() + + + WHERE process_code IN + + #{item.processCode} + + \ No newline at end of file diff --git a/wms-module-system/src/main/resources/mapper/MeterialInfoMapper.xml b/wms-module-system/src/main/resources/mapper/MeterialInfoMapper.xml index f77ce8e..f3952e2 100644 --- a/wms-module-system/src/main/resources/mapper/MeterialInfoMapper.xml +++ b/wms-module-system/src/main/resources/mapper/MeterialInfoMapper.xml @@ -4,46 +4,76 @@ - - UPDATE sys_material_info - - - encoding = #{item.encoding}, - - - unit_weight = #{item.unitWeight}, - - - material_spec = #{item.materialSpec}, - - - update_user = #{item.updateUser}, - + UPDATE sys_material_info + + + encoding = CASE + + + WHEN material_name = #{item.materialName} THEN #{item.encoding} + + + ELSE encoding + END, + unit_weight = CASE + + + WHEN material_name = #{item.materialName} THEN #{item.unitWeight} + + + ELSE unit_weight + END, + update_user = CASE + + + WHEN material_name = #{item.materialName} THEN #{item.updateUser} + + + ELSE update_user + END, update_time = NOW() - - WHERE material_name = #{item.materialName} + + + WHERE material_name IN + + #{item.materialName} - - UPDATE sys_material_info - - - material_name = #{item.materialName}, - - - unit_weight = #{item.unitWeight}, - - - material_spec = #{item.materialSpec}, - - - update_user = #{item.updateUser}, - + UPDATE sys_material_info + + + material_name = CASE + + + WHEN encoding = #{item.encoding} THEN #{item.materialName} + + + ELSE material_name + END, + unit_weight = CASE + + + WHEN encoding = #{item.encoding} THEN #{item.unitWeight} + + + ELSE unit_weight + END, + update_user = CASE + + + WHEN encoding = #{item.encoding} THEN #{item.updateUser} + + + ELSE update_user + END, update_time = NOW() - - WHERE encoding = #{item.encoding} + + + WHERE encoding IN + + #{item.encoding} @@ -70,4 +100,4 @@ ${ew.customSqlSegment} - + \ No newline at end of file diff --git a/wms-webapi/src/main/java/top/wms/admin/controller/materialProcess/MaterialProcessController.java b/wms-webapi/src/main/java/top/wms/admin/controller/materialProcess/MaterialProcessController.java index 3e90831..066a545 100644 --- a/wms-webapi/src/main/java/top/wms/admin/controller/materialProcess/MaterialProcessController.java +++ b/wms-webapi/src/main/java/top/wms/admin/controller/materialProcess/MaterialProcessController.java @@ -2,32 +2,31 @@ package top.wms.admin.controller.materialProcess; import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import top.continew.starter.core.validation.ValidationUtils; -import top.continew.starter.extension.crud.enums.Api; - -import io.swagger.v3.oas.annotations.tags.Tag; - -import org.springframework.web.bind.annotation.*; - -import lombok.RequiredArgsConstructor; import top.continew.starter.extension.crud.annotation.CrudRequestMapping; +import top.continew.starter.extension.crud.enums.Api; import top.continew.starter.extension.crud.model.resp.LabelValueResp; import top.continew.starter.log.annotation.Log; import top.wms.admin.common.controller.BaseController; -import top.wms.admin.material.model.req.MaterialInfoImportReq; -import top.wms.admin.material.model.resp.MaterialImportParseResp; -import top.wms.admin.material.model.resp.MaterialInfoImportResp; import top.wms.admin.materialProcess.model.query.MaterialProcessQuery; +import top.wms.admin.materialProcess.model.req.MaterialProcessImportReq; import top.wms.admin.materialProcess.model.req.MaterialProcessReq; +import top.wms.admin.materialProcess.model.resp.MaterialProcessImportParseResp; +import top.wms.admin.materialProcess.model.resp.MaterialProcessImportResp; import top.wms.admin.materialProcess.model.resp.MaterialProcessResp; import top.wms.admin.materialProcess.service.MaterialProcessService; -import java.io.IOException; import java.util.List; /** @@ -61,7 +60,7 @@ public class MaterialProcessController extends BaseController