|
|
@ -3,16 +3,34 @@ package com.win.module.wms.service.balance; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.win.framework.common.pojo.CustomConditions; |
|
|
|
import com.win.framework.common.pojo.PageResult; |
|
|
|
import com.win.module.system.api.user.AdminUserApi; |
|
|
|
import com.win.module.wms.controller.balance.vo.BalanceExportReqVO; |
|
|
|
import com.win.module.wms.controller.balance.vo.BalancePageReqVO; |
|
|
|
import com.win.module.wms.controller.balance.vo.BalanceUpdateReqVO; |
|
|
|
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; |
|
|
|
import com.win.module.wms.convert.balance.BalanceConvert; |
|
|
|
import com.win.module.wms.convert.productdismantleRecord.ProductdismantleRecordMainConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.balance.BalanceDO; |
|
|
|
import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; |
|
|
|
import com.win.module.wms.dal.mysql.balance.BalanceMapper; |
|
|
|
import com.win.module.wms.service.transaction.TransactionService; |
|
|
|
import com.win.module.wms.util.JobUtils; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; |
|
|
|
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; |
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTDISMANTLE_RECORD_MAIN_NOT_EXISTS; |
|
|
|
import static com.win.module.wms.enums.ErrorCodeConstants.UNPLANNEDISSUE_REQUEST_DETAIL_BALANCE_NOT_EXISTS; |
|
|
|
|
|
|
|
/** |
|
|
|
* 库存余额 Service 实现类 |
|
|
|
* |
|
|
@ -22,6 +40,12 @@ import java.util.List; |
|
|
|
@Validated |
|
|
|
public class BalanceServiceImpl implements BalanceService { |
|
|
|
|
|
|
|
@Resource |
|
|
|
private TransactionService transactionService; |
|
|
|
@Resource |
|
|
|
private AdminUserApi userApi; |
|
|
|
@Resource |
|
|
|
private JobUtils jobUtils; |
|
|
|
@Resource |
|
|
|
private BalanceMapper balanceMapper; |
|
|
|
|
|
|
@ -144,4 +168,69 @@ public class BalanceServiceImpl implements BalanceService { |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private BalanceDO validateBalanceExists(Long id) { |
|
|
|
BalanceDO balanceDO = balanceMapper.selectById(id); |
|
|
|
if (balanceDO == null) { |
|
|
|
throw exception(UNPLANNEDISSUE_REQUEST_DETAIL_BALANCE_NOT_EXISTS); |
|
|
|
} |
|
|
|
return balanceDO; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void updateBalance(BalanceUpdateReqVO updateReqVO) { |
|
|
|
// 校验存在
|
|
|
|
// 修改前
|
|
|
|
BalanceDO balanceDO = validateBalanceExists(updateReqVO.getId()); |
|
|
|
// 修改后
|
|
|
|
BalanceDO updateBalanceDO = BalanceConvert.INSTANCE.convert(updateReqVO); |
|
|
|
//库存事务
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); |
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); |
|
|
|
// 判断修改的数据项
|
|
|
|
// 入动作
|
|
|
|
BeanUtils.copyProperties(updateBalanceDO, transactionCreateReqVOIn); |
|
|
|
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType("RCT-CHG"); // 更改入库
|
|
|
|
transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); |
|
|
|
transactionCreateReqVOIn.setInventoryAction(transactiontypeDO.getInventoryAction()); |
|
|
|
transactionCreateReqVOIn.setTransactionType(transactiontypeDO.getCode()); |
|
|
|
transactionCreateReqVOIn.setBusinessType(""); |
|
|
|
transactionCreateReqVOIn.setOwnerCode(updateBalanceDO.getOwnerCode()); |
|
|
|
transactionCreateReqVOIn.setRecordNumber(""); |
|
|
|
transactionCreateReqVOIn.setId(null); |
|
|
|
transactionCreateReqVOIn.setPackingNumber(balanceDO.getPackingNumber()); |
|
|
|
transactionCreateReqVOIn.setBatch(updateBalanceDO.getBatch()); |
|
|
|
transactionCreateReqVOIn.setContainerNumber(balanceDO.getContainerNumber()); |
|
|
|
transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); |
|
|
|
transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode()); |
|
|
|
transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode()); |
|
|
|
transactionCreateReqVOIn.setInventoryStatus(updateBalanceDO.getInventoryStatus()); |
|
|
|
transactionCreateReqVOIn.setQty(updateBalanceDO.getQty()); |
|
|
|
transactionCreateReqVOIn.setExpireDate(updateBalanceDO.getExpireDate()); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOIn); |
|
|
|
// 出动作
|
|
|
|
BeanUtils.copyProperties(balanceDO, transactionCreateReqVOOut); |
|
|
|
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType("ISS-CHG"); |
|
|
|
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); |
|
|
|
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); |
|
|
|
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); |
|
|
|
transactionCreateReqVOOut.setBusinessType(""); |
|
|
|
transactionCreateReqVOOut.setOwnerCode(balanceDO.getOwnerCode()); |
|
|
|
transactionCreateReqVOOut.setRecordNumber(""); |
|
|
|
transactionCreateReqVOOut.setId(null); |
|
|
|
transactionCreateReqVOOut.setPackingNumber(balanceDO.getPackingNumber()); |
|
|
|
transactionCreateReqVOOut.setBatch(balanceDO.getBatch()); |
|
|
|
transactionCreateReqVOOut.setContainerNumber(balanceDO.getContainerNumber()); |
|
|
|
transactionCreateReqVOOut.setAmount(balanceDO.getAmount()); |
|
|
|
transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode()); |
|
|
|
transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode()); |
|
|
|
transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); |
|
|
|
transactionCreateReqVOOut.setQty(balanceDO.getQty()); |
|
|
|
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOOut); |
|
|
|
//增加库存事务
|
|
|
|
transactionService.createTransaction(transactionCreateReqVOList); |
|
|
|
} |
|
|
|
} |
|
|
|