|
|
@@ -27,6 +27,7 @@ import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
+import org.springblade.mocha.entity.BusinessOverpaymentItem;
|
|
|
import org.springblade.salesPart.entity.*;
|
|
|
import org.springblade.salesPart.enums.OrderTypeEnum;
|
|
|
import org.springblade.salesPart.goods.mapper.GoodsDescMapper;
|
|
|
@@ -56,6 +57,7 @@ import java.math.RoundingMode;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
import static org.springblade.core.secure.utils.AuthUtil.getUser;
|
|
|
|
|
|
@@ -361,7 +363,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
if (ObjectUtil.isNotEmpty(stockOne)){
|
|
|
stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().subtract(item.getSendNum()));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(item.getCostprie())));
|
|
|
+ stockOne.setInventoryAmount(stockOne.getInventoryAmount().subtract(item.getSendNum().multiply(stockOne.getInventoryCostPrice())));
|
|
|
stockDescMapper.updateById(stockOne);
|
|
|
}else {
|
|
|
throw new RuntimeException("库存数据异常");
|
|
|
@@ -482,7 +484,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public R warehousingComplete(PjShip ship) {
|
|
|
- ship.setStatusName(OrderTypeEnum.RECEIVED.getType());
|
|
|
+
|
|
|
if (ship.getId() == null){
|
|
|
// 获取系统编号
|
|
|
R billNo = serialClient.getBillNo(OrderTypeEnum.SHGD.getType(), OrderTypeEnum.SHGD.getType(), OrderTypeEnum.SHGD.getType());
|
|
|
@@ -539,21 +541,32 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
|
|
|
stockDesc.setSalesCompanyId(ship.getSalesCompanyId());
|
|
|
stockDesc.setSalesCompanyName(ship.getSalesCompanyName());
|
|
|
- stockDesc.setStorageId(ship.getStorageId());
|
|
|
- stockDesc.setGoodsId(item.getGoodsId());
|
|
|
+
|
|
|
+ //获得仓库
|
|
|
+ PjStorageDesc storageDesc = storageDescMapper.selectById(ship.getStorageId());
|
|
|
+ if (ObjectUtil.isNotEmpty(storageDesc)){
|
|
|
+ stockDesc.setStorageId(storageDesc.getId());
|
|
|
+ stockDesc.setStorageName(storageDesc.getCname());
|
|
|
+ }else {
|
|
|
+ throw new RuntimeException("仓库数据异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ stockDesc.setGoodsId(goodsDesc.getId());
|
|
|
stockDesc.setCode(item.getGoodsNo());
|
|
|
- stockDesc.setCname(item.getGoodsName());
|
|
|
+ stockDesc.setCname(goodsDesc.getCname());
|
|
|
+ stockDesc.setInventoryAlert(goodsDesc.getInventoryAlert());
|
|
|
stockDesc.setBrandId(item.getBrandId());
|
|
|
stockDesc.setBrandName(item.getBrandName());
|
|
|
stockDesc.setTypeno(item.getPropertyName());
|
|
|
stockDesc.setBrandItem(item.getPattern());
|
|
|
stockDesc.setProductDescription(item.getGoodsDescription());
|
|
|
+ stockDesc.setDot(item.getDot());
|
|
|
|
|
|
LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjStockDesc::getIsDeleted, 0)
|
|
|
.eq(PjStockDesc::getSalesCompanyId, ship.getSalesCompanyId())
|
|
|
- .eq(PjStockDesc::getGoodsId, item.getGoodsId())
|
|
|
+ .eq(PjStockDesc::getGoodsId, goodsDesc.getId())
|
|
|
.eq(PjStockDesc::getStorageId, ship.getStorageId());
|
|
|
if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && goodsDesc.getWhether().equals("1")){//管理批次号
|
|
|
lambdaQueryWrapper.eq(PjStockDesc::getDot, item.getDot());
|
|
|
@@ -572,6 +585,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockDesc.setInventoryCostPrice(stockDesc.getInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
stockDescMapper.insert(stockDesc);
|
|
|
}else {
|
|
|
+ stockDesc.setId(stockOne.getId());
|
|
|
stockDesc.setUpdateTime(new Date());
|
|
|
stockDesc.setUpdateUser(AuthUtil.getUserId());
|
|
|
stockDesc.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
|
|
|
@@ -582,40 +596,59 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
stockDescMapper.updateById(stockDesc);
|
|
|
}
|
|
|
|
|
|
- //修改上架库存
|
|
|
+ /** ----------------------修改上架库存---------------------- */
|
|
|
+
|
|
|
+ //查询所有该商品的库存
|
|
|
+ LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapperList = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapperList.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
+ .eq(PjStockDesc::getGoodsId, goodsDesc.getId());
|
|
|
+ List<PjStockDesc> stockDescList = stockDescMapper.selectList(lambdaQueryWrapperList);
|
|
|
+
|
|
|
+ //库存总数量
|
|
|
+ BigDecimal balanceQuantity = stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+
|
|
|
+ //查询所有上架商品
|
|
|
LambdaQueryWrapper<PjProductLaunch> productLaunchQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
productLaunchQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
- .eq(PjProductLaunch::getGoodsId, stockDesc.getGoodsId())
|
|
|
- .eq(PjProductLaunch::getBillType, 0);
|
|
|
- PjProductLaunch productLaunch = productLaunchMapper.selectOne(productLaunchQueryWrapper);
|
|
|
+ .eq(PjProductLaunch::getGoodsId, stockDesc.getGoodsId());
|
|
|
+ List<PjProductLaunch> productLaunch = productLaunchMapper.selectList(productLaunchQueryWrapper);
|
|
|
|
|
|
+ //修改上架数量
|
|
|
if (ObjectUtil.isNotEmpty(productLaunch)){
|
|
|
- productLaunch.setInventory(stockDesc.getBalanceQuantity());
|
|
|
+ productLaunch.forEach(e -> {
|
|
|
+ e.setInventory(balanceQuantity);
|
|
|
+ productLaunchMapper.updateById(e);
|
|
|
+ });
|
|
|
}
|
|
|
- productLaunchMapper.updateById(productLaunch);
|
|
|
+
|
|
|
+ /** ----------------------修改上架库存---------------------- */
|
|
|
});
|
|
|
ship.setShipItemsList(ship.getShipItemsList());
|
|
|
ship.setNumberRows(ship.getShipItemsList().size());
|
|
|
}
|
|
|
|
|
|
//修改采购订单状态
|
|
|
- PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
+ /*PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
if (ObjectUtil.isNotEmpty(order)){
|
|
|
order.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
|
|
|
orderMapper.updateById(order);
|
|
|
}else {
|
|
|
throw new RuntimeException("数据异常请联系管理员");
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
//生成出库工单历史记录
|
|
|
saveHistory(ship.getId(), OrderTypeEnum.RECEIVED.getType());
|
|
|
|
|
|
+ ship.setStatusName(OrderTypeEnum.RECEIVED.getType());
|
|
|
+ baseMapper.updateById(ship);
|
|
|
+
|
|
|
return R.data(ship);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 生成出库工单历史记录
|
|
|
+ * 生成工单历史记录
|
|
|
*/
|
|
|
public void saveHistory(Long pid, String status){
|
|
|
//生成出库工单历史记录
|
|
|
@@ -626,7 +659,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
history.setCreateTime(new Date());
|
|
|
history.setPid(pid);
|
|
|
history.setOperatorId(AuthUtil.getUserId());
|
|
|
- history.setOperatorName(getUser().getRoleName());
|
|
|
+ history.setOperatorName(getUser().getUserName());
|
|
|
history.setOperateTime(new Date());
|
|
|
history.setOperateStatus(status);
|
|
|
historyMapper.insert(history);
|