|
@@ -1232,8 +1232,15 @@ public class KwcContractLogisticsService {
|
|
|
queryLogisticListResp.setCarriageUnit(String.valueOf(carriageUnit.getEntId()));
|
|
queryLogisticListResp.setCarriageUnit(String.valueOf(carriageUnit.getEntId()));
|
|
|
queryLogisticListResp.setCarriageUnitName(carriageUnit.getFirmName());
|
|
queryLogisticListResp.setCarriageUnitName(carriageUnit.getFirmName());
|
|
|
}
|
|
}
|
|
|
- queryLogisticListResp.setContractType(r.getTransportBizType());
|
|
|
|
|
- queryLogisticListResp.setContractTypeDesc(LogisticsTransportBizTypeEnum.getLabelByCode(r.getTransportBizType()));
|
|
|
|
|
|
|
+ if (Objects.nonNull(viewerEntId)) {
|
|
|
|
|
+ if (Objects.nonNull(logisticsUnit) && Objects.equals(viewerEntId, logisticsUnit.getEntId())) {
|
|
|
|
|
+ queryLogisticListResp.setContractType(1);
|
|
|
|
|
+ queryLogisticListResp.setContractTypeDesc("托运合同");
|
|
|
|
|
+ } else if (Objects.nonNull(carriageUnit) && Objects.equals(viewerEntId, carriageUnit.getEntId())) {
|
|
|
|
|
+ queryLogisticListResp.setContractType(2);
|
|
|
|
|
+ queryLogisticListResp.setContractTypeDesc("承运合同");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
queryLogisticListResp.setContractCode(r.getContractNo());
|
|
queryLogisticListResp.setContractCode(r.getContractNo());
|
|
|
queryLogisticListResp.setContractName(r.getName());
|
|
queryLogisticListResp.setContractName(r.getName());
|
|
@@ -1347,7 +1354,8 @@ public class KwcContractLogisticsService {
|
|
|
if(Objects.equals(baseInfo.getSettlement(),1)){
|
|
if(Objects.equals(baseInfo.getSettlement(),1)){
|
|
|
throw new BusinessException("暂不支持普通结算模式");
|
|
throw new BusinessException("暂不支持普通结算模式");
|
|
|
}
|
|
}
|
|
|
- int transportBizType = resolveTransportBizType(req.getTransportBizType());
|
|
|
|
|
|
|
+ int transportBizType = resolveTransportBizType(baseInfo);
|
|
|
|
|
+ baseInfo.setTransportBizType(transportBizType);
|
|
|
validateLogisticsContractBiz(req, transportBizType);
|
|
validateLogisticsContractBiz(req, transportBizType);
|
|
|
if (Objects.nonNull(req.getId())){
|
|
if (Objects.nonNull(req.getId())){
|
|
|
saveContractLogistics.setId(req.getId());
|
|
saveContractLogistics.setId(req.getId());
|
|
@@ -1399,7 +1407,7 @@ public class KwcContractLogisticsService {
|
|
|
saveContractLogistics.setTransportBizType(transportBizType);
|
|
saveContractLogistics.setTransportBizType(transportBizType);
|
|
|
if (LogisticsTransportBizTypeEnum.isRawOreTransfer(transportBizType)) {
|
|
if (LogisticsTransportBizTypeEnum.isRawOreTransfer(transportBizType)) {
|
|
|
saveContractLogistics.setCommonPrice(null);
|
|
saveContractLogistics.setCommonPrice(null);
|
|
|
- saveContractLogistics.setAllowedError(req.getAllowedError().setScale(4, RoundingMode.HALF_UP));
|
|
|
|
|
|
|
+ saveContractLogistics.setAllowedError(baseInfo.getAllowedError().setScale(4, RoundingMode.HALF_UP));
|
|
|
} else {
|
|
} else {
|
|
|
saveContractLogistics.setCommonPrice(baseInfo.getCommonPrice());
|
|
saveContractLogistics.setCommonPrice(baseInfo.getCommonPrice());
|
|
|
saveContractLogistics.setAllowedError(null);
|
|
saveContractLogistics.setAllowedError(null);
|
|
@@ -1422,27 +1430,28 @@ public class KwcContractLogisticsService {
|
|
|
return Boolean.TRUE;
|
|
return Boolean.TRUE;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private static int resolveTransportBizType(Integer transportBizType) {
|
|
|
|
|
- if (transportBizType == null) {
|
|
|
|
|
|
|
+ private static int resolveTransportBizType(LogisticListReq.TradeBaseInfo baseInfo) {
|
|
|
|
|
+ Integer t = baseInfo.getTransportBizType();
|
|
|
|
|
+ if (t == null) {
|
|
|
return LogisticsTransportBizTypeEnum.TRADE_TRANSPORT.getCode();
|
|
return LogisticsTransportBizTypeEnum.TRADE_TRANSPORT.getCode();
|
|
|
}
|
|
}
|
|
|
- if (!Objects.equals(transportBizType, LogisticsTransportBizTypeEnum.TRADE_TRANSPORT.getCode())
|
|
|
|
|
- && !Objects.equals(transportBizType, LogisticsTransportBizTypeEnum.RAW_ORE_TRANSFER.getCode())) {
|
|
|
|
|
|
|
+ if (!Objects.equals(t, LogisticsTransportBizTypeEnum.TRADE_TRANSPORT.getCode())
|
|
|
|
|
+ && !Objects.equals(t, LogisticsTransportBizTypeEnum.RAW_ORE_TRANSFER.getCode())) {
|
|
|
throw new BusinessException("合同类型无效,请选择贸易运输或原矿转运");
|
|
throw new BusinessException("合同类型无效,请选择贸易运输或原矿转运");
|
|
|
}
|
|
}
|
|
|
- return transportBizType;
|
|
|
|
|
|
|
+ return t;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void validateLogisticsContractBiz(LogisticListReq req, int transportBizType) {
|
|
private void validateLogisticsContractBiz(LogisticListReq req, int transportBizType) {
|
|
|
LogisticListReq.TradeBaseInfo baseInfo = req.getBaseInfo();
|
|
LogisticListReq.TradeBaseInfo baseInfo = req.getBaseInfo();
|
|
|
if (LogisticsTransportBizTypeEnum.isRawOreTransfer(transportBizType)) {
|
|
if (LogisticsTransportBizTypeEnum.isRawOreTransfer(transportBizType)) {
|
|
|
- if (req.getAllowedError() == null) {
|
|
|
|
|
|
|
+ if (baseInfo.getAllowedError() == null) {
|
|
|
throw new BusinessException("原矿转运合同须填写允许误差");
|
|
throw new BusinessException("原矿转运合同须填写允许误差");
|
|
|
}
|
|
}
|
|
|
- if (req.getAllowedError().compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
|
|
|
|
+ if (baseInfo.getAllowedError().compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
throw new BusinessException("允许误差须大于0");
|
|
throw new BusinessException("允许误差须大于0");
|
|
|
}
|
|
}
|
|
|
- if (req.getAllowedError().compareTo(new BigDecimal("1000")) > 0) {
|
|
|
|
|
|
|
+ if (baseInfo.getAllowedError().compareTo(new BigDecimal("1000")) > 0) {
|
|
|
throw new BusinessException("允许误差不能超过1000‰");
|
|
throw new BusinessException("允许误差不能超过1000‰");
|
|
|
}
|
|
}
|
|
|
if (baseInfo.getCommonPrice() != null && baseInfo.getCommonPrice().compareTo(BigDecimal.ZERO) > 0) {
|
|
if (baseInfo.getCommonPrice() != null && baseInfo.getCommonPrice().compareTo(BigDecimal.ZERO) > 0) {
|
|
@@ -1510,14 +1519,14 @@ public class KwcContractLogisticsService {
|
|
|
throw new BusinessException("商品不能重复");
|
|
throw new BusinessException("商品不能重复");
|
|
|
}
|
|
}
|
|
|
List<KwcContractLogisticsGoods> goods = goodsInfos.stream()
|
|
List<KwcContractLogisticsGoods> goods = goodsInfos.stream()
|
|
|
- .map(x -> getKwcContractLogisticsGoods(x, contactId,baseInfo,req.getTransportBizType()))
|
|
|
|
|
|
|
+ .map(x -> getKwcContractLogisticsGoods(x, contactId,baseInfo))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
kwcContractLogisticsGoodsRepository.saveLogisticsGoods(goods);
|
|
kwcContractLogisticsGoodsRepository.saveLogisticsGoods(goods);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@NotNull
|
|
@NotNull
|
|
|
private static KwcContractLogisticsGoods getKwcContractLogisticsGoods(LogisticListReq.TradeGoodsInfo x,
|
|
private static KwcContractLogisticsGoods getKwcContractLogisticsGoods(LogisticListReq.TradeGoodsInfo x,
|
|
|
- long contactId,LogisticListReq.TradeBaseInfo baseInfo,Integer transportBizType) {
|
|
|
|
|
|
|
+ long contactId,LogisticListReq.TradeBaseInfo baseInfo) {
|
|
|
KwcContractLogisticsGoods logisticsGoods = new KwcContractLogisticsGoods();
|
|
KwcContractLogisticsGoods logisticsGoods = new KwcContractLogisticsGoods();
|
|
|
Date date1 = new Date();
|
|
Date date1 = new Date();
|
|
|
logisticsGoods.setContractId(contactId);
|
|
logisticsGoods.setContractId(contactId);
|
|
@@ -1526,7 +1535,7 @@ public class KwcContractLogisticsService {
|
|
|
logisticsGoods.setSkuId(0L);
|
|
logisticsGoods.setSkuId(0L);
|
|
|
logisticsGoods.setAmount(x.getAmount());
|
|
logisticsGoods.setAmount(x.getAmount());
|
|
|
logisticsGoods.setUnit(x.getUnit());
|
|
logisticsGoods.setUnit(x.getUnit());
|
|
|
- if (LogisticsTransportBizTypeEnum.isRawOreTransfer(transportBizType)) {
|
|
|
|
|
|
|
+ if (LogisticsTransportBizTypeEnum.isRawOreTransfer(baseInfo.getTransportBizType())) {
|
|
|
logisticsGoods.setPrice(null);
|
|
logisticsGoods.setPrice(null);
|
|
|
} else if (Objects.isNull(x.getPrice())) {
|
|
} else if (Objects.isNull(x.getPrice())) {
|
|
|
logisticsGoods.setPrice(Objects.nonNull(baseInfo.getCommonPrice())? baseInfo.getCommonPrice().setScale(2,
|
|
logisticsGoods.setPrice(Objects.nonNull(baseInfo.getCommonPrice())? baseInfo.getCommonPrice().setScale(2,
|
|
@@ -1675,9 +1684,9 @@ public class KwcContractLogisticsService {
|
|
|
if (transportBizType == null) {
|
|
if (transportBizType == null) {
|
|
|
transportBizType = LogisticsTransportBizTypeEnum.TRADE_TRANSPORT.getCode();
|
|
transportBizType = LogisticsTransportBizTypeEnum.TRADE_TRANSPORT.getCode();
|
|
|
}
|
|
}
|
|
|
- queryLogisticListResp.setTransportBizType(transportBizType);
|
|
|
|
|
- queryLogisticListResp.setTransportBizTypeDesc(LogisticsTransportBizTypeEnum.getLabelByCode(transportBizType));
|
|
|
|
|
- queryLogisticListResp.setAllowedError(logistics.getAllowedError());
|
|
|
|
|
|
|
+ tradeBaseInfo.setTransportBizType(transportBizType);
|
|
|
|
|
+ tradeBaseInfo.setTransportBizTypeDesc(LogisticsTransportBizTypeEnum.getLabelByCode(transportBizType));
|
|
|
|
|
+ tradeBaseInfo.setAllowedError(logistics.getAllowedError());
|
|
|
|
|
|
|
|
BigDecimal commonPrice = logistics.getCommonPrice();
|
|
BigDecimal commonPrice = logistics.getCommonPrice();
|
|
|
tradeBaseInfo.setCommonPrice(commonPrice != null && commonPrice.compareTo(BigDecimal.ZERO) == 0 ? null : commonPrice);
|
|
tradeBaseInfo.setCommonPrice(commonPrice != null && commonPrice.compareTo(BigDecimal.ZERO) == 0 ? null : commonPrice);
|