From a255c59dfac7892e34c5b6cc793eeb94a7b852db Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 17 Apr 2025 19:30:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=99=BA=E8=83=BD=E6=9F=9C=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 1 + .../api/dto/spu/DeductionSpuRepertoryDto.java | 12 +++------- .../entity/spu/HardSpuRepertoryEntity.java | 6 +++++ .../controller/HardDoorFlowController.java | 12 +++++----- .../controller/spu/HardSpuController.java | 8 +++---- .../hard/service/HardDoorFlowService.java | 4 +++- .../service/impl/HardDoorFlowServiceImpl.java | 24 ++++++++++++++++--- .../impl/spu/HardSpuRepertoryServiceImpl.java | 18 ++++++++++---- 8 files changed, 57 insertions(+), 28 deletions(-) diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index ecd71f99c..79a2c69fe 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -481,6 +481,7 @@ CREATE TABLE hard_spu_repertory spu_id bigint NOT NULL COMMENT '商品id', before_count int NOT NULL COMMENT '更新前的库存数量', count int DEFAULT 0 COMMENT '更新库存数量', + biz_id bigint DEFAULT NULL COMMENT '上架业务关联id', biz_type tinytext NOT NULL COMMENT '上架类型', create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', create_time datetime DEFAULT NULL COMMENT '创建时间', diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/DeductionSpuRepertoryDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/DeductionSpuRepertoryDto.java index 795911292..2512548ac 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/DeductionSpuRepertoryDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/DeductionSpuRepertoryDto.java @@ -12,16 +12,10 @@ import java.util.List; public class DeductionSpuRepertoryDto { /** - * 智能柜编号 + * 流程id */ - @NotNull(message = "智能柜编号不能为空") - private Long hardDoorId; - - /** - * 货柜编号 - */ - @NotNull(message = "货柜编号不能为空") - private String cabinetNo; + @NotNull(message = "流程id不能为空") + private Long flowId; /** * 上架数量 diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java index 10921b853..ce612b977 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java @@ -57,6 +57,12 @@ public class HardSpuRepertoryEntity extends Model { @Schema(description = "更新库存数量") private Integer count; + /** + * 上架业务关联id + */ + @Schema(description = "上架业务关联id") + private Long bizId; + /** * 上架类型 */ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java index c857320c2..56e0c2280 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java @@ -15,6 +15,7 @@ import com.bsd.pjcloud.hard.api.constant.HardDoorOpenTypeEnum; import com.bsd.pjcloud.hard.api.dto.HardDoorFlowDto; import com.bsd.pjcloud.hard.api.dto.HardDoorFlowOpenDto; import com.bsd.pjcloud.hard.api.entity.HardDoorFlowEntity; +import com.bsd.pjcloud.hard.api.vo.HardDoorFlowVo; import com.bsd.pjcloud.hard.service.HardDoorFlowService; import com.bsd.pjcloud.thirdparty.dto.door.DoorOpenCallbackDto; import com.bsd.pjcloud.thirdparty.dto.door.DoorStatusCallbackDto; @@ -89,13 +90,12 @@ public class HardDoorFlowController { @Operation(summary = "上架开门", description = "上架开门") @PostMapping("/open-repertory") - public R openRepertory(@Validated @RequestBody HardDoorFlowOpenDto dto) { + public R openRepertory(@Validated @RequestBody HardDoorFlowOpenDto dto) { PjcloudUser user = SecurityUtils.getUser(); dto.setFlowType(HardDoorFlowBizEnum.REPERTORY_OPEN); dto.setOpenType(HardDoorOpenTypeEnum.NO_RECORD_VIDEO); dto.setUserId(user.getId()); - hardDoorFlowService.openDoorRepertory(dto); - return R.ok(); + return R.ok(hardDoorFlowService.openDoorRepertory(dto)); } /* ************************************* end app end ************************************* */ @@ -125,7 +125,7 @@ public class HardDoorFlowController { @Operation(summary = "复杂查询", description = "复杂查询") @GetMapping("/page-join") @PreAuthorize("@pms.hasPermission('dzc_hardDoorFlow_view')") - public R pageJoin(@ParameterObject Page page, @ParameterObject HardDoorFlowDto dto) { + public R> pageJoin(@ParameterObject Page page, @ParameterObject HardDoorFlowDto dto) { DataScope dataScope = null; return R.ok(hardDoorFlowService.scopePageJoin(page, dto, dataScope)); } @@ -133,8 +133,8 @@ public class HardDoorFlowController { @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('dzc_hardDoorFlow_view')") - public R getById(@PathVariable("id") Long id) { - return R.ok(hardDoorFlowService.getById(id)); + public R join(@PathVariable("id") Long id) { + return R.ok(hardDoorFlowService.join(id)); } @Operation(summary = "新增智能柜流程", description = "新增智能柜流程") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java index 694973f98..e05999487 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java @@ -43,27 +43,27 @@ public class HardSpuController { /* ************************************* start APP start ************************************* */ - @Operation(summary = "上架", description = "上架") + @Operation(summary = "app上架", description = "上架") @PostMapping("/app/putaway") public R appPutaway(@Valid @RequestBody HardPutawayDto dto) { hardSpuService.putaway(dto); return R.ok(); } - @Operation(summary = "下架", description = "下架") + @Operation(summary = "app下架", description = "下架") @PostMapping("/app/un-putaway") public R appUnPutaway(@Valid @RequestBody HardPutawayDto dto) { hardSpuService.unPutaway(dto); return R.ok(); } - @Operation(summary = "查询货柜补货商品列表", description = "查询货柜补货商品列表") + @Operation(summary = "app查询货柜补货商品列表", description = "查询货柜补货商品列表") @GetMapping("/app/cabinet-putaway-list") public R appCabinetPutawayList(@RequestParam Long hardDoorId, @RequestParam String cabinetNo) { return R.ok(hardSpuService.appCabinetPutawayList(hardDoorId, cabinetNo)); } - @Operation(summary = "查询货柜商品列表", description = "查询货柜商品列表") + @Operation(summary = "app查询货柜商品列表", description = "查询货柜商品列表") @GetMapping("/app/cabinet-list") public R appCabinetList(@RequestParam Long hardId, @RequestParam String cabinetNo) { return R.ok(hardSpuService.getByCabinetNo(hardId, cabinetNo)); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorFlowService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorFlowService.java index 5d1a0bae3..bb3ab80f6 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorFlowService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorFlowService.java @@ -20,6 +20,8 @@ public interface HardDoorFlowService extends IService { */ Page scopePageJoin(Page page, HardDoorFlowDto dto, DataScope dataScope); + HardDoorFlowVo join(Long id); + /** * 检修开门 */ @@ -38,7 +40,7 @@ public interface HardDoorFlowService extends IService { /** * 上架开门 */ - void openDoorRepertory(HardDoorFlowOpenDto dto); + Long openDoorRepertory(HardDoorFlowOpenDto dto); /** * 处理开门回调 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java index 089c5994f..e464484bd 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java @@ -8,6 +8,7 @@ import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.dto.UserInfo; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; import com.bsd.pjcloud.admin.api.utils.DataUtil; import com.bsd.pjcloud.admin.api.vo.UserVO; @@ -85,6 +86,22 @@ public class HardDoorFlowServiceImpl extends ServiceImpl usrList = remoteUserService.getUserDeptByIds(List.of(result.getUserId())).getData(); + if (ObjectUtil.isNotEmpty(usrList)) { + DataUtil.convertUserDept(result, usrList.get(0)); + } + // 设备 + HardManagerEntity hardManager = hardManagerMapper.selectById(result.getHardDoorId()); + if (ObjectUtil.isNotEmpty(hardManager)) HardUtil.convertHard(result, hardManager); + return result; + } + /** * 根据旷世识别id查询 */ @@ -98,7 +115,7 @@ public class HardDoorFlowServiceImpl extends ServiceImpl implements HardSpuRepertoryService { private final HardSpuService hardSpuService; + private final HardDoorFlowService hardDoorFlowService; private final RemoteMchService remoteMchService; private final RemoteUserService remoteUserService; - private final HardManagerMapper hardManagerMapper; - @Override public Page scopePageJoin(Page page, HardSpuRepertoryDto dto, DataScope dataScope) { Page pageList = baseMapper.scopePageJoin(page, dto, dataScope); @@ -155,6 +153,15 @@ public class HardSpuRepertoryServiceImpl extends ServiceImpl().eq(HardSpuRepertoryEntity::getBizId, body.getFlowId())); + if (count > 0) { + throw new RuntimeException("改上架已结束"); + } List list = body.getList().stream().filter(v -> v.getPlusCount() > 0).toList(); if (ObjectUtil.isEmpty(list)) { throw new RuntimeException("上架商品不能为空"); @@ -176,6 +183,7 @@ public class HardSpuRepertoryServiceImpl extends ServiceImpl