新增取货确认

dev_unify
yewj 8 months ago
parent 1a2a766a54
commit b97e374e66

@ -34,6 +34,7 @@ import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.basic.BasicCollectUserService; import com.glxp.api.service.basic.BasicCollectUserService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService; import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.collect.*; import com.glxp.api.service.collect.*;
import com.glxp.api.service.inout.IoSplitCodeService;
import com.glxp.api.util.IntUtil; import com.glxp.api.util.IntUtil;
import com.glxp.api.util.MsDateUtil; import com.glxp.api.util.MsDateUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -407,23 +408,22 @@ public class IoCollectOrderController extends BaseController {
return ResultVOUtils.success(); return ResultVOUtils.success();
} }
@Resource
IoSplitCodeService splitCodeService;
/** /**
* *
* *
* @return * @return
*/ */
@PostMapping("/udiwms/basic/collect/order/bizConfirm") @PostMapping("/udiwms/basic/collect/order/bizConfirm")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public BaseResponse bizConfirmOrder(@RequestBody CollectOrderRequest collectOrderRequest) { public BaseResponse bizConfirmOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
/** /**
* *
*/ */
splitCodeService.confirmBizAutiTagCode(collectOrderRequest);
return ResultVOUtils.success("确认成功!");
return ResultVOUtils.success();
} }

@ -274,5 +274,12 @@ public class IoCollectOrderBiz implements Serializable {
private String remark10; private String remark10;
/**
*
*/
@TableField(value = "getConfirm")
private Boolean getConfirm;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

@ -374,14 +374,72 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
ioCollectOrderBizBackups.add(ioCollectOrderBizBackup); ioCollectOrderBizBackups.add(ioCollectOrderBizBackup);
} }
ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups); ioCollectOrderBizBackupService.saveBatch(ioCollectOrderBizBackups);
} }
@Resource
IoCollectOrderService collectOrderService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void confirmBizAutiTagCode(CollectOrderRequest collectOrderRequest) { public void confirmBizAutiTagCode(CollectOrderRequest collectOrderRequest) {
IoCollectOrderBiz collectOrderBiz = collectOrderBizService.getById(collectOrderRequest.getId());
IoCollectOrder collectOrder = collectOrderService.getById(collectOrderRequest.getBillNo());
SysWorkplacePutRel sysWorkplacePutRel = workplacePutRelService.findPutWorkPlace(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
Long putWorkPlaceCode = null;
if (sysWorkplacePutRel != null)
putWorkPlaceCode = sysWorkplacePutRel.getWorkPlaceCode();
IoCollectOrderBiz collectOrderBiz = collectOrderBizService.getById(collectOrderRequest.getId());
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setId(collectOrderBiz.getRelId());
filterUdiRelRequest.setPackLevel("1");
//todo 后面可以 没有搜索到层级为1的
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectOneUdi(filterUdiRelRequest);
//去除掉已经手动扫码的数据,找出需要自动扫码的明细,执行上述的拆零或整取
int unTagCount = collectOrderBiz.getCount() - IntUtil.value(collectOrderBiz.getScanActCount());
if (unTagCount > 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<IoSplitFifoCodeEntity> 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);
}
} }

@ -4605,17 +4605,18 @@ CALL Pro_Temp_ColumnWork('sys_workplace', 'queueStatus',
1); 1);
CREATE TABLE IF NOT EXISTS `sys_workplace_freight` ( 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 '货架编码', `id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '货架名称', `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '货架编码',
`workPlaceIdFk` bigint NULL DEFAULT NULL COMMENT '工位ID', `name` 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 '备注', `workPlaceIdFk` bigint NULL DEFAULT NULL COMMENT '工位ID',
`createTime` datetime NULL DEFAULT NULL, `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`updateTime` datetime NULL DEFAULT NULL, `createTime` datetime NULL DEFAULT NULL,
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, `updateTime` datetime NULL DEFAULT NULL,
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, `createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB ) ENGINE = InnoDB
CHARACTER SET = utf8mb4 CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci 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:启用''', ' tinyint NULL DEFAULT b''1''COMMENT ''是否最后追溯码拆零0:关闭 1:启用''',
1); 1);
CREATE TABLE IF NOT EXISTS `sys_workplace_layer` ( 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 '摆货层编码', `id` int NOT NULL AUTO_INCREMENT,
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注', `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '摆货层编码',
`createTime` datetime NULL DEFAULT NULL, `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`updateTime` datetime NULL DEFAULT NULL, `createTime` datetime NULL DEFAULT NULL,
`createUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, `updateTime` datetime NULL DEFAULT NULL,
`updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, `createUser` 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', `updateUser` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`queueNum` int NULL DEFAULT NULL COMMENT '出货槽数量', `freightCode` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '取货架Code',
PRIMARY KEY (`id`) USING BTREE `queueNum` int NULL DEFAULT NULL COMMENT '出货槽数量',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB ) ENGINE = InnoDB
CHARACTER SET = utf8mb4 CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci 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', CALL Pro_Temp_ColumnWork('sys_workplace_queue', 'freightCode',
'varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''货架code''', '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);

Loading…
Cancel
Save