| | |
| | | package com.consum.base.service.impl; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | |
| | | import com.consum.base.core.WhBusinessEnum; |
| | | import com.consum.base.core.service.LWhWarningCoreServiceImpl; |
| | | import com.consum.base.core.type.TransferStatesType; |
| | | import com.consum.base.core.utils.IdUtil; |
| | | import com.consum.base.core.utils.LockManage; |
| | | import com.consum.base.service.BaseGoodsTemplateService; |
| | |
| | | long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis()); |
| | | // 单据类型。0仓库调拨;1部门分发;2部门物品回退 |
| | | Integer businessType = lWhFormTransfer.getBusinessType(); |
| | | businessType = businessType == null ? 0 : businessType; |
| | | WhBusinessEnum businessEnum = WhBusinessEnum.DIAOBO; |
| | | if (businessType == 0) { |
| | | businessEnum = WhBusinessEnum.DIAOBO; |
| | | } else if (businessType == 1) { |
| | | WhBusinessEnum businessEnum; |
| | | if (businessType == 1) { |
| | | businessEnum = WhBusinessEnum.BUMENFENFA; |
| | | } else if (businessType == 2) { |
| | | businessEnum = WhBusinessEnum.BUMENTUIHUI; |
| | | } else { |
| | | businessEnum = WhBusinessEnum.DIAOBO; |
| | | } |
| | | |
| | | // 出库单ID |
| | |
| | | List<Long> outGoodsId = null; |
| | | synchronized (warehouseModelLockObj) { |
| | | // 获得锁后查询该型号的期初数量 |
| | | int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, outWarehouseId, |
| | | List<Long> warehouseIds = new ArrayList<>(Arrays.asList(outWarehouseId)); |
| | | int goodsModelNum = lWhGoodsService.queryGoodsModelNum(outWarehouseType, warehouseIds, |
| | | baseGoodsModelsId, queryModelStatus, buyType); |
| | | if (goodsModelNum < counts) { |
| | | log.error("出库失败!型号{} 的数量不足,需要调拨{}个,仓库中现存{}个", baseGoodsModelsId, counts, goodsModelNum); |
| | |
| | | lWhFormTransfer = new LWhFormTransfer(whFormTransferId); |
| | | // 调拨单不再关联出入库单 |
| | | // lWhFormTransfer.setOutWarehouseFormId(outWarehouseFormId); |
| | | lWhFormTransfer.setStates(1); |
| | | lWhFormTransfer.setStates(TransferStatesType.RECEIVE_ING.getValue()); |
| | | lWhFormTransfer.setOutOperatorId(userId); |
| | | lWhFormTransfer.setOutOperatorName(nickName); |
| | | lWhFormTransfer.setOutputTime(dealTime); |
| | |
| | | throw new RuntimeException("入库单失败,未查询到物品!"); |
| | | } |
| | | // 获得锁后查询该型号的期初数量 |
| | | List<Long> warehouseIds = new ArrayList<>(Arrays.asList(inWarehouseId)); |
| | | int goodsModelNum = |
| | | lWhGoodsService.queryGoodsModelNum(inWarehouseType, inWarehouseId, baseGoodsModelsId, 1, null); |
| | | lWhGoodsService.queryGoodsModelNum(inWarehouseType, warehouseIds, baseGoodsModelsId, 1, null); |
| | | |
| | | // 库存物品详情(L_WH_GOODS)中 状态设置为1 |
| | | lWhGoodsService.modGoodsTransfering(outGoodsIds, inWarehouseType, inWarehouseId, inWarehouseName, |
| | | goodsStatus); |
| | | |
| | | // 通过物品id查询所有商品的总金额 |
| | | // long amount = lWhGoodsService.queryGoodsPriceById(outGoodsIds); |
| | | // LWhProcureModel lWhFormScrappedGoods = new LWhProcureModel(formScrappedGood.getId()); |
| | | // lWhFormScrappedGoods.setTotalAmount(amount); |
| | | // lWhFormTransferService.update(lWhFormScrappedGoods); |
| | | |
| | | whGoodsRecord.setInitialCount(goodsModelNum); |
| | | whGoodsRecord.setEndCount(goodsModelNum + whGoodsRecord.getThisCount()); |
| | |
| | | lWhFormTransfer = new LWhFormTransfer(whFormTransferId); |
| | | lWhFormTransfer.setInWarehouseFlowId(inWarehouseFlowId); |
| | | lWhFormTransfer.setInWarehouseFormId(null); |
| | | lWhFormTransfer.setStates(2); |
| | | lWhFormTransfer.setStates(TransferStatesType.SUCCESS.getValue()); |
| | | if (StringUtils.isEmpty(inOperatorName)) { |
| | | lWhFormTransfer.setInOperatorId(userId); |
| | | lWhFormTransfer.setInOperatorName(nickName); |