diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/area/domain/entity/AreaEntity.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/area/domain/entity/AreaEntity.java index 73d17f7..88bb9ae 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/area/domain/entity/AreaEntity.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/area/domain/entity/AreaEntity.java @@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.time.LocalDateTime; + +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 库区信息 实体类 @@ -17,6 +21,9 @@ import lombok.Data; */ @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @TableName("t_area") public class AreaEntity { diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/area/domain/form/AreaAddForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/area/domain/form/AreaAddForm.java index b2db8c7..496aeb9 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/area/domain/form/AreaAddForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/area/domain/form/AreaAddForm.java @@ -9,9 +9,9 @@ import lombok.Data; /** * 库区信息 新建表单 * - * @Author hj - * @Date 2025-03-11 11:12:36 - * @Copyright 友仓 + * @author hj + * @since 2025-03-11 11:12:36 + * copyright 友仓 */ @Data diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/item/domain/entity/ItemEntity.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/item/domain/entity/ItemEntity.java index d1604fa..8d487d2 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/item/domain/entity/ItemEntity.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/item/domain/entity/ItemEntity.java @@ -8,19 +8,23 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.math.BigDecimal; import java.time.LocalDateTime; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 物料信息 实体类 * - * @Author 霍锦 - * @Date 2024-11-25 17:08:18 - * @Copyright 友仓 + * @author 霍锦 + * @since 2024-11-25 17:08:18 + * copyright 友仓 */ @Data @Builder +@AllArgsConstructor +@NoArgsConstructor @TableName("t_item") public class ItemEntity { diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/item/domain/form/ItemAddForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/item/domain/form/ItemAddForm.java index 5a5a4af..ca2be41 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/item/domain/form/ItemAddForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/item/domain/form/ItemAddForm.java @@ -1,21 +1,22 @@ package net.lab1024.sa.admin.module.business.base.item.domain.form; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; -import java.time.LocalDateTime; import lombok.Data; +import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer; /** * 物料信息 新建表单 * - * @Author 霍锦 - * @Date 2024-11-25 17:08:18 - * @Copyright 友仓 + * @author 霍锦 + * @since 2024-11-25 17:08:18 + * copyright 友仓 */ @Data @@ -33,8 +34,8 @@ public class ItemAddForm { @NotBlank(message = "单位 不能为空") private String unit; - @Schema(description = "物料类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotBlank(message = "物料类型 不能为空") + @Schema(description = "物料类型") + @NotBlank(message = "物料类型 不能为空 ") private String itemType; @Schema(description = "包装系数") diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/domain/entity/LocationEntity.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/domain/entity/LocationEntity.java index 9e60d8e..899688f 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/domain/entity/LocationEntity.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/domain/entity/LocationEntity.java @@ -7,19 +7,23 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.time.LocalDateTime; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 库位信息 实体类 * - * @Author 霍锦 - * @Date 2024-11-18 14:17:31 - * @Copyright 友仓 + * @author 霍锦 + * @since 2024-11-18 14:17:31 + * copyright 友仓 */ @Data @Builder +@AllArgsConstructor +@NoArgsConstructor @TableName("t_location") public class LocationEntity { diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/domain/form/LocationAddForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/domain/form/LocationAddForm.java index b8662e0..910f670 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/domain/form/LocationAddForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/domain/form/LocationAddForm.java @@ -4,12 +4,8 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; - -import java.time.LocalDateTime; - import lombok.Data; import net.lab1024.sa.admin.constant.UsageStatusEnum; -import net.lab1024.sa.admin.module.business.goods.constant.GoodsStatusEnum; import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer; import net.lab1024.sa.base.common.swagger.SchemaEnum; import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; @@ -17,9 +13,9 @@ import net.lab1024.sa.base.common.validator.enumeration.CheckEnum; /** * 库位信息 新建表单 * - * @Author 霍锦 - * @Date 2024-11-18 14:17:31 - * @Copyright 友仓 + * @author 霍锦 + * @since 2024-11-18 14:17:31 + * copyright 友仓 */ @Data @@ -29,14 +25,8 @@ public class LocationAddForm { @NotBlank(message = "库位编码 不能为空") private String locationCode; - @Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED) - @NotBlank(message = "库位名称 不能为空") - private String locationName; - - @Schema(description = "库位类型") @NotBlank(message = "库位类型 不能为空 ") - @JsonDeserialize(using = DictValueVoDeserializer.class) private String locationType; @SchemaEnum(UsageStatusEnum.class) diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/service/LocationQueryService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/service/LocationQueryService.java index db1ea45..9037055 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/service/LocationQueryService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/service/LocationQueryService.java @@ -59,12 +59,12 @@ public class LocationQueryService { List list = locationDao.queryPage(page, queryForm); // 查询库区名称 - List categoryIdList = list.stream().map(LocationVO::getAreaId).distinct().collect(Collectors.toList()); - Map areaMap = areaQueryService.queryAreaList(categoryIdList); - list.forEach(area -> { - AreaEntity areaEntity = areaMap.get(area.getAreaId()); - if (areaEntity != null) { - area.setAreaName(areaEntity.getAreaName()); + List areaIdList = list.stream().map(LocationVO::getAreaId).distinct().collect(Collectors.toList()); + Map areaMap = areaQueryService.queryAreaList(areaIdList); + list.forEach(locationVO -> { + AreaEntity area = areaMap.get(locationVO.getAreaId()); + if (area != null) { + locationVO.setAreaName(area.getAreaName()); } }); return SmartPageUtil.convert2PageResult(page, list); diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/service/LocationService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/service/LocationService.java index 77d0f03..f81a1e7 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/service/LocationService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/location/service/LocationService.java @@ -33,7 +33,7 @@ import org.springframework.web.multipart.MultipartFile; * 库位信息 Service * * @author 霍锦 - * @since 2024-11-18 14:17:31 + * @since 2024-11-18 14:17:31 * copyright 友仓 */ @@ -219,9 +219,10 @@ public class LocationService { /** * 批量新增 + * * @param locationCodes 库位集合 - * @param areaId 库区 - * @param locationType 库位类型 + * @param areaId 库区 + * @param locationType 库位类型 */ public void multipleInsert(List locationCodes, Long areaId, String locationType) { List insertToLocation = new ArrayList<>(); @@ -362,4 +363,21 @@ public class LocationService { return areaMap; } + /** + * 更新库位状态 + * + * @param locationId 库位id + * @param status 状态 + */ + @Transactional(rollbackFor = Exception.class) + public void updateLocationStatus(Long locationId, String status) { + if (locationId != null) { + LocationEntity location = locationDao.selectById(locationId); + if (location != null) { + location.setStatus(status); + locationDao.updateById(location); + } + } + } + } diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/controller/StockController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/controller/StockController.java index 93c2aee..aef145a 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/controller/StockController.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/controller/StockController.java @@ -13,8 +13,10 @@ import net.lab1024.sa.admin.module.business.base.stock.domain.vo.StockVO; import net.lab1024.sa.admin.module.business.base.stock.domain.vo.StocksExcelVO; import net.lab1024.sa.admin.module.business.base.stock.service.StockQueryService; import net.lab1024.sa.admin.module.business.base.stock.service.StockService; +import net.lab1024.sa.base.common.domain.RequestUser; import net.lab1024.sa.base.common.domain.ValidateList; import net.lab1024.sa.base.common.util.SmartExcelUtil; +import net.lab1024.sa.base.common.util.SmartRequestUtil; import org.springframework.web.bind.annotation.*; import net.lab1024.sa.base.common.domain.ResponseDTO; import net.lab1024.sa.base.common.domain.PageResult; @@ -57,6 +59,9 @@ public class StockController { @PostMapping("/stock/add") @SaCheckPermission("stock:add") public ResponseDTO add(@RequestBody @Valid StockAddForm addForm) { + RequestUser requestUser = SmartRequestUtil.getRequestUser(); + addForm.setCreateUserId(requestUser.getUserId()); + addForm.setCreateUserName(requestUser.getUserName()); return stockService.add(addForm); } @@ -83,7 +88,7 @@ public class StockController { @Operation(summary = "容器下拉查询") @PostMapping("/stock/queryStock") - public ResponseDTO> queryItem(@RequestBody StockSelect stockSelect) { + public ResponseDTO> queryStock(@RequestBody StockSelect stockSelect) { return ResponseDTO.ok(stockQueryService.queryStock(stockSelect)); } diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/entity/StockEntity.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/entity/StockEntity.java index a8acc31..4c0133f 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/entity/StockEntity.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/entity/StockEntity.java @@ -7,19 +7,23 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.time.LocalDateTime; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 容器信息 实体类 * - * @Author 霍锦 - * @Date 2024-11-26 11:37:48 - * @Copyright 友仓 + * @author 霍锦 + * @since 2024-11-26 11:37:48 + * copyright 友仓 */ @Data @Builder +@AllArgsConstructor +@NoArgsConstructor @TableName("t_stock") public class StockEntity { @@ -37,6 +41,7 @@ public class StockEntity { /** * 库位ID */ + @TableField(fill = FieldFill.INSERT_UPDATE) private Long locationId; /** diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockAddForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockAddForm.java index 9119534..832c8f8 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockAddForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockAddForm.java @@ -4,25 +4,20 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; -import java.time.LocalDateTime; import lombok.Data; import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer; /** * 容器信息 新建表单 * - * @Author 霍锦 - * @Date 2024-11-26 11:37:48 - * @Copyright 友仓 + * @author 霍锦 + * @since 2024-11-26 11:37:48 + * copyright 友仓 */ @Data public class StockAddForm { - @Schema(description = "容器id", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "容器id 不能为空") - private Long stockId; - @Schema(description = "容器编码", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "容器编码 不能为空") private String stockCode; @@ -35,25 +30,19 @@ public class StockAddForm { @NotNull(message = "启用状态 不能为空") private Boolean disabledFlag; - @Schema(description = "容器类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotBlank(message = "容器类型 不能为空") - @JsonDeserialize(using = DictValueVoDeserializer.class) + @Schema(description = "容器类型") + @NotBlank(message = "容器类型 不能为空 ") private String stockType; - @Schema(description = "创建人ID", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建人ID 不能为空") + @Schema(description = "库位") + private Long locationId; + + @Schema(hidden = true) private Long createUserId; - @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED) - @NotBlank(message = "创建人 不能为空") + @Schema(hidden = true) private String createUserName; - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建时间 不能为空") - private LocalDateTime createTime; - @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "更新时间 不能为空") - private LocalDateTime updateTime; } \ No newline at end of file diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockQueryForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockQueryForm.java index 5b008cb..eac7b19 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockQueryForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockQueryForm.java @@ -8,16 +8,25 @@ import lombok.EqualsAndHashCode; /** * 容器信息 分页查询表单 * - * @Author 霍锦 - * @Date 2024-11-26 11:37:48 - * @Copyright 友仓 + * @author 霍锦 + * @since 2024-11-26 11:37:48 + * copyright 友仓 */ @Data @EqualsAndHashCode(callSuper = false) public class StockQueryForm extends PageParam { - @Schema(description = "容器编码") - private String stockCode; + @Schema(description = "容器id") + private Long stockId; + + @Schema(description = "库位") + private Long locationId; + + @Schema(description = "状态") + private String status; + + @Schema(description = "是否启用") + private String disabledFlag; } diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockUpdateForm.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockUpdateForm.java index a8c5300..437002b 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockUpdateForm.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/form/StockUpdateForm.java @@ -16,27 +16,10 @@ import net.lab1024.sa.base.common.json.deserializer.DictValueVoDeserializer; */ @Data -public class StockUpdateForm { +public class StockUpdateForm extends StockAddForm{ @Schema(description = "容器id", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "容器id 不能为空") private Long stockId; - @Schema(description = "容器编码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotBlank(message = "容器编码 不能为空") - private String stockCode; - - @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED) - @NotBlank(message = "状态 不能为空") - private String status; - - @Schema(description = "启用状态", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "启用状态 不能为空") - private Boolean disabledFlag; - - @Schema(description = "容器类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotBlank(message = "容器类型 不能为空") - @JsonDeserialize(using = DictValueVoDeserializer.class) - private String stockType; - } \ No newline at end of file diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/vo/StockVO.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/vo/StockVO.java index b7c0356..3a01eff 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/vo/StockVO.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/domain/vo/StockVO.java @@ -1,6 +1,5 @@ package net.lab1024.sa.admin.module.business.base.stock.domain.vo; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.v3.oas.annotations.media.Schema; import java.time.LocalDateTime; import lombok.Data; @@ -23,9 +22,12 @@ public class StockVO { @Schema(description = "容器编码") private String stockCode; - @Schema(description = "库位ID") + @Schema(description = "库位id") private Long locationId; + @Schema(description = "库位编码") + private String locationCode; + @Schema(description = "状态") private String status; diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/service/StockQueryService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/service/StockQueryService.java index c66e916..2c234f3 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/service/StockQueryService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/service/StockQueryService.java @@ -3,7 +3,11 @@ package net.lab1024.sa.admin.module.business.base.stock.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.annotation.Resource; +import net.lab1024.sa.admin.module.business.base.area.domain.entity.AreaEntity; +import net.lab1024.sa.admin.module.business.base.location.domain.entity.LocationEntity; +import net.lab1024.sa.admin.module.business.base.location.domain.vo.LocationVO; import net.lab1024.sa.admin.module.business.base.location.manager.LocationManager; +import net.lab1024.sa.admin.module.business.base.location.service.LocationQueryService; import net.lab1024.sa.admin.module.business.base.stock.dao.StockDao; import net.lab1024.sa.admin.module.business.base.stock.domain.entity.StockEntity; import net.lab1024.sa.admin.module.business.base.stock.domain.form.StockQueryForm; @@ -35,6 +39,9 @@ public class StockQueryService { @Resource private DictCacheService dictCacheService; + @Resource + private LocationQueryService locationQueryService; + /** * 分页查询 * @@ -44,6 +51,16 @@ public class StockQueryService { public PageResult queryPage(StockQueryForm queryForm) { Page page = SmartPageUtil.convert2PageQuery(queryForm); List list = stockDao.queryPage(page, queryForm); + + // 查询库位编码 + List locationIdList = list.stream().map(StockVO::getLocationId).distinct().collect(Collectors.toList()); + Map locationMap = locationQueryService.queryLocationList(locationIdList); + list.forEach(StockVO -> { + LocationEntity location = locationMap.get(StockVO.getLocationId()); + if (location != null) { + StockVO.setLocationCode(location.getLocationCode()); + } + }); return SmartPageUtil.convert2PageResult(page, list); } @@ -106,6 +123,18 @@ public class StockQueryService { } + /** + * 根据库位id查询容器信息 + * + * @param locationId 库位 + * @return StockEntity + */ + public StockEntity queryStockByLocationId(Long locationId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StockEntity::getLocationId, locationId); + return stockDao.selectOne(queryWrapper); + } + /** * 容器导出 * diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/service/StockService.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/service/StockService.java index fc3f1bc..2ea15be 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/service/StockService.java +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/base/stock/service/StockService.java @@ -11,6 +11,10 @@ import cn.idev.excel.FastExcel; import net.lab1024.sa.admin.constant.UsageStatusEnum; import net.lab1024.sa.admin.module.business.base.item.domain.entity.ItemEntity; import net.lab1024.sa.admin.module.business.base.item.domain.form.ItemsImportForm; +import net.lab1024.sa.admin.module.business.base.location.dao.LocationDao; +import net.lab1024.sa.admin.module.business.base.location.domain.entity.LocationEntity; +import net.lab1024.sa.admin.module.business.base.location.service.LocationQueryService; +import net.lab1024.sa.admin.module.business.base.location.service.LocationService; import net.lab1024.sa.admin.module.business.base.stock.dao.StockDao; import net.lab1024.sa.admin.module.business.base.stock.domain.entity.StockEntity; import net.lab1024.sa.admin.module.business.base.stock.domain.form.StockAddForm; @@ -20,6 +24,7 @@ import net.lab1024.sa.admin.module.business.base.stock.manager.StockManager; import net.lab1024.sa.admin.util.JoinerResult; import net.lab1024.sa.admin.util.ResponseDTOUtils; import net.lab1024.sa.admin.util.ValidateDictKey; +import net.lab1024.sa.base.common.code.SystemErrorCode; import net.lab1024.sa.base.common.code.UserErrorCode; import net.lab1024.sa.base.common.exception.BusinessException; import net.lab1024.sa.base.common.util.SmartBeanUtil; @@ -47,6 +52,9 @@ public class StockService { @Resource private StockDao stockDao; + @Resource + private LocationDao locationDao; + @Resource private StockManager stockManager; @@ -56,6 +64,9 @@ public class StockService { @Resource private StockQueryService stockQueryService; + @Resource + private LocationService locationService; + /** * 添加 @@ -89,6 +100,23 @@ public class StockService { if (existingStock != null && !existingStock.getStockId().equals(updateForm.getStockId())) { return ResponseDTO.error(UserErrorCode.ALREADY_EXIST, UserErrorCode.ALREADY_EXIST.getMsg()); } + //当前更新的容器的库位 + if (existingStock != null && existingStock.getLocationId() != null) { + //更新库位状态 + locationService.updateLocationStatus(existingStock.getLocationId(), UsageStatusEnum.FREE.getValue()); + } + + if (updateForm.getLocationId() != null) { + LocationEntity location = locationDao.selectById(updateForm.getLocationId()); + StockEntity curStock = stockQueryService.queryStockByLocationId(updateForm.getLocationId()); + if (curStock != null && existingStock != null) { + if (!curStock.getStockId().equals(existingStock.getStockId())) { + return ResponseDTO.error(SystemErrorCode.SYSTEM_ERROR, location.getLocationCode() + "库位绑定的当前容器为" + curStock.getStockCode()); + } + } + //更新库位状态 + locationService.updateLocationStatus(updateForm.getLocationId(), UsageStatusEnum.USED.getValue()); + } StockEntity stockEntity = SmartBeanUtil.copy(updateForm, StockEntity.class); stockDao.updateById(stockEntity); diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/base/stock/StockMapper.xml b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/base/stock/StockMapper.xml index 9f5385a..e3b9cda 100644 --- a/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/base/stock/StockMapper.xml +++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/resources/mapper/business/base/stock/StockMapper.xml @@ -23,9 +23,21 @@ FROM t_stock - - - AND INSTR(t_stock.stock_code,#{queryForm.stockCode}) + + + AND t_stock.stock_id=#{queryForm.stockId} + + + + AND t_stock.location_id=#{queryForm.locationId} + + + + AND t_stock.status=#{queryForm.status} + + + + AND t_stock.disabled_flag=#{queryForm.disabledFlag} ORDER BY t_stock.stock_code