From b97e374e66972a78ec69596c1ac3cf1d2f3f1860 Mon Sep 17 00:00:00 2001 From: yewj Date: Fri, 8 Nov 2024 09:30:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8F=96=E8=B4=A7=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOrderController.java | 14 ++--- .../api/entity/collect/IoCollectOrderBiz.java | 7 +++ .../api/service/inout/IoSplitCodeService.java | 62 ++++++++++++++++++- src/main/resources/schemas/schema_v2.4.sql | 54 +++++++++------- 4 files changed, 105 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index 620ca5a79..48d66a2be 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -34,6 +34,7 @@ import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.service.basic.BasicCollectUserService; import com.glxp.api.service.basic.SysWorkplaceDocumentService; import com.glxp.api.service.collect.*; +import com.glxp.api.service.inout.IoSplitCodeService; import com.glxp.api.util.IntUtil; import com.glxp.api.util.MsDateUtil; import org.springframework.beans.BeanUtils; @@ -407,23 +408,22 @@ public class IoCollectOrderController extends BaseController { return ResultVOUtils.success(); } + @Resource + IoSplitCodeService splitCodeService; /** - * 完成单据 + * 取货确认 * * @return */ @PostMapping("/udiwms/basic/collect/order/bizConfirm") @Transactional(rollbackFor = Exception.class) public BaseResponse bizConfirmOrder(@RequestBody CollectOrderRequest collectOrderRequest) { - - /** - * 扫码确认 + * 取货确认 */ - - - return ResultVOUtils.success(); + splitCodeService.confirmBizAutiTagCode(collectOrderRequest); + return ResultVOUtils.success("确认成功!"); } diff --git a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBiz.java b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBiz.java index 33485afe4..656a304cf 100644 --- a/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBiz.java +++ b/src/main/java/com/glxp/api/entity/collect/IoCollectOrderBiz.java @@ -274,5 +274,12 @@ public class IoCollectOrderBiz implements Serializable { private String remark10; + /** + * 取货确认状态 + */ + @TableField(value = "getConfirm") + private Boolean getConfirm; + + private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index df9b1ad76..435b95b14 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -374,14 +374,72 @@ public class IoSplitCodeService extends ServiceImpl 0) { + collectOrderBiz.setUnTagCount(unTagCount); + } + int quotient = collectOrderBiz.getUnTagCount() / IntUtil.value(udiRelevanceResponse.getBhxjsl()); + int remainder = collectOrderBiz.getUnTagCount() % IntUtil.value(udiRelevanceResponse.getBhxjsl()); + //2.如果整盒,从工位队列扣除 默认最后一个追溯码拆零 + if (quotient > 0) { + List ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo()); + if (ioSplitFifoCodeEntities.size() < quotient) { + throw new JsonException(500, "确认失败,工位库存数量不足!"); + } + for (int i = 0; i < quotient; i++) { + IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i); + collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl())); + collectOrderCodeAutoService.save(IoCollectOrderCodeAuto.builder() + .codeIdFk(splitFifoCodeEntity.getId()) + .udiCode(splitFifoCodeEntity.getCode()) + .orderIdFk(collectOrder.getBillNo()) + .batchNo(splitFifoCodeEntity.getBatchNo()) + .productDate(splitFifoCodeEntity.getProduceDate()) + .expireDate(splitFifoCodeEntity.getExpireDate()) + .serialNo(splitFifoCodeEntity.getSerialNo()) + .relId(collectOrderBiz.getRelId()) + .bizIdFk(collectOrderBiz.getId()) + .fifoSplit(splitFifoCodeEntity.getFifoSplit()) + .createTime(new Date()) + .updateTime(new Date()) + .build()); + splitFifoCodeService.removeById(splitFifoCodeEntity.getId()); + IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity); + if (splitFifoInv != null) { + splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount())); + int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount()); + splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0); + splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount())); + splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())); + splitFifoInvService.updateById(splitFifoInv); + } + } + } + //.如果拆零,拆零表扣除 + if (remainder > 0) { + splitRemove(collectOrderBiz, collectOrder, putWorkPlaceCode); + } } diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index cb172cda9..0b3dffc00 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4605,17 +4605,18 @@ CALL Pro_Temp_ColumnWork('sys_workplace', 'queueStatus', 1); -CREATE TABLE IF NOT EXISTS `sys_workplace_freight` ( - `id` int NOT NULL AUTO_INCREMENT, - `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '货架编码', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '货架名称', - `workPlaceIdFk` bigint NULL DEFAULT NULL COMMENT '工位ID', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - `createTime` datetime NULL DEFAULT NULL, - `updateTime` datetime NULL DEFAULT NULL, - `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, - `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE +CREATE TABLE IF NOT EXISTS `sys_workplace_freight` +( + `id` int NOT NULL AUTO_INCREMENT, + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '货架编码', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '货架名称', + `workPlaceIdFk` bigint NULL DEFAULT NULL COMMENT '工位ID', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `createTime` datetime NULL DEFAULT NULL, + `updateTime` datetime NULL DEFAULT NULL, + `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci @@ -4638,17 +4639,18 @@ CALL Pro_Temp_ColumnWork('io_collect_set', 'lastCodeSplit', ' tinyint NULL DEFAULT b''1''COMMENT ''是否最后追溯码拆零0:关闭 1:启用''', 1); -CREATE TABLE IF NOT EXISTS `sys_workplace_layer` ( - `id` int NOT NULL AUTO_INCREMENT, - `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '摆货层编码', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', - `createTime` datetime NULL DEFAULT NULL, - `updateTime` datetime NULL DEFAULT NULL, - `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, - `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, - `freightCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '取货架Code', - `queueNum` int NULL DEFAULT NULL COMMENT '出货槽数量', - PRIMARY KEY (`id`) USING BTREE +CREATE TABLE IF NOT EXISTS `sys_workplace_layer` +( + `id` int NOT NULL AUTO_INCREMENT, + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '摆货层编码', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', + `createTime` datetime NULL DEFAULT NULL, + `updateTime` datetime NULL DEFAULT NULL, + `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, + `freightCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '取货架Code', + `queueNum` int NULL DEFAULT NULL COMMENT '出货槽数量', + PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci @@ -4665,4 +4667,10 @@ CALL Pro_Temp_ColumnWork('sys_workplace_freight', 'layerNum', CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'freightCode', 'varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''货架code''', - 1) + 1); + + +CALL Pro_Temp_ColumnWork('io_collect_order_biz', 'getConfirm', + ' tinyint NULL DEFAULT b''1''COMMENT ''取货确认状态''', + 1); +