|
|
@@ -26,9 +26,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
|
|
|
-import org.springblade.check.dto.AuditProecessDTO;
|
|
|
-import org.springblade.check.entity.AuditPathsActs;
|
|
|
-import org.springblade.check.entity.AuditPathsLevels;
|
|
|
import org.springblade.client.entity.Message;
|
|
|
import org.springblade.client.feign.IMessageClient;
|
|
|
import org.springblade.client.feign.ISerialClient;
|
|
|
@@ -48,23 +45,22 @@ import org.springblade.salesPart.check.service.IAuditPathsActsService;
|
|
|
import org.springblade.salesPart.check.service.IAuditPathsLevelsService;
|
|
|
import org.springblade.salesPart.check.service.IAuditProecessService;
|
|
|
import org.springblade.salesPart.corps.mapper.CorpsDescMapper;
|
|
|
-import org.springblade.salesPart.corps.service.ICorpsAttnService;
|
|
|
-import org.springblade.salesPart.corps.service.ICorpsDescService;
|
|
|
import org.springblade.salesPart.entity.*;
|
|
|
import org.springblade.salesPart.enums.OrderTypeEnum;
|
|
|
import org.springblade.salesPart.excel.PjOrderStatisticsExcel;
|
|
|
import org.springblade.salesPart.goods.mapper.GoodsDescMapper;
|
|
|
+import org.springblade.salesPart.goods.mapper.GoodsTypeMapper;
|
|
|
import org.springblade.salesPart.goods.service.IGoodsFilesService;
|
|
|
import org.springblade.salesPart.history.mapper.HistoryMapper;
|
|
|
-import org.springblade.salesPart.order.mapper.OrderItemsMapper;
|
|
|
import org.springblade.salesPart.order.mapper.OrderMapper;
|
|
|
+import org.springblade.salesPart.order.service.IOrderItemsService;
|
|
|
import org.springblade.salesPart.order.service.IOrderService;
|
|
|
import org.springblade.salesPart.payMethod.PayService;
|
|
|
import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
|
|
|
import org.springblade.salesPart.settlement.mapper.SettlementMapper;
|
|
|
import org.springblade.salesPart.settlement.service.ISettlementItemsService;
|
|
|
-import org.springblade.salesPart.ship.mapper.ShipItemsMapper;
|
|
|
import org.springblade.salesPart.ship.mapper.ShipMapper;
|
|
|
+import org.springblade.salesPart.ship.service.IShipItemsService;
|
|
|
import org.springblade.salesPart.stock.service.IStockDescService;
|
|
|
import org.springblade.salesPart.storage.mapper.StorageDescMapper;
|
|
|
import org.springblade.salesPart.vo.OrderStatistics;
|
|
|
@@ -84,6 +80,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
import java.lang.reflect.Method;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.MathContext;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
@@ -108,11 +105,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
* 生成系统编号
|
|
|
*/
|
|
|
private final ISerialClient serialClient;
|
|
|
- private final OrderItemsMapper orderItemsMapper;
|
|
|
+ private final IOrderItemsService orderItemsService;
|
|
|
private final ShipMapper shipMapper;
|
|
|
- private final ShipItemsMapper shipItemsMapper;
|
|
|
+ private final IShipItemsService shipItemsService;
|
|
|
private final CorpsDescMapper corpsDescMapper;
|
|
|
private final StorageDescMapper storageDescMapper;
|
|
|
+ private final GoodsTypeMapper goodsTypeMapper;
|
|
|
private final IStockDescService stockDescService;
|
|
|
private final IProductLaunchService productLaunchService;
|
|
|
private final GoodsDescMapper goodsDescMapper;
|
|
|
@@ -156,7 +154,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrderItems::getIsDeleted, 0)
|
|
|
.eq(PjOrderItems::getPid, detail.getId());
|
|
|
- List<PjOrderItems> list = orderItemsMapper.selectList(itemsLambdaQueryWrapper);
|
|
|
+ List<PjOrderItems> list = orderItemsService.list(itemsLambdaQueryWrapper);
|
|
|
/*for (PjOrderItems item : list) {
|
|
|
List<PjGoodsFiles> goodsFilesList = new ArrayList<>();
|
|
|
goodsFilesList = goodsFilesService.list(new LambdaQueryWrapper<PjGoodsFiles>()
|
|
|
@@ -370,7 +368,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
user = r.getData();
|
|
|
}
|
|
|
}
|
|
|
- List<PjOrderItems> pjOrderItemsList = orderItemsMapper.selectList(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
+ List<PjOrderItems> pjOrderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
|
|
|
.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrderItems::getIsDeleted, 0)
|
|
|
.eq(PjOrderItems::getPid, order.getId()));
|
|
|
@@ -408,7 +406,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
integralDetail.setIntegral(order.getTotalMoney());
|
|
|
integralDetail.setGoodsName(order.getGoodsNameJoin());
|
|
|
StringBuilder goodsId = new StringBuilder();
|
|
|
- for (Long item: goodsIds){
|
|
|
+ for (Long item : goodsIds) {
|
|
|
goodsId.append(item).append(",");
|
|
|
}
|
|
|
if (goodsId.length() > 0) {
|
|
|
@@ -487,22 +485,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
for (PjOrderItems item : order.getOrderItemsList()) {
|
|
|
item.setBizType(order.getBsType());
|
|
|
item.setBillNo(order.getOrdNo());
|
|
|
- if (item.getId() == null) {
|
|
|
- item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setPid(order.getId());
|
|
|
- item.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItemsMapper.insert(item);
|
|
|
- } else {
|
|
|
- item.setUpdateTime(new Date());
|
|
|
- item.setUpdateUser(AuthUtil.getUserId());
|
|
|
- item.setPid(order.getId());
|
|
|
- orderItemsMapper.updateById(item);
|
|
|
- }
|
|
|
//计算小计
|
|
|
item.setSubTotalMoney(item.getGoodsNum().multiply(item.getPrice()));
|
|
|
-
|
|
|
//获得商品
|
|
|
PjGoodsDesc goodsDesc = goodsDescMapper.selectById(item.getGoodsId());
|
|
|
if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
@@ -512,8 +496,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
goodsName = goodsName.append(goodsDesc.getCname()).append(",");
|
|
|
goodsIds = goodsIds.append(goodsDesc.getId()).append(",");
|
|
|
retrieval = retrieval.append(goodsDesc.getCnameInt()).append(",");
|
|
|
- orderItemsMapper.updateById(item);
|
|
|
+ if (item.getId() == null) {
|
|
|
+ item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setPid(order.getId());
|
|
|
+ item.setTenantId(AuthUtil.getTenantId());
|
|
|
+ } else {
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setPid(order.getId());
|
|
|
+ }
|
|
|
}
|
|
|
+ orderItemsService.saveOrUpdateBatch(order.getOrderItemsList());
|
|
|
if (goodsName.length() > 0) {
|
|
|
order.setGoodsNameJoin(goodsName.substring(0, goodsName.length() - 1));
|
|
|
}
|
|
|
@@ -559,6 +554,244 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
return R.data(order);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R shortcutWarehousing(PjOrder order) {
|
|
|
+ PjOrder pjOrder = baseMapper.selectById(order.getId());
|
|
|
+
|
|
|
+ PjShip pjShip = new PjShip();
|
|
|
+ // 获取系统编号
|
|
|
+ R billNo = serialClient.getBillNo(OrderTypeEnum.SHRW.getType(), OrderTypeEnum.SHRW.getType(), OrderTypeEnum.SHRW.getType());
|
|
|
+ if (billNo.getCode() != 200) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.fail(500, "生成系统编号失败");
|
|
|
+ }
|
|
|
+ BeanUtil.copyProperties(pjOrder, pjShip);
|
|
|
+ pjShip.setId(null);
|
|
|
+ if (ObjectUtils.isNotNull(pjOrder.getStorageId())) {
|
|
|
+ //仓库名称
|
|
|
+ pjShip.setStorageName(storageDescMapper.selectById(pjOrder.getStorageId()).getCname());
|
|
|
+ }
|
|
|
+ pjShip.setBusinesDate(new Date());
|
|
|
+ pjShip.setBillno((String) billNo.getData());
|
|
|
+ pjShip.setOrdNo(pjOrder.getOrdNo());
|
|
|
+ pjShip.setOrdId(pjOrder.getId());
|
|
|
+ pjShip.setSrcOrdNo(pjOrder.getSrcOrdNo());
|
|
|
+ pjShip.setStatusName(OrderTypeEnum.SCRW.getType());
|
|
|
+ pjShip.setBsType(pjOrder.getBusinessSource());
|
|
|
+ pjShip.setTenantId(AuthUtil.getTenantId());
|
|
|
+ pjShip.setBizTypeName(OrderTypeEnum.SHRW.getType());
|
|
|
+ pjShip.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ pjShip.setCreateUser(AuthUtil.getUserId());
|
|
|
+ pjShip.setCreateTime(new Date());
|
|
|
+ pjShip.setSendTotalNum(pjShip.getGoodsTotalNum());
|
|
|
+ shipMapper.insert(pjShip);
|
|
|
+ //新建入库工单
|
|
|
+ PjShip gdShip = new PjShip();
|
|
|
+ // 获取系统编号
|
|
|
+ R billNoGD = serialClient.getBillNo(OrderTypeEnum.SHGD.getType(), OrderTypeEnum.SHGD.getType(), OrderTypeEnum.SHGD.getType());
|
|
|
+ if (billNo.getCode() != 200) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.fail(500, "生成系统编号失败");
|
|
|
+ }
|
|
|
+ BeanUtil.copyProperties(pjShip, gdShip);
|
|
|
+
|
|
|
+ gdShip.setId(null);
|
|
|
+ gdShip.setBillno((String) billNoGD.getData());
|
|
|
+ gdShip.setStatusName(OrderTypeEnum.RECEIVED.getType());
|
|
|
+ gdShip.setTenantId(AuthUtil.getTenantId());
|
|
|
+ gdShip.setBizTypeName(OrderTypeEnum.SHGD.getType());
|
|
|
+ gdShip.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ gdShip.setCreateUser(AuthUtil.getUserId());
|
|
|
+ gdShip.setCreateTime(new Date());
|
|
|
+ gdShip.setTaskId(pjShip.getId());
|
|
|
+ shipMapper.insert(gdShip);
|
|
|
+
|
|
|
+ //根据采购id获得采购明细数据
|
|
|
+ List<PjOrderItems> list = orderItemsService.list(new QueryWrapper<PjOrderItems>()
|
|
|
+ .eq("pid", pjShip.getOrdId())
|
|
|
+ .eq("is_deleted", 0)
|
|
|
+ .apply("goods_num != send_num")
|
|
|
+ .eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(list)) {
|
|
|
+ List<PjShipItems> shipItemsList = new ArrayList<>();
|
|
|
+ List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
|
|
|
+ List<PjProductLaunch> pjProductLaunch = new ArrayList<>();
|
|
|
+ List<Long> goodsIds = list.stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
+ List<PjGoodsDesc> pjGoodsDescList = new ArrayList<>();
|
|
|
+ List<PjStockDesc> pjStockDescList = new ArrayList<>();
|
|
|
+ if (goodsIds.size() > 0) {
|
|
|
+ pjGoodsDescList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
+ .eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
+ .in(PjGoodsDesc::getId, goodsIds)
|
|
|
+ .eq(PjGoodsDesc::getEnableOrNot, 0));
|
|
|
+ pjStockDescList = stockDescService.list(new LambdaQueryWrapper<PjStockDesc>()
|
|
|
+ .eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
+ .eq(PjStockDesc::getSalesCompanyId, gdShip.getSalesCompanyId())
|
|
|
+ .in(PjStockDesc::getGoodsId, goodsIds)
|
|
|
+ .eq(PjStockDesc::getStorageId, gdShip.getStorageId()));
|
|
|
+ //查询所有上架商品
|
|
|
+ LambdaQueryWrapper<PjProductLaunch> productLaunchQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ productLaunchQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .isNull(PjProductLaunch::getSourceId)
|
|
|
+ .eq(PjProductLaunch::getSalesCompanyId, gdShip.getSalesCompanyId())
|
|
|
+ .in(PjProductLaunch::getGoodsId, goodsIds);
|
|
|
+ pjProductLaunch = productLaunchService.list(new LambdaQueryWrapper<PjProductLaunch>()
|
|
|
+ .eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .isNull(PjProductLaunch::getSourceId)
|
|
|
+ .eq(PjProductLaunch::getSalesCompanyId, gdShip.getSalesCompanyId())
|
|
|
+ .in(PjProductLaunch::getGoodsId, goodsIds));
|
|
|
+ }
|
|
|
+ PjStorageDesc storageDesc = storageDescMapper.selectById(gdShip.getStorageId());
|
|
|
+ List<PjGoodsDesc> finalPjGoodsDescList = pjGoodsDescList;
|
|
|
+ List<PjStockDesc> finalPjStockDescList = pjStockDescList;
|
|
|
+ List<PjProductLaunch> finalPjProductLaunch = pjProductLaunch;
|
|
|
+ list.forEach(e -> {
|
|
|
+ //获得商品
|
|
|
+ PjGoodsDesc goodsDesc = finalPjGoodsDescList.stream().filter(i -> i.getId().equals(e.getGoodsId())).findFirst().orElse(null);
|
|
|
+ if (ObjectUtil.isEmpty(goodsDesc)) {
|
|
|
+ throw new RuntimeException("商品数据异常");
|
|
|
+ }
|
|
|
+ e.setSendNum(e.getGoodsNum());
|
|
|
+ //根据采购明细创建入库工单明细
|
|
|
+ PjShipItems shipItems = new PjShipItems();
|
|
|
+ BeanUtil.copyProperties(e, shipItems);
|
|
|
+ shipItems.setId(null);
|
|
|
+ shipItems.setPid(gdShip.getId());
|
|
|
+ shipItems.setSrcItemId(e.getId());
|
|
|
+ shipItems.setCreateTime(new Date());
|
|
|
+ shipItems.setCreateUser(AuthUtil.getUserId());
|
|
|
+ shipItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ shipItems.setSendNum(e.getGoodsNum().subtract(e.getSendNum()));
|
|
|
+ shipItemsList.add(shipItems);
|
|
|
+ //生成库存账
|
|
|
+ PjStockDesc stockDesc = new PjStockDesc();
|
|
|
+
|
|
|
+ stockDesc.setSalesCompanyId(gdShip.getSalesCompanyId());
|
|
|
+ stockDesc.setSalesCompanyName(gdShip.getSalesCompanyName());
|
|
|
+ stockDesc.setGoodsTypeId(goodsDesc.getGoodsTypeId());
|
|
|
+ if (ObjectUtils.isNotNull(goodsDesc.getGoodsTypeId())) {
|
|
|
+ PjGoodsType goodsType = goodsTypeMapper.selectById(goodsDesc.getGoodsTypeId());
|
|
|
+ if (ObjectUtils.isNotNull(goodsType)) {
|
|
|
+ stockDesc.setGoodsTypeName(goodsType.getCname());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获得仓库
|
|
|
+ if (ObjectUtil.isNotEmpty(storageDesc)) {
|
|
|
+ stockDesc.setStorageId(storageDesc.getId());
|
|
|
+ stockDesc.setStorageName(storageDesc.getCname());
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("仓库数据异常");
|
|
|
+ }
|
|
|
+ stockDesc.setGoodsId(goodsDesc.getId());
|
|
|
+ stockDesc.setCode(e.getGoodsNo());
|
|
|
+ stockDesc.setCname(goodsDesc.getCname());
|
|
|
+ stockDesc.setInventoryAlert(goodsDesc.getInventoryAlert());
|
|
|
+ stockDesc.setBrandId(e.getBrandId());
|
|
|
+ stockDesc.setBrandName(e.getBrandName());
|
|
|
+ stockDesc.setTypeno(e.getPropertyName());
|
|
|
+ stockDesc.setBrandItem(e.getPattern());
|
|
|
+ stockDesc.setProductDescription(e.getGoodsDescription());
|
|
|
+ stockDesc.setDot(e.getDot());
|
|
|
+ stockDesc.setTenantId(AuthUtil.getTenantId());
|
|
|
+ PjStockDesc stockOne = null;
|
|
|
+ if (finalPjStockDescList.size() <= 0) {
|
|
|
+ throw new RuntimeException(goodsDesc.getCname() + "未查到库存信息");
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && "1".equals(goodsDesc.getWhether())) {//管理批次号
|
|
|
+ if (ObjectUtil.isEmpty(e.getDot())) {
|
|
|
+ throw new RuntimeException(goodsDesc.getCname() + "已开启批次号管理,请填写批次号");
|
|
|
+ }
|
|
|
+ stockOne = finalPjStockDescList.stream().filter(i -> i.getDot().equals(e.getDot())).findFirst().orElse(null);
|
|
|
+ } else {
|
|
|
+ stockOne = finalPjStockDescList.stream().filter(i -> "".equals(i.getDot()) || i.getDot() == null).findFirst().orElse(null);
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isEmpty(stockOne)) {
|
|
|
+ stockDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ stockDesc.setCreateTime(new Date());
|
|
|
+ stockDesc.setCreateUser(AuthUtil.getUserId());
|
|
|
+ stockDesc.setBalanceQuantity(e.getSendNum());
|
|
|
+ stockDesc.setStoreInventory(e.getSendNum());
|
|
|
+ stockDesc.setInventoryAmount(e.getSendNum().multiply(e.getPrice()));
|
|
|
+ if (stockDesc.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
+ stockDesc.setInventoryCostPrice(stockDesc.getInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ } else {
|
|
|
+ stockDesc.setInventoryCostPrice(e.getPrice());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ stockDesc.setId(stockOne.getId());
|
|
|
+ stockDesc.setUpdateTime(new Date());
|
|
|
+ stockDesc.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ stockDesc.setBalanceQuantity(stockOne.getBalanceQuantity().add(e.getSendNum()));
|
|
|
+ stockDesc.setStoreInventory(stockDesc.getBalanceQuantity());
|
|
|
+ stockDesc.setInventoryAmount(e.getSendNum().multiply(e.getPrice()));
|
|
|
+ stockDesc.setInventoryAmount(stockDesc.getInventoryAmount().add(stockOne.getInventoryAmount()));
|
|
|
+ if (stockDesc.getBalanceQuantity().compareTo(new BigDecimal("0")) != 0) {
|
|
|
+ stockDesc.setInventoryCostPrice(stockDesc.getInventoryAmount().divide(stockDesc.getBalanceQuantity(), MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ stockDesc.setVersion(stockOne.getVersion());
|
|
|
+ }
|
|
|
+ boolean count = stockDescService.saveOrUpdate(stockDesc);
|
|
|
+ if (!count) {
|
|
|
+ throw new RuntimeException(stockOne.getCname() + "该产品库存正在操作,请稍后刷新在进行操作!");
|
|
|
+ }
|
|
|
+ /** ----------------------修改上架库存---------------------- */
|
|
|
+
|
|
|
+ if (finalPjStockDescList.size() <= 0) {
|
|
|
+ throw new RuntimeException(goodsDesc.getCname() + "未查到库存信息");
|
|
|
+ }
|
|
|
+ //查询所有该商品的库存
|
|
|
+ List<PjStockDesc> stockDescList = finalPjStockDescList.stream().filter(i -> goodsIds.contains(i.getGoodsId())).collect(Collectors.toList());
|
|
|
+ if (stockDescList.size() <= 0) {
|
|
|
+ throw new RuntimeException(goodsDesc.getCname() + "未查到库存结余");
|
|
|
+ }
|
|
|
+ //库存总数量
|
|
|
+ BigDecimal balanceQuantity = stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ balanceQuantity = balanceQuantity.add(e.getGoodsNum());
|
|
|
+ //查询所有上架商品
|
|
|
+ List<PjProductLaunch> productLaunch = finalPjProductLaunch.stream().filter(i -> i.getGoodsId().equals(e.getGoodsId())).collect(Collectors.toList());
|
|
|
+ //修改上架数量
|
|
|
+ if (ObjectUtil.isNotEmpty(productLaunch)) {
|
|
|
+ BigDecimal finalBalanceQuantity = balanceQuantity;
|
|
|
+ productLaunch.forEach(item -> {
|
|
|
+ item.setInventory(finalBalanceQuantity);
|
|
|
+ pjProductLaunchList.add(item);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /** ----------------------修改上架库存---------------------- */
|
|
|
+ });
|
|
|
+ R res = productLaunchService.updateBatchById(pjProductLaunchList);
|
|
|
+ if (!res.isSuccess()) {
|
|
|
+ throw new RuntimeException(res.getMsg());
|
|
|
+ }
|
|
|
+ gdShip.setNumberRows(list.size());
|
|
|
+ shipItemsService.saveBatch(shipItemsList);
|
|
|
+ orderItemsService.updateBatchById(list);
|
|
|
+
|
|
|
+ gdShip.setNumberRows(list.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改入库任务状态
|
|
|
+ pjShip.setStatusName(OrderTypeEnum.DISPATCHED.getType());
|
|
|
+ shipMapper.updateById(pjShip);
|
|
|
+ shipMapper.updateById(gdShip);
|
|
|
+
|
|
|
+ //生成入库工单历史记录
|
|
|
+ saveHistory(gdShip.getId(), OrderTypeEnum.RECEIVED.getType());
|
|
|
+ //生成出库工单历史记录
|
|
|
+ saveHistory(pjShip.getId(), OrderTypeEnum.DISPATCHED.getType());
|
|
|
+ //修改采购状态
|
|
|
+ pjOrder.setGenerateTask(OrderTypeEnum.SCRW.getType());
|
|
|
+ pjOrder.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
|
|
|
+ pjOrder.setXcxStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
|
|
|
+ baseMapper.updateById(pjOrder);
|
|
|
+ return R.data(pjOrder);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 保存订单信息
|
|
|
*
|
|
|
@@ -647,12 +880,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
item.setCreateUser(AuthUtil.getUserId());
|
|
|
item.setPid(order.getId());
|
|
|
item.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItemsMapper.insert(item);
|
|
|
+ orderItemsService.save(item);
|
|
|
} else {
|
|
|
item.setUpdateTime(new Date());
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setPid(order.getId());
|
|
|
- orderItemsMapper.updateById(item);
|
|
|
+ orderItemsService.updateById(item);
|
|
|
}
|
|
|
|
|
|
//计算小计
|
|
|
@@ -708,7 +941,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
//计算毛利
|
|
|
item.setGrossProfit(item.getSubTotalMoney().subtract(item.getCostprie()));
|
|
|
|
|
|
- orderItemsMapper.updateById(item);
|
|
|
+ orderItemsService.updateById(item);
|
|
|
|
|
|
}
|
|
|
if (goodsName.length() > 0) {
|
|
|
@@ -781,12 +1014,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
item.setCreateUser(AuthUtil.getUserId());
|
|
|
item.setPid(order.getId());
|
|
|
item.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItemsMapper.insert(item);
|
|
|
+ orderItemsService.save(item);
|
|
|
} else {
|
|
|
item.setUpdateTime(new Date());
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setPid(order.getId());
|
|
|
- orderItemsMapper.updateById(item);
|
|
|
+ orderItemsService.updateById(item);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -884,7 +1117,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrderItems::getIsDeleted, 0)
|
|
|
.eq(PjOrderItems::getPid, pjOrder.getId());
|
|
|
- List<PjOrderItems> itemsList = orderItemsMapper.selectList(itemsLambdaQueryWrapper);
|
|
|
+ List<PjOrderItems> itemsList = orderItemsService.list(itemsLambdaQueryWrapper);
|
|
|
if (ObjectUtil.isNotEmpty(itemsList)) {
|
|
|
itemsList.forEach(e -> {
|
|
|
LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
@@ -1035,7 +1268,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrderItems::getIsDeleted, 0)
|
|
|
.eq(PjOrderItems::getPid, pjOrder.getId());
|
|
|
- List<PjOrderItems> itemsList = orderItemsMapper.selectList(itemsLambdaQueryWrapper);
|
|
|
+ List<PjOrderItems> itemsList = orderItemsService.list(itemsLambdaQueryWrapper);
|
|
|
if (ObjectUtil.isNotEmpty(itemsList)) {
|
|
|
itemsList.forEach(e -> {
|
|
|
LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
@@ -1186,7 +1419,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
itemsLambdaQueryWrapper.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjOrderItems::getIsDeleted, 0)
|
|
|
.eq(PjOrderItems::getPid, detail.getId());
|
|
|
- List<PjOrderItems> orderItems = orderItemsMapper.selectList(itemsLambdaQueryWrapper);
|
|
|
+ List<PjOrderItems> orderItems = orderItemsService.list(itemsLambdaQueryWrapper);
|
|
|
for (PjOrderItems item : orderItems) {
|
|
|
List<PjGoodsFiles> pjGoodsFiles = goodsFilesService.list(new LambdaQueryWrapper<PjGoodsFiles>()
|
|
|
.eq(PjGoodsFiles::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -1323,11 +1556,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
}
|
|
|
}
|
|
|
//根据主表id获得明细数据
|
|
|
- List<PjOrderItems> list = orderItemsMapper.selectList(new QueryWrapper<PjOrderItems>()
|
|
|
+ List<PjOrderItems> list = orderItemsService.list(new QueryWrapper<PjOrderItems>()
|
|
|
.eq("pid", order.getId())
|
|
|
.eq("is_deleted", 0)
|
|
|
.eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
- goodsIds = list.stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
+ goodsIds = list.stream().map(PjOrderItems::getGoodsId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
|
|
List<PjGoodsDesc> pjGoodsDescList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
@@ -1423,7 +1656,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
if (ObjectUtils.isNotNull(shipItems.getCostprie()) && new BigDecimal("0.00").compareTo(shipItems.getCostprie()) != 0) {
|
|
|
shipItems.setPrice(shipItems.getCostprie().divide(e.getGoodsNum(), MathContext.DECIMAL32));
|
|
|
}
|
|
|
- shipItemsMapper.insert(shipItems);
|
|
|
+ shipItemsService.save(shipItems);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1452,12 +1685,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
item.setCreateUser(AuthUtil.getUserId());
|
|
|
item.setPid(order.getId());
|
|
|
item.setTenantId(AuthUtil.getTenantId());
|
|
|
- orderItemsMapper.insert(item);
|
|
|
+ orderItemsService.save(item);
|
|
|
} else {
|
|
|
item.setUpdateTime(new Date());
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setPid(order.getId());
|
|
|
- orderItemsMapper.updateById(item);
|
|
|
+ orderItemsService.updateById(item);
|
|
|
}
|
|
|
|
|
|
//获得商品
|
|
|
@@ -1552,7 +1785,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
integralDetail.setIntegral(order.getTotalMoney());
|
|
|
integralDetail.setGoodsName(order.getGoodsNameJoin());
|
|
|
StringBuilder goodsId = new StringBuilder();
|
|
|
- for (Long item: goodsIds){
|
|
|
+ for (Long item : goodsIds) {
|
|
|
goodsId.append(item).append(",");
|
|
|
}
|
|
|
if (goodsId.length() > 0) {
|
|
|
@@ -1621,7 +1854,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
orderId.append(id).append(",");
|
|
|
}
|
|
|
BigDecimal amount = orderList.stream().map(PjOrder::getTotalMoney).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- List<PjOrderItems> pjOrderItems = orderItemsMapper.selectList(new LambdaQueryWrapper<PjOrderItems>().in(PjOrderItems::getPid, ids));
|
|
|
+ List<PjOrderItems> pjOrderItems = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>().in(PjOrderItems::getPid, ids));
|
|
|
String goodsNames = pjOrderItems.stream().map(PjOrderItems::getGoodsName).collect(Collectors.joining());
|
|
|
return payService.payPrepay(orderId.substring(0, orderId.length() - 1), amount, srcOrderNo, 1, goodsNames, null);
|
|
|
}
|