diff --git a/wms-module-system/src/main/java/top/wms/admin/material/mapper/MaterialInfoMapper.java b/wms-module-system/src/main/java/top/wms/admin/material/mapper/MaterialInfoMapper.java index a6bda57..f58e75a 100644 --- a/wms-module-system/src/main/java/top/wms/admin/material/mapper/MaterialInfoMapper.java +++ b/wms-module-system/src/main/java/top/wms/admin/material/mapper/MaterialInfoMapper.java @@ -20,10 +20,12 @@ import java.util.List; */ @Repository public interface MaterialInfoMapper extends BaseMapper { - public int updateByName(List list); + int updateByName(@Param("list") List list); - public int updateByCode(List list); + int updateByCode(@Param("list") List list); IPage selectMaterialInfoPage(@Param("page") Page objectPage, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + List selectMaterialInfoExport(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/wms-module-system/src/main/java/top/wms/admin/material/model/req/MaterialImportRowReq.java b/wms-module-system/src/main/java/top/wms/admin/material/model/req/MaterialImportRowReq.java index 1b76cc1..087cce1 100644 --- a/wms-module-system/src/main/java/top/wms/admin/material/model/req/MaterialImportRowReq.java +++ b/wms-module-system/src/main/java/top/wms/admin/material/model/req/MaterialImportRowReq.java @@ -1,7 +1,9 @@ package top.wms.admin.material.model.req; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import org.hibernate.validator.constraints.Length; @@ -35,6 +37,7 @@ public class MaterialImportRowReq implements Serializable { * 物料单位重量(g) */ @Schema(description = "物料单位重量(g)") + @NotNull(message = "物料单位重量不能为空") private BigDecimal unitWeight; /* @@ -42,4 +45,17 @@ public class MaterialImportRowReq implements Serializable { * */ @Schema(description = "物料规格") private String materialSpec; + + /** + * 物料类型名称 + */ + @Schema(description = "物料类型名称") + private String typeName; + + /** + * 流程名称 + */ + @Schema(description = "流程名称") + private String processName; + } diff --git a/wms-module-system/src/main/java/top/wms/admin/material/model/req/MaterialInfoReq.java b/wms-module-system/src/main/java/top/wms/admin/material/model/req/MaterialInfoReq.java index 444b51a..b18ba8c 100644 --- a/wms-module-system/src/main/java/top/wms/admin/material/model/req/MaterialInfoReq.java +++ b/wms-module-system/src/main/java/top/wms/admin/material/model/req/MaterialInfoReq.java @@ -44,6 +44,7 @@ public class MaterialInfoReq implements Serializable { * 物料单位重量(g) */ @Schema(description = "物料单位重量(g)") + @NotNull(message = "物料单位重量不能为空") private Double unitWeight; /* diff --git a/wms-module-system/src/main/java/top/wms/admin/material/model/resp/MaterialInfoResp.java b/wms-module-system/src/main/java/top/wms/admin/material/model/resp/MaterialInfoResp.java index e48bbd2..f48ce74 100644 --- a/wms-module-system/src/main/java/top/wms/admin/material/model/resp/MaterialInfoResp.java +++ b/wms-module-system/src/main/java/top/wms/admin/material/model/resp/MaterialInfoResp.java @@ -9,6 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import top.wms.admin.common.model.resp.BaseDetailResp; import java.io.Serial; +import java.math.BigDecimal; /** * 物料信息信息 @@ -62,13 +63,43 @@ public class MaterialInfoResp extends BaseDetailResp { * 物料类型名称 */ @Schema(description = "物料类型名称") - @ExcelIgnore + @ExcelProperty(value = "物料类型") private String typeName; /** * 流程名称 */ @Schema(description = "流程名称") - @ExcelIgnore + @ExcelProperty(value = "物料流程") private String processName; + + /** + * 物料类型ID + */ + @Schema(description = "物料类型ID") + @ExcelIgnore + private Long materialTypeId; + + /** + * 流程ID + */ + @Schema(description = "流程ID") + @ExcelIgnore + private Long materialProcessId; + + + /** + * 品类下行浮动范围(%) + */ + @Schema(description = "品类下行浮动范围(%)") + @ExcelIgnore + private BigDecimal downFloatRatio; + + /** + * 品类上行浮动范围(%) + */ + @Schema(description = "品类上行浮动范围(%)") + @ExcelIgnore + private BigDecimal upFloatRatio; + } diff --git a/wms-module-system/src/main/java/top/wms/admin/material/service/MaterialInfoService.java b/wms-module-system/src/main/java/top/wms/admin/material/service/MaterialInfoService.java index bf3cb55..4724791 100644 --- a/wms-module-system/src/main/java/top/wms/admin/material/service/MaterialInfoService.java +++ b/wms-module-system/src/main/java/top/wms/admin/material/service/MaterialInfoService.java @@ -21,11 +21,13 @@ import java.io.IOException; */ public interface MaterialInfoService extends BaseService { - /* - * - * 根据编码查询物料信息 - * */ - public MaterialInfoDO getMaterialInfoByCode(String code); + /** + * 根据编码查询物料信息 + * + * @param code 物料编码 + * @return 物料信息 + */ + MaterialInfoResp getMaterialInfoByCode(String code); /** * 下载导入模板 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 35c5c37..f111237 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 @@ -10,6 +10,7 @@ import cn.hutool.extra.validation.ValidationUtil; import cn.hutool.http.ContentType; import cn.hutool.json.JSONUtil; import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -31,8 +32,10 @@ import top.continew.starter.cache.redisson.util.RedisUtils; import top.continew.starter.core.exception.BusinessException; import top.continew.starter.core.validation.CheckUtils; import top.continew.starter.extension.crud.model.query.PageQuery; +import top.continew.starter.extension.crud.model.query.SortQuery; import top.continew.starter.extension.crud.model.resp.PageResp; import top.continew.starter.extension.crud.service.BaseServiceImpl; +import top.continew.starter.file.excel.util.ExcelUtils; import top.continew.starter.web.util.FileUploadUtils; import top.wms.admin.common.constant.CacheConstants; import top.wms.admin.common.context.UserContextHolder; @@ -47,6 +50,10 @@ import top.wms.admin.material.model.resp.MaterialImportParseResp; import top.wms.admin.material.model.resp.MaterialInfoImportResp; import top.wms.admin.material.model.resp.MaterialInfoResp; import top.wms.admin.material.service.MaterialInfoService; +import top.wms.admin.materialProcess.mapper.MaterialProcessMapper; +import top.wms.admin.materialProcess.model.entity.MaterialProcessDO; +import top.wms.admin.materialType.mapper.MaterialTypeMapper; +import top.wms.admin.materialType.model.entity.MaterialTypeDO; import top.wms.admin.system.service.FileService; import javax.imageio.ImageIO; @@ -55,6 +62,7 @@ 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; @@ -79,6 +87,10 @@ public class MaterialInfoServiceImpl extends BaseServiceImpl page(MaterialInfoQuery query, PageQuery pageQuery) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -93,12 +105,28 @@ public class MaterialInfoServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.like(StrUtil.isNotBlank(query.getMaterialName()), "mi.material_name", query.getMaterialName()); + queryWrapper.likeLeft(StrUtil.isNotBlank(query.getEncoding()), "mi.encoding", query.getEncoding()); + this.sort(queryWrapper, sortQuery); + + List list = baseMapper.selectMaterialInfoExport(queryWrapper); + ExcelUtils.export(list, "物料信息导出", MaterialInfoResp.class, response); + } + + @Override + public MaterialInfoResp getMaterialInfoByCode(String code) { + MaterialInfoResp materialInfoResp = new MaterialInfoResp(); + MaterialInfoDO materialInfoDO = baseMapper.lambdaQuery().eq(MaterialInfoDO::getEncoding, code).one(); + CheckUtils.throwIf(materialInfoDO == null, "物料信息不存在"); + MaterialTypeDO materialTypeDO = materialTypeMapper.selectById(materialInfoDO.getMaterialTypeId()); + CheckUtils.throwIf(materialTypeDO == null, "该物料对应类型不存在"); + BeanUtil.copyProperties(materialInfoDO, materialInfoResp); + materialInfoResp.setUpFloatRatio(materialTypeDO.getUpFloatRatio()); + materialInfoResp.setDownFloatRatio(materialTypeDO.getDownFloatRatio()); + return materialInfoResp; } @Override @@ -107,7 +135,7 @@ public class MaterialInfoServiceImpl extends BaseServiceImpl encoding != null && !seenCode.add(encoding)); CheckUtils.throwIf(hasDuplicateEncoding, "存在重复物料编码,请检测数据"); - // 查询重复用户 + // 查询重复物料名 materialImportResp .setDuplicateNameRows(countExistByField(validRowList, MaterialImportRowReq::getMaterialName, MaterialInfoDO::getMaterialName, false)); - // 查询重复邮箱 + // 查询重复物料编码 materialImportResp .setDuplicateCodeRows(countExistByField(validRowList, MaterialImportRowReq::getEncoding, MaterialInfoDO::getEncoding, false)); // 设置导入会话并缓存数据,有效期10分钟 @@ -175,33 +203,46 @@ public class MaterialInfoServiceImpl extends BaseServiceImpl existName = listExistByField(importMaterialList, MaterialImportRowReq::getMaterialName, MaterialInfoDO::getMaterialName); List existCode = listExistByField(importMaterialList, MaterialImportRowReq::getEncoding, MaterialInfoDO::getEncoding); CheckUtils.throwIf(isExitImportMaterial(req, importMaterialList, existName, existCode), "数据不符合导入策略,已退出导入"); + + //查询物料类型 + List collect = importMaterialList.stream().map(MaterialImportRowReq::getTypeName).distinct().toList(); + Map materialTypeMap = new HashMap<>(); + if(CollUtil.isNotEmpty(collect)){ + List materialTypeList = materialTypeMapper.selectList(new LambdaQueryWrapper().in(MaterialTypeDO::getTypeName, collect)); + materialTypeMap = materialTypeList.stream().collect(Collectors.toMap(MaterialTypeDO::getTypeName, MaterialTypeDO::getId, (k1, v1) -> v1)); + } + //查询物料流程 + List collect1 = importMaterialList.stream().map(MaterialImportRowReq::getProcessName).distinct().toList(); + List materialProcessList = materialProcessMapper.selectList(new LambdaQueryWrapper().in(MaterialProcessDO::getProcessName, collect1)); + Map materialProcessMap = new HashMap<>(); + if(CollUtil.isNotEmpty(materialProcessList)) { + materialProcessMap = materialProcessList.stream().collect(Collectors.toMap(MaterialProcessDO::getProcessName, MaterialProcessDO::getId, (k1, v1) -> v1)); + } + // 批量操作数据库集合 List insertList = new ArrayList<>(); List updateByNameList = new ArrayList<>(); List updateByCodeList = new ArrayList<>(); // ID生成器 - // IdGenerator idGenerator = DefaultIdGeneratorProvider.INSTANCE.getShare(); for (MaterialImportRowReq row : importMaterialList) { if (isSkipMaterialImport(req, row, existName, existCode)) { - // 按规则跳过该行 continue; } MaterialInfoDO materialDO = BeanUtil.toBeanIgnoreError(row, MaterialInfoDO.class); materialDO.setUnitWeight(NumberUtil.isValidNumber(row.getUnitWeight()) ? row.getUnitWeight() : null); materialDO.setMaterialSpec(StrUtil.isNotBlank(row.getMaterialSpec()) ? row.getMaterialSpec() : null); + materialDO.setMaterialProcessId(materialProcessMap.get(row.getProcessName())); + materialDO.setMaterialTypeId(materialTypeMap.get(row.getTypeName())); // 修改 or 新增 if (UPDATE.validate(req.getDuplicateName(), row.getMaterialName(), existName)) { materialDO.setMaterialName(row.getMaterialName()); - materialDO.setUpdateTime(LocalDateTime.now()); materialDO.setUpdateUser(UserContextHolder.getUserId()); updateByNameList.add(materialDO); } else if (UPDATE.validate(req.getDuplicateCode(), row.getEncoding(), existCode)) { materialDO.setEncoding(row.getEncoding()); - materialDO.setUpdateTime(LocalDateTime.now()); materialDO.setUpdateUser(UserContextHolder.getUserId()); updateByCodeList.add(materialDO); } else { - // materialDO.setId(idGenerator.generate()); insertList.add(materialDO); } } @@ -245,16 +286,9 @@ public class MaterialInfoServiceImpl extends BaseServiceImpl filterImportData(List importRowList) { // 校验过滤 - List list = importRowList.stream() + return importRowList.stream() .filter(row -> ValidationUtil.validate(row).isEmpty()) .toList(); - // 物料名去重 - return list.stream() - .collect(Collectors.toMap(MaterialImportRowReq::getMaterialName, row -> row, (existing, - replacement) -> existing)) - .values() - .stream() - .toList(); } /** @@ -339,7 +373,7 @@ public class MaterialInfoServiceImpl extends BaseServiceImpl codeUrlMap = new HashMap<>(); // 物料照片存储路径(自定义,比如按日期分目录) - String photoStoragePath = "/" + DateUtil.today() + "/"; + String photoStoragePath = "material/"; try (ZipInputStream zipInputStream = new ZipInputStream(zipFile.getInputStream())) { ZipEntry zipEntry; @@ -351,7 +385,7 @@ public class MaterialInfoServiceImpl extends BaseServiceImpl validateWeighing(WorkOrderReq req); } \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/weighManage/service/impl/WorkOrderServiceImpl.java b/wms-module-system/src/main/java/top/wms/admin/weighManage/service/impl/WorkOrderServiceImpl.java index 77ba71b..a47f3fc 100644 --- a/wms-module-system/src/main/java/top/wms/admin/weighManage/service/impl/WorkOrderServiceImpl.java +++ b/wms-module-system/src/main/java/top/wms/admin/weighManage/service/impl/WorkOrderServiceImpl.java @@ -11,12 +11,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import top.continew.starter.core.validation.CheckUtils; import top.continew.starter.extension.crud.model.query.PageQuery; import top.continew.starter.extension.crud.model.resp.PageResp; import top.continew.starter.extension.crud.service.BaseServiceImpl; import top.wms.admin.common.context.UserContextHolder; import top.wms.admin.material.mapper.MaterialInfoMapper; import top.wms.admin.material.model.entity.MaterialInfoDO; +import top.wms.admin.materialType.mapper.MaterialTypeMapper; +import top.wms.admin.materialType.model.entity.MaterialTypeDO; import top.wms.admin.system.service.ConfigService; import top.wms.admin.weighManage.mapper.WorkOrderInfoMapper; import top.wms.admin.weighManage.mapper.WorkOrderMapper; @@ -31,7 +34,9 @@ import top.wms.admin.weighManage.service.WorkOrderService; import java.math.BigDecimal; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 任务工单信息业务实现 @@ -48,6 +53,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl validateWeighing(WorkOrderReq req) { + Map map = new HashMap<>(); + map.put("code", "200"); log.info("validateWeighing req:{}", req); - String configValue = configService.getConfigValue("weight_float_ratio"); - BigDecimal weightFloat = new BigDecimal("0.06"); - if (StrUtil.isNotBlank(configValue)) { - weightFloat = new BigDecimal(configValue); - } + MaterialInfoDO materialInfoDO = materialInfoMapper.selectById(req.getMaterialId()); + CheckUtils.throwIf((materialInfoDO == null || null == materialInfoDO.getMaterialTypeId()), "该物料信息不全,请先维护!"); + MaterialTypeDO materialTypeDO = materialTypeMapper.selectById(materialInfoDO.getMaterialTypeId()); + CheckUtils.throwIf((materialTypeDO == null || null == materialTypeDO.getDownFloatRatio() || null == materialTypeDO.getUpFloatRatio()), "该物料品类信息不全,请先维护!"); + + //下行浮动范围 + BigDecimal downFloatRatio = materialTypeDO.getDownFloatRatio(); + //上行浮动范围 + BigDecimal upFloatRatio = materialTypeDO.getUpFloatRatio(); //计算标准重量 BigDecimal standardWeight = new BigDecimal(req.getCalculatedWeight()); + //电子秤重量 BigDecimal electronicWeight = new BigDecimal(req.getAhDeviceWeight()); - // 检查 electronicWeight 是否大于 standardWeight - if (electronicWeight.compareTo(standardWeight) <= 0) { - log.error("电子秤重量必须大于标准重量"); - return 500; // 电子秤重量必须大于标准重量 - } - - // 计算比值:(electronicWeight - standardWeight) / standardWeight + // 计算比值:(实重 - 标重) / 标重 BigDecimal weightDifference = electronicWeight.subtract(standardWeight); - BigDecimal ratio = weightDifference.divide(standardWeight, 4, BigDecimal.ROUND_HALF_UP); + BigDecimal ratio = weightDifference.divide(standardWeight, 4, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); + log.info("ratio当前比值:{}%", ratio); - // 检查比值是否超过 6% - if (ratio.compareTo(weightFloat) > 0) { - log.error("比值超过 6%,当前比值: {}", ratio); - return 500; // 比值超过 6% + // 检查比值是否超过上行浮动范围 + if (ratio.compareTo(upFloatRatio) > 0) { + log.info("比值超过 {}%", upFloatRatio); + map.put("code", "502"); + map.put("msg", "数量不足"); + return map; } - return 200; // 验证通过 + // 检查比值是否超过下行浮动范围 + if (ratio.compareTo(downFloatRatio) < 0) { + log.info("比值超过下限 {}%", downFloatRatio); + map.put("code", "501"); + map.put("msg", "数量过多"); + return map; + } + + return map; } } \ 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 d7c2b5e..f77ce8e 100644 --- a/wms-module-system/src/main/resources/mapper/MeterialInfoMapper.xml +++ b/wms-module-system/src/main/resources/mapper/MeterialInfoMapper.xml @@ -6,22 +6,21 @@ UPDATE sys_material_info - SET - - encoding = #{item.encoding}, - - - unit_weight = #{item.unitWeight}, - - - material_spec = #{item.materialSpec}, - - - update_time = NOW(), - - - update_user = #{item.updateUser} - + + + encoding = #{item.encoding}, + + + unit_weight = #{item.unitWeight}, + + + material_spec = #{item.materialSpec}, + + + update_user = #{item.updateUser}, + + update_time = NOW() + WHERE material_name = #{item.materialName} @@ -29,22 +28,21 @@ UPDATE sys_material_info - SET - - material_name = #{item.materialName}, - - - unit_weight = #{item.unitWeight}, - - - material_spec = #{item.materialSpec}, - - - update_time = NOW(), - - - update_user = #{item.updateUser} - + + + material_name = #{item.materialName}, + + + unit_weight = #{item.unitWeight}, + + + material_spec = #{item.materialSpec}, + + + update_user = #{item.updateUser}, + + update_time = NOW() + WHERE encoding = #{item.encoding} @@ -60,5 +58,16 @@ left join sys_material_process mp on mi.material_process_id = mp.id ${ew.customSqlSegment} + diff --git a/wms-webapi/src/main/java/top/wms/admin/controller/meterial/MaterialInfoController.java b/wms-webapi/src/main/java/top/wms/admin/controller/meterial/MaterialInfoController.java index 4b22a31..a4619da 100644 --- a/wms-webapi/src/main/java/top/wms/admin/controller/meterial/MaterialInfoController.java +++ b/wms-webapi/src/main/java/top/wms/admin/controller/meterial/MaterialInfoController.java @@ -1,6 +1,8 @@ package top.wms.admin.controller.meterial; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotNull; @@ -29,6 +31,8 @@ import top.wms.admin.material.model.resp.MaterialInfoResp; import top.wms.admin.material.service.MaterialInfoService; import java.io.IOException; +import java.util.Arrays; +import java.util.List; /** * 物料信息管理 API @@ -44,10 +48,15 @@ import java.io.IOException; public class MaterialInfoController extends BaseController { @GetMapping("/code/{code}") - public MaterialInfoDO getMaterialInfoByCode(@PathVariable String code) { - MaterialInfoDO materialInfoDO = baseService.getMaterialInfoByCode(code); - CheckUtils.throwIfEmpty(materialInfoDO, "未查询到相关物料信息"); - return materialInfoDO; + public MaterialInfoResp getMaterialInfoByCode(@PathVariable String code) { + List list = Arrays.asList(code.split(",")); + if (CollUtil.isNotEmpty(list) && list.size() > 1) { + code = list.get(1); + } + + MaterialInfoResp materialInfoResp = baseService.getMaterialInfoByCode(code); + CheckUtils.throwIfEmpty(materialInfoResp, "未查询到相关物料信息"); + return materialInfoResp; } @Operation(summary = "下载导入模板", description = "下载导入模板") diff --git a/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/WorkOrderController.java b/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/WorkOrderController.java index 7b5e083..e7e3845 100644 --- a/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/WorkOrderController.java +++ b/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/WorkOrderController.java @@ -21,6 +21,7 @@ import top.wms.admin.weighManage.model.resp.WorkOrderResp; import top.wms.admin.weighManage.service.WorkOrderService; import java.util.List; +import java.util.Map; /** * 任务工单信息管理 API @@ -71,12 +72,12 @@ public class WorkOrderController extends BaseController validateResult = baseService.validateWeighing(req); + return R.ok(validateResult); } } \ No newline at end of file diff --git a/wms-webapi/src/main/resources/config/application-dev.yml b/wms-webapi/src/main/resources/config/application-dev.yml index c72f42c..8cad03b 100644 --- a/wms-webapi/src/main/resources/config/application-dev.yml +++ b/wms-webapi/src/main/resources/config/application-dev.yml @@ -18,7 +18,7 @@ spring: spring.datasource: type: com.zaxxer.hikari.HikariDataSource # 请务必提前创建好名为 wms_admin 的数据库,如果使用其他数据库名请注意同步修改 DB_NAME 配置 - url: jdbc:p6spy:mysql://127.0.0.1:3306/wms?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&autoReconnect=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true + url: jdbc:p6spy:mysql://127.0.0.1:3306/wms?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&autoReconnect=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&allowMultiQueries=true username: root password: root # PostgreSQL 配置 @@ -54,12 +54,12 @@ spring.data: ## Redis 配置(单机模式) redis: # 地址 -# host: ${REDIS_HOST:192.168.2.30} - host: ${REDIS_HOST:127.0.0.1} + host: ${REDIS_HOST:192.168.2.30} +# host: ${REDIS_HOST:127.0.0.1} # 端口(默认 6379) port: ${REDIS_PORT:6379} # 密码(未设置密码时请注释掉) -# password: ${REDIS_PWD:redis2025} + password: ${REDIS_PWD:redis2025} # 数据库索引 database: ${REDIS_DB:0} # 连接超时时间 @@ -138,11 +138,13 @@ captcha: continew-starter.log: # 是否打印日志,开启后可打印访问日志(类似于 Nginx access log) is-print: true + # 忽略的路径,多个路径用逗号分隔 + exclude-patterns: ["/file/**", "/sdk/**"] ## 项目日志配置(配置重叠部分,优先级高于 logback-spring.xml 中的配置) logging: level: - top.continew.admin: DEBUG - top.continew.starter: DEBUG + top.continew.admin: WARN + top.continew.starter: WARN file: path: ./logs diff --git a/wms-webapi/src/main/resources/config/application-prod.yml b/wms-webapi/src/main/resources/config/application-prod.yml index 0006678..2e6ca15 100644 --- a/wms-webapi/src/main/resources/config/application-prod.yml +++ b/wms-webapi/src/main/resources/config/application-prod.yml @@ -14,7 +14,7 @@ server: spring.datasource: type: com.zaxxer.hikari.HikariDataSource # 请务必提前创建好名为 wms_admin 的数据库,如果使用其他数据库名请注意同步修改 DB_NAME 配置 - url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wms_admin}?serverTimezone=Asia/Shanghai&useSSL=true&useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&autoReconnect=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true + url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wms_admin}?serverTimezone=Asia/Shanghai&useSSL=true&useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&autoReconnect=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&allowMultiQueries=true username: ${DB_USER:root} password: ${DB_PWD:123456} driver-class-name: com.mysql.cj.jdbc.Driver diff --git a/wms-webapi/src/main/resources/templates/import/materialInfo.xlsx b/wms-webapi/src/main/resources/templates/import/materialInfo.xlsx index d9215c4..bbdbffa 100644 Binary files a/wms-webapi/src/main/resources/templates/import/materialInfo.xlsx and b/wms-webapi/src/main/resources/templates/import/materialInfo.xlsx differ