diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java index dab35a38d..f9c08694d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java @@ -24,14 +24,12 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.basicdata.feign.IBasicdataGoodsAreaClient; import com.logpm.distribution.bean.Resp; +import com.logpm.distribution.config.RedissonConfig; import com.logpm.distribution.dto.app.StockupDTO; import com.logpm.distribution.entity.*; -import com.logpm.distribution.mapper.DistributionStockListMapper; import com.logpm.distribution.service.*; import com.logpm.distribution.vo.*; -import com.logpm.warehouse.entity.WarehouseGoodsAllocationEntity; import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity; -import com.logpm.warehouse.entity.WarehouseWarehousingEntryEntity; import com.logpm.warehouse.feign.IWarehouseGoodsAllocationClient; import com.logpm.warehouse.feign.IWarehouseUpdownGoodsClient; import com.logpm.warehouse.feign.IWarehouseUpdownGoodsLogClient; @@ -40,6 +38,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j2; +import org.redisson.api.RLock; import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.RabbitConstant; import org.springblade.common.constant.stockup.StockupStatusConstant; @@ -51,16 +50,13 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.StringUtil; import org.springblade.system.cache.DictBizCache; import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.TransactionDefinition; -import org.springframework.transaction.TransactionException; -import org.springframework.transaction.TransactionStatus; import org.springframework.web.bind.annotation.*; import java.lang.reflect.Field; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -150,7 +146,6 @@ public class DistributionStockupAppController extends BladeController { log.info("#################pageList: 查询备货ID不能为空"); return R.fail(401, "查询备货ID不能为空"); } - Map map = distributionStockupService.selectHomeStockupPage(stockupDTO); return R.data(map); } @@ -240,8 +235,11 @@ public class DistributionStockupAppController extends BladeController { planNum = planNum + vo.getPlanNum(); scanNum = scanNum + vo.getScanNum(); // Boolean aBoolean = distributionStockupService.getClientStockupTray(reservationId, vo.getAllocationId()); -// Boolean aBoolean = distributionReservationPackageService.selectClientStockupState(reservationId, vo.getStockArticleId()); +// Boolean aBoolean = distributionReservationPackageService.selectClientStockupState(reservationId, vo.getStockArticleId()); // vo.setTrayLean(aBoolean); + if (ObjectUtils.isNotNull(vo.getTrayId()) && !vo.getPallet().contains(",") && !vo.isCompleteStact() && ObjectUtils.isNotNull( vo.getAllocationId()) ) { + vo.setTrayLean(true); + } } map.put("planNum", planNum); map.put("scanNum", scanNum); @@ -283,7 +281,7 @@ public class DistributionStockupAppController extends BladeController { Integer orderStatus = stockupDTO.getOrderStatus();//1 客户订单 2库存品 Integer status = stockupDTO.getStatus();//0未完成 1已完成 Long allocationId = stockupDTO.getAllocationId(); //货位 - Long trayId = Long.valueOf(stockupDTO.getTrayId()); //托盘Id +// Long trayId = Long.valueOf(stockupDTO.getTrayId()); //托盘Id if (ObjectUtils.isNull(stockupId)) { log.warn("##############orderInfo: 备货任务ID为空 allocation={}", stockupId); @@ -451,6 +449,14 @@ public class DistributionStockupAppController extends BladeController { //手动 // TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); // try{ + //设置lockey + String lockKey = stockupDTO.getPacketBarCode()+stockupDTO.getStockupId(); + RLock lock = new RedissonConfig().redisson().getLock(lockKey); + if(lock.isLocked()){ + String audioValue2 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, "2"); + return Resp.scanFail("重复扫描!", audioValue2); + } + lock.lock(5, TimeUnit.SECONDS); if (scanType == 1) { //包件扫描 String orderCode = stockupDTO.getOrderCode();//订单自编号 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RedissonConfig.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RedissonConfig.java new file mode 100644 index 000000000..57f037c36 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RedissonConfig.java @@ -0,0 +1,19 @@ +package com.logpm.distribution.config; + +import org.redisson.Redisson; +import org.redisson.config.Config; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RedissonConfig { + @Bean + public Redisson redisson() { + // 单机模式 + Config config = new Config(); + config.useSingleServer().setAddress("redis://192.168.10.100:6379").setDatabase(0); + config.useSingleServer().setPassword("A0c415"); + return (Redisson) Redisson.create(config); + } + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index 211bd4408..050a05300 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -160,13 +160,13 @@ select GROUP_CONCAT( DISTINCT position_code) from logpm_warehouse_updown_goods where association_id = ldpl.id - ) positionCode,lwug.allocation_id allocationId + ) positionCode,lds.allocation_id allocationId from logpm_distribution_parcel_list ldpl LEFT JOIN logpm_distribution_stock lds on lds.parcel_list_id = ldpl.id - LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldpl.id + - and lwug.allocation_id = #{param.allocationId} + and lds.allocation_id = #{param.allocationId} and ldpl.stock_article_id = #{param.stockArticleId} and ldpl.stock_article_id in @@ -182,13 +182,13 @@ select GROUP_CONCAT( DISTINCT position_code) from logpm_warehouse_updown_goods where association_id = ldpl.id - ) positionCode,lwug.allocation_id allocationId + ) positionCode,lds.allocation_id allocationId from logpm_distribution_parcel_list ldpl LEFT JOIN logpm_distribution_stock lds on lds.parcel_list_id = ldpl.id - LEFT JOIN logpm_warehouse_updown_goods_log lwug on lwug.association_id = ldpl.id and lwug.create_time >= DATE_SUB(NOW(), INTERVAL 10 MINUTE) + - and lwug.allocation_id = #{param.allocationId} + and lds.allocation_id = #{param.allocationId} and ldpl.stock_article_id = #{param.stockArticleId} and lds.stockup_id = #{param.stockupId} @@ -303,11 +303,12 @@ lds.id =#{id} --> select DISTINCT ldsi.stockup_id , ldpl.id id,ldpl.order_package_code orderPackageCode,lds.type stockupStatus,ldpl.firsts,ldpl.second,ldpl.third_product thirdProduct, - ldpl.material_name materialName,lds.create_time stockupDate,lds.stockup_area stockupArea,ldpl.goods_allocation goodsAllocation,ldpl.pallet + ldpl.material_name materialName,lds.create_time stockupDate,lds.stockup_area stockupArea,ldpl.goods_allocation goodsAllocation,lwtg.tray_code pallet from logpm_distribution_stockup_info ldsi LEFT JOIN logpm_distribution_reservation_package ldrp on ldrp.reservation_id = ldsi.reservation_id LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.id = ldrp.parce_list_id LEFT JOIN logpm_distribution_stock lds on ldpl.id = lds.parcel_list_id and lds.stockup_id = ldsi.stockup_id + LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id and lwtg.association_type = '3' ldsi.stockup_id =#{id} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml index c4a6a912c..7d67fc422 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationPackageMapper.xml @@ -326,7 +326,7 @@ WHERE where tray_id = #{trayId}