| | |
| | | } |
| | | palletMapper.insertBatch(pallets); |
| | | } |
| | | int startNo = bagCodeMapper.selectMaxBagNo() + 1; |
| | | // 袋序号原子分配:先取库内最大序号作基准,再由 Redis 原子自增,避免并发生成产生重复袋序号 |
| | | int startNo = codeRedisDao.allocateBagNoStart(totalCount, bagCodeMapper.selectMaxBagNo()); |
| | | List<MesProBagCodeDO> bagCodes = new ArrayList<>(totalCount); |
| | | for (int i = 0; i < totalCount; i++) { |
| | | int bagNo = startNo + i; |
| | |
| | | // 原始袋码不依赖计量单位类型与托盘:仅按数量生成,袋码带品种冗余,后续可正常录入批次/绑定托盘 |
| | | MesMdmItemDO item = mdmItemService.validateItemExists(generateReqVO.getItemId()); |
| | | String uuid = IdUtil.fastSimpleUUID(); |
| | | int startNo = bagCodeMapper.selectMaxBagNo() + 1; |
| | | // 袋序号原子分配:先取库内最大序号作基准,再由 Redis 原子自增,避免并发生成产生重复袋序号 |
| | | int startNo = codeRedisDao.allocateBagNoStart(generateReqVO.getCount(), bagCodeMapper.selectMaxBagNo()); |
| | | List<MesProBagCodeDO> bagCodes = new ArrayList<>(generateReqVO.getCount()); |
| | | for (int i = 0; i < generateReqVO.getCount(); i++) { |
| | | int bagNo = startNo + i; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<MesProBagCodeDO> getPrintableBagCodeListByBatchId(Long batchId) { |
| | | return bagCodeMapper.selectPrintableListByBatchId(batchId); |
| | | } |
| | | |
| | | @Override |
| | | public List<MesProBagCodeDO> getPrintableBagCodeListByUuid(String uuid) { |
| | | return bagCodeMapper.selectPrintableListByUuid(uuid); |
| | | } |
| | | |
| | | @Override |
| | | public void markOutbound(Long id, Long salesId) { |
| | | bagCodeMapper.markOutbound(id, salesId, LocalDateTime.now()); |
| | | } |