consum-base/src/main/java/com/consum/base/service/LWhFormOutputCoreService.java
@@ -239,6 +239,7 @@ //通过LockManage获得锁 Object warehouseModelLockObj = LockManage.acquireLock(outWarehouseType, outWarehouseId, baseGoodsModelsId); List<Long> outGoodsId = null; synchronized (warehouseModelLockObj) { // 获得锁后查询该型号的期初数量 int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType); @@ -252,13 +253,17 @@ whGoodsRecord.setEndCount(goodsModelNum - counts); //出库时候,按 先入库的先出库,同时入库的,按价格高的先出库 List<Long> outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType, outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId, queryModelStatus, buyType, counts); lWhGoodsService.modGoodsTransfering(outGoodsId, inWarehouseType, inWarehouseId, inWarehouseName, modGoodsTransferingStatus); // 批量插入 进出库流水明细[L_WH_GOODS_RECORD_DETAILS] lWhGoodsRecordDetailsService.sameGoodsInsertMore(outGoodsId, whGoodsRecordId, (short) 0); lWhGoodsRecordService.insert(whGoodsRecord); } long totalAmount = lWhGoodsService.queryGoodsPriceById(outGoodsId); LWhProcureModel lWhProcureModel = new LWhProcureModel(itemModelInfo.getId()); lWhProcureModel.setTotalAmount(totalAmount); lWhProcureModelService.update(lWhProcureModel); }); LWarehouseFlow warehouseFlow = new LWarehouseFlow(); warehouseFlow.setId(lWarehouseFlowId); consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
@@ -3,13 +3,15 @@ import com.consum.model.po.LWhGoods; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; /** * @ClassName LWhGoodsService @@ -118,6 +120,23 @@ return whGoodsIds; } private static String QUERY_GOODS_PRICE_BY_ID = "SELECT sum(PRICE)totalPrice from L_WH_GOODS goods where 1=1"; public long queryGoodsPriceById(List<Long> goodsIds) { StringBuilder sql = new StringBuilder(QUERY_GOODS_PRICE_BY_ID); Map<String, Object> paramts = new HashMap<>(); if (!CollectionUtils.isEmpty(goodsIds)) { sql.append(" and id in(:goodsIds)"); paramts.put("goodsIds", goodsIds); } List<Map<String, Object>> map = this.select(sql.toString(), paramts); if (CollectionUtils.isEmpty(map)) { return 0; } BigDecimal totalPrice = (BigDecimal) map.get(0).get("totalPrice"); return totalPrice.longValue(); } /** * 查询报废物品 默认优先报废最高价的物品