diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java index cf06a57a..1f9f24b4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java @@ -97,6 +97,23 @@ public interface BalanceMapper extends BaseMapperX { return selectOne(queryWrapper); } + /** + * 更新库存余额数量,出库qty是负数 + */ + default List getBalanceListByLocationTypes(String packingNumber, String itemCode, String batch, List inventoryStatusList, List locationTypeList) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("packing_number", packingNumber); + queryWrapper.eq("item_code", itemCode); + queryWrapper.eq("batch", batch); + queryWrapper.in("inventory_status", inventoryStatusList); + StringBuilder type = new StringBuilder(); + for(String str : locationTypeList) { + type.append("'").append(str).append("',"); + } + queryWrapper.inSql("location_code", "SELECT `code` FROM basic_location WHERE `type` IN ("+ type.substring(0, type.length() - 1)+") AND available='TRUE' AND deleted=0"); + return selectList(queryWrapper); + } + /** * 更查找库存余额 * @param packingNumber 包装号 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java index 8439e05f..6d96e598 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java @@ -290,7 +290,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { BeanUtils.copyProperties(transactionCreateReqVOIn, transactionCreateReqVO); transactionCreateReqVO.setInventoryStatus("SCRAP"); transactionCreateReqVO.setQty(inspectJobDetailUpdateReqVO.getCrackQty()); - transactionCreateReqVO.setLocationCode("HOLD"); + transactionCreateReqVO.setLocationCode("SCRAP"); transactionCreateReqVOList.add(transactionCreateReqVO); } if (inspectJobDetailUpdateReqVO.getFailedQty() != null && inspectJobDetailUpdateReqVO.getFailedQty().compareTo(BigDecimal.ZERO) > 0) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java index 120ec098..bca58704 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java @@ -248,11 +248,11 @@ public class ProductdismantleRequestMainServiceImpl implements ProductdismantleR // 提示:计量单位【uom】错误,应该是【item.uom】 throw exception(ITEMBASIC_UOM_EXCEPTION,detailDo.getUom(),itembasicDO.getUom()); } - // 校验--工位基础信息 - if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){ - WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode()); - detailDo.setFromLocationCode(workstationDO.getFgLocationCode()); - } + // 校验--工位基础信息 以库存余额中的库位为准 此处无需赋值 +// if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){ +// WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode()); +// detailDo.setFromLocationCode(workstationDO.getFgLocationCode()); +// } // 校验--库存余额 TB——>TB1 validateBalance(detailDo,mainDO); // 校验--物品类型 DBT——>DBT2——>IT diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordDetailServiceImpl.java index 556c332b..feb5cd3e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordDetailServiceImpl.java @@ -3,12 +3,18 @@ package com.win.module.wms.service.purchasereceiptRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordDetailPageReqVO; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordDetailMapper; +import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -22,6 +28,10 @@ public class PurchasereceiptRecordDetailServiceImpl implements PurchasereceiptRe @Resource private PurchasereceiptRecordDetailMapper purchasereceiptRecordDetailMapper; + @Resource + private BalanceMapper balanceMapper; + @Resource + private JobUtils jobUtils; @Override public PageResult getPurchasereceiptRecordDetailSenior(CustomConditions conditions) { @@ -35,7 +45,23 @@ public class PurchasereceiptRecordDetailServiceImpl implements PurchasereceiptRe @Override public List selectList(Long masterId) { - return purchasereceiptRecordDetailMapper.selectList(masterId); + //查询from_locating_code + List purchasereceiptRecordDetailDOList = purchasereceiptRecordDetailMapper.selectList(masterId); + List resultList = new ArrayList<>(); + for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest"); + List inventoryStatusList = Arrays.asList(businesstypeDO.getOutInventoryStatuses().split(",")); + List locationTypeList = Arrays.asList(businesstypeDO.getOutLocationTypes().split(",")); + List balanceDOList = balanceMapper.getBalanceListByLocationTypes(purchasereceiptRecordDetailDO.getToPackingNumber(), purchasereceiptRecordDetailDO.getItemCode(), purchasereceiptRecordDetailDO.getToBatch(), inventoryStatusList, locationTypeList); + if(balanceDOList.isEmpty()) { + continue; + } + BalanceDO balanceDO = balanceDOList.get(0); + purchasereceiptRecordDetailDO.setFromLocationCode(balanceDO.getLocationCode()); + purchasereceiptRecordDetailDO.setInventoryStatus(balanceDO.getInventoryStatus()); + resultList.add(purchasereceiptRecordDetailDO); + } + return resultList; } }