|
@@ -2,8 +2,6 @@ package com.fjhx.purchase.service.arrival.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
-import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
-import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
@@ -171,7 +169,7 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
|
|
|
JSONObject json = JSONObject.parseObject(victoriatouristJson);
|
|
|
Long deliverGoodsId = json.getLong("deliverGoodsId");
|
|
|
|
|
|
- if(ObjectUtil.isEmpty(deliverGoodsId)){
|
|
|
+ if (ObjectUtil.isEmpty(deliverGoodsId)) {
|
|
|
throw new ServiceException("发货id不能为空");
|
|
|
}
|
|
|
|
|
@@ -184,15 +182,15 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
|
|
|
SubscribeDetail byId = subscribeDetailService.getById(subscribeDetailId);
|
|
|
Subscribe byId1 = subscribeService.getById(byId.getSubscribeId());
|
|
|
String victoriatouristJson1 = byId1.getVictoriatouristJson();
|
|
|
- if(ObjectUtil.isNotEmpty(victoriatouristJson1)){
|
|
|
+ if (ObjectUtil.isNotEmpty(victoriatouristJson1)) {
|
|
|
//去申购单取仓库id
|
|
|
JSONObject json1 = JSONObject.parseObject(victoriatouristJson1);
|
|
|
Long receiptWarehouseId = json1.getLong("receiptWarehouseId");
|
|
|
- json.put("receiptWarehouseId",receiptWarehouseId);
|
|
|
+ json.put("receiptWarehouseId", receiptWarehouseId);
|
|
|
}
|
|
|
//赋值物流公司名称
|
|
|
CompanyInfo logisticsCompanyCode = companyInfoService.getOne(q -> q.eq(CompanyInfo::getCode, json.getString("logisticsCompanyCode")));
|
|
|
- json.put("logisticsCompanyName",logisticsCompanyCode.getName());
|
|
|
+ json.put("logisticsCompanyName", logisticsCompanyCode.getName());
|
|
|
//修改发货记录的状态为到货
|
|
|
wdlyService.updateDeliverGoodsStatus(deliverGoodsId);
|
|
|
|
|
@@ -219,7 +217,7 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
|
|
|
List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
|
|
|
List<Long> arrivalDids = arrivalDetailList.stream().map(ArrivalDetail::getPurchaseDetailId).collect(Collectors.toList());
|
|
|
List<PurchaseDetail> purchaseDetailList = purchaseDetailService.listByIds(arrivalDids);
|
|
|
- if(ObjectUtil.isNotEmpty(purchaseDetailList)) {
|
|
|
+ if (ObjectUtil.isNotEmpty(purchaseDetailList)) {
|
|
|
Map<Long, PurchaseDetail> purchaseDetailMap = purchaseDetailList.stream().collect(Collectors.toMap(PurchaseDetail::getId, Function.identity()));
|
|
|
for (ArrivalDetail d : arrivalDetailList) {
|
|
|
Long id = IdWorker.getId();
|
|
@@ -242,6 +240,34 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
|
|
|
DynamicDataSourceContextHolder.push(SourceConstant.WMS);
|
|
|
stockWaitDetailsService.saveBatch(stockWaitDetailsList);
|
|
|
DynamicDataSourceContextHolder.poll();
|
|
|
+
|
|
|
+ //修改到货状态
|
|
|
+ Integer flag = 0;
|
|
|
+ List<PurchaseDetail> purchaseDetailsList1 = purchaseDetailService.list(q -> q.eq(PurchaseDetail::getPurchaseId, purchase.getId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(purchaseDetailsList1)) {
|
|
|
+ List<Long> purchaseDetailsIds = purchaseDetailsList1.stream().map(PurchaseDetail::getId).collect(Collectors.toList());
|
|
|
+ List<ArrivalDetail> arrivalDetailsList1 = arrivalDetailService.list(q -> q.in(ArrivalDetail::getPurchaseDetailId, purchaseDetailsIds));
|
|
|
+ if (ObjectUtil.isNotEmpty(arrivalDetailsList1)) {
|
|
|
+ Map<Long, List<ArrivalDetail>> arrivalDetailsMap = arrivalDetailsList1.stream().collect(Collectors.groupingBy(ArrivalDetail::getPurchaseDetailId));
|
|
|
+ for (PurchaseDetail purchaseDetail : purchaseDetailsList1) {
|
|
|
+ List<ArrivalDetail> arrivalDetails = arrivalDetailsMap.get(purchaseDetail.getId());
|
|
|
+ BigDecimal count = arrivalDetails.stream()
|
|
|
+ .map(ArrivalDetail::getCount)
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (purchaseDetail.getCount().compareTo(count) >= 0) {
|
|
|
+ flag++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (purchaseDetailsList1.size() == flag) {
|
|
|
+ //完全到货
|
|
|
+ purchase.setArrivalStatus(20);
|
|
|
+ } else {
|
|
|
+ //部分到货
|
|
|
+ purchase.setArrivalStatus(10);
|
|
|
+ }
|
|
|
+ purchaseService.updateById(purchase);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|