|
@@ -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;
|
|
@@ -115,16 +113,18 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
|
|
|
purchase.setArrivalStatus(arrival.getArrivalStatus());
|
|
|
purchase.setId(arrival.getPurchaseId());
|
|
|
purchaseService.updateById(purchase);
|
|
|
+// Purchase purchase1 = purchaseService.getById(arrival.getPurchaseId());
|
|
|
//取出到货明细
|
|
|
List<ArrivalDetail> arrivalDetailList = arrival.getArrivalDetailList();
|
|
|
if (CollectionUtils.isNotEmpty(arrivalDetailList)) {
|
|
|
- StockWait stockWait = new StockWait();
|
|
|
- stockWait.setBusinessId(arrival.getId());//到货明细ID
|
|
|
- stockWait.setType(1);//入库
|
|
|
- stockWait.setStatus(0);//待入库
|
|
|
- stockWait.setBusinessType(StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType());//采购到货
|
|
|
- stockWaitService.save(stockWait);
|
|
|
- List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
|
|
|
+// StockWait stockWait = new StockWait();
|
|
|
+// stockWait.setBusinessId(purchase1.getId());//采购id
|
|
|
+// stockWait.setBusinessCode(purchase1.getCode());//采购id
|
|
|
+// stockWait.setType(1);//入库
|
|
|
+// stockWait.setStatus(0);//待入库
|
|
|
+// stockWait.setBusinessType(StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType());//采购到货
|
|
|
+// stockWaitService.save(stockWait);
|
|
|
+// List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
|
|
|
for (ArrivalDetail d : arrivalDetailList) {
|
|
|
//todo 这一块是做了采购到货状态修改。前端已经完成
|
|
|
//查询采购明细
|
|
@@ -137,14 +137,14 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
|
|
|
//
|
|
|
// }
|
|
|
d.setArrivalId(arrival.getId());
|
|
|
- StockWaitDetails stockWaitDetails = new StockWaitDetails();
|
|
|
- stockWaitDetails.setStockWaitId(stockWait.getId());
|
|
|
- stockWaitDetails.setProductId(d.getBussinessId());
|
|
|
- stockWaitDetails.setQuantity(d.getCount());
|
|
|
- stockWaitDetailsList.add(stockWaitDetails);
|
|
|
+// StockWaitDetails stockWaitDetails = new StockWaitDetails();
|
|
|
+// stockWaitDetails.setStockWaitId(stockWait.getId());
|
|
|
+// stockWaitDetails.setProductId(d.getBussinessId());
|
|
|
+// stockWaitDetails.setQuantity(d.getCount());
|
|
|
+// stockWaitDetailsList.add(stockWaitDetails);
|
|
|
}
|
|
|
arrivalDetailService.saveBatch(arrivalDetailList);
|
|
|
- stockWaitDetailsService.saveBatch(stockWaitDetailsList);
|
|
|
+// stockWaitDetailsService.saveBatch(stockWaitDetailsList);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -155,6 +155,7 @@ public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> impl
|
|
|
@Override
|
|
|
public void addByWdly(Arrival arrival) {
|
|
|
arrival.setCode(CodeEnum.ARRIVAL.getCode());
|
|
|
+ arrival.setStatus(1);//设置到货
|
|
|
this.save(arrival);
|
|
|
|
|
|
//修改采购状态
|
|
@@ -168,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不能为空");
|
|
|
}
|
|
|
|
|
@@ -181,25 +182,29 @@ 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);
|
|
|
|
|
|
+ //获取采购信息
|
|
|
+ Purchase purchase = purchaseService.getById(deliverGoodsInfo.getPurchaseId());
|
|
|
+
|
|
|
//----------
|
|
|
StockWait stockWait = new StockWait();
|
|
|
stockWait.setType(1);//入库
|
|
|
stockWait.setStatus(0);//待入库
|
|
|
stockWait.setBusinessType(StockWaitType.PURCHASE_ARRIVAL_IN.getDetailType());//采购到货
|
|
|
- //将业务id设置成到货id
|
|
|
- stockWait.setBusinessId(arrival.getId());
|
|
|
+ //将业务信息设置成采购id和采购编码
|
|
|
+ stockWait.setBusinessId(purchase.getId());
|
|
|
+ stockWait.setBusinessCode(purchase.getCode());
|
|
|
stockWait.setVictoriatouristJson(json.toJSONString());
|
|
|
stockWaitService.save(stockWait);
|
|
|
|
|
@@ -212,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();
|
|
@@ -235,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
|