|
@@ -41,6 +41,7 @@ import com.sckw.excel.utils.ExcelUtil;
|
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
import com.sckw.order.api.dubbo.TradeOrderInfoService;
|
|
|
import com.sckw.order.api.model.ContractSignCompletedParam;
|
|
import com.sckw.order.api.model.ContractSignCompletedParam;
|
|
|
import com.sckw.order.api.model.OrderDetailVo;
|
|
import com.sckw.order.api.model.OrderDetailVo;
|
|
|
|
|
+import com.sckw.order.api.model.TradeOrderContractVo;
|
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
import com.sckw.product.api.dubbo.GoodsInfoService;
|
|
|
import com.sckw.product.api.model.KwpGoods;
|
|
import com.sckw.product.api.model.KwpGoods;
|
|
|
import com.sckw.stream.enums.MessageEnum;
|
|
import com.sckw.stream.enums.MessageEnum;
|
|
@@ -171,55 +172,7 @@ public class KwcContractTradeService {
|
|
|
queryTradeReq.setPageSize(reqVo.getPageSize());
|
|
queryTradeReq.setPageSize(reqVo.getPageSize());
|
|
|
|
|
|
|
|
List<QueryListResVo> queryListResVoPageDataResult = queryTradeListByPage(queryTradeReq);
|
|
List<QueryListResVo> queryListResVoPageDataResult = queryTradeListByPage(queryTradeReq);
|
|
|
- // List<QueryListResVo> list1 = queryListResVoPageDataResult.getList();
|
|
|
|
|
-// QueryListReqDto queryListReqDto = new QueryListReqDto();
|
|
|
|
|
-// BeanUtils.copyProperties(reqVo, queryListReqDto);
|
|
|
|
|
-// List<Long> allEnt = new ArrayList<>();
|
|
|
|
|
-// if (Objects.isNull(reqVo.getEntId())) {
|
|
|
|
|
-// queryListReqDto.setEntId(LoginUserHolder.getEntId());
|
|
|
|
|
-// }
|
|
|
|
|
-// allEnt.add(queryListReqDto.getEntId());
|
|
|
|
|
-//
|
|
|
|
|
-// EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(queryListReqDto.getEntId());
|
|
|
|
|
-// if (Objects.nonNull(entCacheResDto)) {
|
|
|
|
|
-// EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());
|
|
|
|
|
-// List<EntCacheResDto> child = entCacheResDto1.getChild();
|
|
|
|
|
-// if (CollectionUtils.isNotEmpty(child)) {
|
|
|
|
|
-// allEnt.addAll(child.stream().map(EntCacheResDto::getId).toList());
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// queryListReqDto.setAllEnt(allEnt);
|
|
|
|
|
-//
|
|
|
|
|
-// if (StringUtils.isNotBlank(reqVo.getKeywords())) {
|
|
|
|
|
-// List<KwsUserResDto> userByName = remoteUserService.getUserByName(reqVo.getKeywords());
|
|
|
|
|
-// if (CollectionUtils.isNotEmpty(userByName)) {
|
|
|
|
|
-// queryListReqDto.setInitiateList(userByName.stream().map(KwsUserResDto::getId).toList());
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// List<QueryListResDto> queryListResDtos = kwcContractTradeMapper.queryList1(queryListReqDto);
|
|
|
|
|
-// if (CollectionUtils.isEmpty(queryListResDtos)) {
|
|
|
|
|
-// return PageHelperUtil.getPageResult(new PageInfo<>());
|
|
|
|
|
-// }
|
|
|
|
|
-// //查询公司信息
|
|
|
|
|
-// Set<Long> tradeContractIds = queryListResDtos.stream().map(QueryListResDto::getId).collect(Collectors.toSet());
|
|
|
|
|
-// List<KwcContractTradeUnit> tradeUnits = kwcContractTradeUnitRepository.queryByContractIds(tradeContractIds);
|
|
|
|
|
-// Map<String, KwcContractTradeUnit> contractUnitTypeKeyAndUnitMap = Maps.newHashMap();
|
|
|
|
|
-// if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(tradeUnits)){
|
|
|
|
|
-// contractUnitTypeKeyAndUnitMap = tradeUnits.stream()
|
|
|
|
|
-// .peek(x -> x.setContractIdUniTypeKey(x.getContractId() + "-" + x.getUnitType()))
|
|
|
|
|
-// .collect(Collectors.toMap(KwcContractTradeUnit::getContractIdUniTypeKey, Function.identity(), (v1
|
|
|
|
|
-// , v2) -> v1));
|
|
|
|
|
-// }
|
|
|
|
|
-//
|
|
|
|
|
-// //查询贸易合同关联商品
|
|
|
|
|
-// List<KwcContractTradeGoods> tradeContractGoods = kwcContractTradeGoodsRepository.queryByContractIds(tradeContractIds);
|
|
|
|
|
-// Map<Long, List<KwcContractTradeGoods>> contractIdGoodsIdKeyAndGoodsMap = Maps.newHashMap();
|
|
|
|
|
-// if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(tradeContractGoods)){
|
|
|
|
|
-// contractIdGoodsIdKeyAndGoodsMap =
|
|
|
|
|
-// tradeContractGoods.stream().collect(Collectors.groupingBy(KwcContractTradeGoods::getContractId));
|
|
|
|
|
-// }
|
|
|
|
|
-// List<QueryListResVo> list = getQueryListResVos(queryListResDtos, contractIdGoodsIdKeyAndGoodsMap,contractUnitTypeKeyAndUnitMap);
|
|
|
|
|
|
|
+
|
|
|
return PageHelperUtil.getPageResult(new PageInfo<>(queryListResVoPageDataResult), queryListResVoPageDataResult, reqVo.getPageSize());
|
|
return PageHelperUtil.getPageResult(new PageInfo<>(queryListResVoPageDataResult), queryListResVoPageDataResult, reqVo.getPageSize());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1464,7 +1417,7 @@ public class KwcContractTradeService {
|
|
|
tradeGoodsInfo.setGoodsName(goods.getName()+"/"+goods.getGoodsType()+"/"+goods.getSpec());
|
|
tradeGoodsInfo.setGoodsName(goods.getName()+"/"+goods.getGoodsType()+"/"+goods.getSpec());
|
|
|
tradeGoodsInfo.setAmount(t.getAmount());
|
|
tradeGoodsInfo.setAmount(t.getAmount());
|
|
|
tradeGoodsInfo.setPrice(t.getPrice());
|
|
tradeGoodsInfo.setPrice(t.getPrice());
|
|
|
- tradeGoodsInfo.setUnit(t.getUnit());
|
|
|
|
|
|
|
+ tradeGoodsInfo.setUnit(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(),t.getUnit()));
|
|
|
tradeGoodsInfo.setEffectiveStartTime(t.getStartTime());
|
|
tradeGoodsInfo.setEffectiveStartTime(t.getStartTime());
|
|
|
tradeGoodsInfo.setEffectiveEntTime(t.getEndTime());
|
|
tradeGoodsInfo.setEffectiveEntTime(t.getEndTime());
|
|
|
return tradeGoodsInfo;
|
|
return tradeGoodsInfo;
|
|
@@ -1586,10 +1539,39 @@ public class KwcContractTradeService {
|
|
|
List<Long> createBys =
|
|
List<Long> createBys =
|
|
|
records.stream().map(KwcContractTrade::getCreateBy).distinct().collect(Collectors.toList());
|
|
records.stream().map(KwcContractTrade::getCreateBy).distinct().collect(Collectors.toList());
|
|
|
Map<Long, UserCacheResDto> longUserCacheResDtoMap = remoteSystemService.queryUserCacheMapByIds(createBys);
|
|
Map<Long, UserCacheResDto> longUserCacheResDtoMap = remoteSystemService.queryUserCacheMapByIds(createBys);
|
|
|
|
|
+ //根据物流查询贸易订单
|
|
|
|
|
+ List<TradeOrderContractVo> tradeOrderContractVos = tradeOrderInfoService.queryByTradeContactIds(tradeContractIds);
|
|
|
|
|
+ Map<Long, RWaybillSubOrderVo> tradeOrderIdAndWaybillMap = Maps.newHashMap();
|
|
|
|
|
+ Map<Long, TradeOrderContractVo> contractIdAndContractMap = Maps.newHashMap();
|
|
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(tradeOrderContractVos)){
|
|
|
|
|
+ contractIdAndContractMap = tradeOrderContractVos.stream()
|
|
|
|
|
+ .collect(Collectors.toMap(TradeOrderContractVo::getContractId, Function.identity(), (v1, v2) -> v1));
|
|
|
|
|
+ //贸易订单id
|
|
|
|
|
+ Set<Long> tradeOrderIds = tradeOrderContractVos.stream()
|
|
|
|
|
+ .map(TradeOrderContractVo::getTOrderId)
|
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
|
+ //通过贸易订单id查询物流运单
|
|
|
|
|
+ List<RWaybillSubOrderVo> rWaybillSubOrderVos = transportRemoteService.queryWaybillOrderByTradeOrderIds(tradeOrderIds);
|
|
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(rWaybillSubOrderVos)){
|
|
|
|
|
+ tradeOrderIdAndWaybillMap = rWaybillSubOrderVos.stream()
|
|
|
|
|
+ .collect(Collectors.toMap(RWaybillSubOrderVo::getTradeId, Function.identity(), (k1, k2) -> k1));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //根据合同id查询合同商品
|
|
|
|
|
+ List<KwcContractTradeGoods> tradeGoods = kwcContractTradeGoodsRepository.queryByContractIds(tradeContractIds);
|
|
|
|
|
+ Map<Long, KwcContractTradeGoods> goodsIdAndGoodsMap = Maps.newHashMap();
|
|
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(tradeGoods)){
|
|
|
|
|
+ goodsIdAndGoodsMap = tradeGoods.stream().collect(Collectors.toMap(KwcContractTradeGoods::getGoodsId,Function.identity(), (v1, v2) -> v1));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
Map<Long, KwcContractTrade> finalPidIdAndTradeMap = pidIdAndTradeMap;
|
|
Map<Long, KwcContractTrade> finalPidIdAndTradeMap = pidIdAndTradeMap;
|
|
|
Map<String, KwcContractTradeUnit> finalContractUnitTypeKeyAndUnitMap = contractUnitTypeKeyAndUnitMap;
|
|
Map<String, KwcContractTradeUnit> finalContractUnitTypeKeyAndUnitMap = contractUnitTypeKeyAndUnitMap;
|
|
|
|
|
+ Map<Long, RWaybillSubOrderVo> finalTradeOrderIdAndWaybillMap = tradeOrderIdAndWaybillMap;
|
|
|
|
|
+ Map<Long, TradeOrderContractVo> finalContractIdAndContractMap = contractIdAndContractMap;
|
|
|
|
|
+ Map<Long, KwcContractTradeGoods> finalGoodsIdAndGoodsMap = goodsIdAndGoodsMap;
|
|
|
List<QueryListResVo> queryListResVos = records.stream()
|
|
List<QueryListResVo> queryListResVos = records.stream()
|
|
|
- .map(t -> getQueryListResVo(t, finalContractUnitTypeKeyAndUnitMap, finalPidIdAndTradeMap, longUserCacheResDtoMap))
|
|
|
|
|
|
|
+ .map(t -> getQueryListResVo(t, finalContractUnitTypeKeyAndUnitMap, finalPidIdAndTradeMap, longUserCacheResDtoMap,
|
|
|
|
|
+ finalTradeOrderIdAndWaybillMap, finalContractIdAndContractMap, finalGoodsIdAndGoodsMap))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getPurchaseEntId())){
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(req.getPurchaseEntId())){
|
|
|
queryListResVos = queryListResVos.stream()
|
|
queryListResVos = queryListResVos.stream()
|
|
@@ -1606,7 +1588,13 @@ public class KwcContractTradeService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@NotNull
|
|
@NotNull
|
|
|
- private static QueryListResVo getQueryListResVo(KwcContractTrade t, Map<String, KwcContractTradeUnit> finalContractUnitTypeKeyAndUnitMap, Map<Long, KwcContractTrade> finalPidIdAndTradeMap, Map<Long, UserCacheResDto> longUserCacheResDtoMap) {
|
|
|
|
|
|
|
+ private static QueryListResVo getQueryListResVo(KwcContractTrade t,
|
|
|
|
|
+ Map<String, KwcContractTradeUnit> finalContractUnitTypeKeyAndUnitMap,
|
|
|
|
|
+ Map<Long, KwcContractTrade> finalPidIdAndTradeMap,
|
|
|
|
|
+ Map<Long, UserCacheResDto> longUserCacheResDtoMap,
|
|
|
|
|
+ Map<Long, RWaybillSubOrderVo> tradeOrderIdAndWaybillMap,
|
|
|
|
|
+ Map<Long, TradeOrderContractVo> contractIdAndContractMap,
|
|
|
|
|
+ Map<Long, KwcContractTradeGoods> goodsIdAndGoodsMap) {
|
|
|
QueryListResVo queryListResVo = new QueryListResVo();
|
|
QueryListResVo queryListResVo = new QueryListResVo();
|
|
|
queryListResVo.setId(t.getId());
|
|
queryListResVo.setId(t.getId());
|
|
|
queryListResVo.setStatus(t.getStatus());
|
|
queryListResVo.setStatus(t.getStatus());
|
|
@@ -1630,17 +1618,31 @@ public class KwcContractTradeService {
|
|
|
queryListResVo.setUnloadWayName(DictEnum.getLabel(DictTypeEnum.LOAD_UNLOAD_WAY.getType(),
|
|
queryListResVo.setUnloadWayName(DictEnum.getLabel(DictTypeEnum.LOAD_UNLOAD_WAY.getType(),
|
|
|
String.valueOf(t.getUnloadWay())));
|
|
String.valueOf(t.getUnloadWay())));
|
|
|
queryListResVo.setAmount(t.getAmount());
|
|
queryListResVo.setAmount(t.getAmount());
|
|
|
- queryListResVo.setPerformedAmount(t.getPerformedAmount());
|
|
|
|
|
-
|
|
|
|
|
- // queryListResVo.setPerformedAmountMoney();
|
|
|
|
|
|
|
+ TradeOrderContractVo tradeOrderContractVo = contractIdAndContractMap.getOrDefault(t.getId(), new TradeOrderContractVo());
|
|
|
|
|
+ RWaybillSubOrderVo subOrderVo = tradeOrderIdAndWaybillMap.getOrDefault(tradeOrderContractVo.getTOrderId(), new RWaybillSubOrderVo());
|
|
|
|
|
+ List<RWaybillSubOrderVo.BillSubOrder> subOrders = subOrderVo.getSubOrders();
|
|
|
|
|
+ BigDecimal unloadQty = BigDecimal.ZERO;
|
|
|
|
|
+ BigDecimal performedAmountMoney = BigDecimal.ZERO;
|
|
|
|
|
+ if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(subOrders)){
|
|
|
|
|
+ unloadQty = subOrders.stream()
|
|
|
|
|
+ .map(RWaybillSubOrderVo.BillSubOrder::getUnloadAmount)
|
|
|
|
|
+ .filter(Objects::nonNull)
|
|
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ performedAmountMoney = subOrders.stream()
|
|
|
|
|
+ .filter(x -> Objects.nonNull(x.getUnloadAmount()))
|
|
|
|
|
+ .map(x -> {
|
|
|
|
|
+ KwcContractTradeGoods orDefault = goodsIdAndGoodsMap.getOrDefault(x.getGoodId(), new KwcContractTradeGoods());
|
|
|
|
|
+ BigDecimal price = Optional.ofNullable(orDefault).map(KwcContractTradeGoods::getPrice).orElse(BigDecimal.ZERO);
|
|
|
|
|
+ return x.getUnloadAmount().multiply(price);
|
|
|
|
|
+ }).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
+ }
|
|
|
|
|
+ queryListResVo.setPerformedAmount(unloadQty.setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
+
|
|
|
|
|
+ queryListResVo.setPerformedAmountMoney(performedAmountMoney.setScale(2, RoundingMode.HALF_UP));
|
|
|
queryListResVo.setContractPid(t.getContractPid());
|
|
queryListResVo.setContractPid(t.getContractPid());
|
|
|
KwcContractTrade parentTrade = finalPidIdAndTradeMap.getOrDefault(t.getContractPid(),
|
|
KwcContractTrade parentTrade = finalPidIdAndTradeMap.getOrDefault(t.getContractPid(),
|
|
|
new KwcContractTrade());
|
|
new KwcContractTrade());
|
|
|
queryListResVo.setContractPname(parentTrade.getName());
|
|
queryListResVo.setContractPname(parentTrade.getName());
|
|
|
-
|
|
|
|
|
-// queryListResVo.setChargingName();
|
|
|
|
|
-// queryListResVo.setTradingName();
|
|
|
|
|
-// queryListResVo.setCarrierEntName();
|
|
|
|
|
UserCacheResDto userCacheResDto = longUserCacheResDtoMap.getOrDefault(t.getCreateBy(), new UserCacheResDto());
|
|
UserCacheResDto userCacheResDto = longUserCacheResDtoMap.getOrDefault(t.getCreateBy(), new UserCacheResDto());
|
|
|
queryListResVo.setInitiateName(userCacheResDto.getName());
|
|
queryListResVo.setInitiateName(userCacheResDto.getName());
|
|
|
if (Objects.nonNull(userCacheResDto.getEntInfo())){
|
|
if (Objects.nonNull(userCacheResDto.getEntInfo())){
|