|
|
@@ -26,7 +26,6 @@ import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
import org.springblade.los.Util.BoxNumUtils;
|
|
|
import org.springblade.los.Util.CurrencyUtils;
|
|
|
-import org.springblade.los.Util.MagicValues;
|
|
|
import org.springblade.los.basic.business.entity.BusinessType;
|
|
|
import org.springblade.los.basic.business.service.IBusinessTypeService;
|
|
|
import org.springblade.los.basic.cur.entity.BCurExrate;
|
|
|
@@ -2756,9 +2755,9 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
|
|
|
feeCenterItems.setAccountYear(year);
|
|
|
feeCenterItems.setAccountMonth(month);
|
|
|
feeCenterItems.setAccountDay(day);
|
|
|
- feeCenterItems.setCorpId(tradingBox.getPurchaseCompanyId());
|
|
|
- feeCenterItems.setCorpCnName(tradingBox.getPurchaseCompanyName());
|
|
|
- feeCenterItems.setCorpEnName(tradingBox.getPurchaseCompanyName());
|
|
|
+ feeCenterItems.setCorpId(detail.getPurchaseCompanyId());
|
|
|
+ feeCenterItems.setCorpCnName(detail.getPurchaseCompanyName());
|
|
|
+ feeCenterItems.setCorpEnName(detail.getPurchaseCompanyName());
|
|
|
feeCenterItems.setPolId(tradingBox.getPolId());
|
|
|
feeCenterItems.setPolCode(tradingBox.getPolCode());
|
|
|
feeCenterItems.setPolCnName(tradingBox.getPolCname());
|
|
|
@@ -2882,10 +2881,9 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
|
|
|
tradingBoxFeesLambdaQueryWrapper.eq(FeeCenterItems::getIsDeleted, 0)
|
|
|
.eq(FeeCenterItems::getPid, tradingBox.getId())
|
|
|
.eq(FeeCenterItems::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenterItems::getFeeCode, "BOX-ZJ")
|
|
|
+ .eq(FeeCenterItems::getFeeCode, "PerDiem")
|
|
|
.orderByDesc(FeeCenterItems::getCreateTime);
|
|
|
- List<FeeCenterItems> feeCenterItemsList = feeCenterItemsService.list(tradingBoxFeesLambdaQueryWrapper);
|
|
|
- List<FeeCenterItems> feeCenterItems = feeCenterItemsList.stream().filter(e -> e.getFeeCode().equals("BOX-ZJ")).collect(Collectors.toList());
|
|
|
+ List<FeeCenterItems> feeCenterItems = feeCenterItemsService.list(tradingBoxFeesLambdaQueryWrapper);
|
|
|
List<TradingBoxItem> itemList = new ArrayList<>();
|
|
|
for (TradingBoxItem item : tradingBoxItemList) {
|
|
|
if (ObjectUtils.isNull(item.getRentStartDate())) {
|
|
|
@@ -2931,10 +2929,10 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
|
|
|
.eq(FeeCenter::getIsDeleted, 0)
|
|
|
.eq(FeeCenter::getPid, detail.getId()));
|
|
|
List<FeeCenter> feeCenterList = new ArrayList<>();
|
|
|
- List<String> boxCodeList = tradingBox.getFeeCenterItemsList().stream().map(FeeCenterItems::getCntrNo).filter(Objects::nonNull)
|
|
|
+ List<String> boxCodeList = tradingBox.getFeeCenterItemsList().stream().map(FeeCenterItems::getUnitNo).filter(Objects::nonNull)
|
|
|
.distinct().collect(Collectors.toList());
|
|
|
for (String item : boxCodeList) {
|
|
|
- FeeCenterItems centerItems = tradingBox.getFeeCenterItemsList().stream().filter(e -> e.getCntrNo().equals(item))
|
|
|
+ FeeCenterItems centerItems = tradingBox.getFeeCenterItemsList().stream().filter(e -> e.getUnitNo().equals(item))
|
|
|
.collect(Collectors.toList()).get(0);
|
|
|
FeeCenter feeCenter = new FeeCenter();
|
|
|
feeCenter.setBillType("箱东");
|
|
|
@@ -2960,9 +2958,10 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
|
|
|
feeCenter.setStorageDate(centerItems.getStorageDate());
|
|
|
feeCenter.setDays(centerItems.getDays());
|
|
|
feeCenter.setExrate(centerItems.getExrate());
|
|
|
- feeCenter.setAmount(centerItems.getAmount());
|
|
|
+ feeCenter.setPrice(tradingBox.getFeeCenterItemsList().stream().filter(e -> e.getUnitNo().equals(item))
|
|
|
+ .map(FeeCenterItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ feeCenter.setAmount(feeCenter.getPrice());
|
|
|
feeCenter.setAmountLoc(centerItems.getAmount().multiply(feeCenter.getExrate()));
|
|
|
- feeCenter.setPrice(centerItems.getAmount());
|
|
|
feeCenter.setRemarks(centerItems.getRemarks());
|
|
|
feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
feeCenter.setOutboundDate(tradingBox.getRentDate());
|
|
|
@@ -3049,4 +3048,79 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
|
|
|
return R.data(tradingBox);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R revokeMergeGenerateCost(TradingBox tradingBox) {
|
|
|
+ if (tradingBox.getId() == null || ObjectUtils.isNull(tradingBox.getFeeCenterItemsList()) || tradingBox.getFeeCenterItemsList().isEmpty()) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ TradingBox detail = baseMapper.selectById(tradingBox.getId());
|
|
|
+ List<Long> idList = tradingBox.getFeeCenterItemsList().stream().map(FeeCenterItems::getFeeCenterId).distinct().collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .eq(FeeCenter::getPid, detail.getId())
|
|
|
+ .in(FeeCenter::getId, idList));
|
|
|
+ if (feeCenters.isEmpty()) {
|
|
|
+ throw new RuntimeException("未查到费用明细");
|
|
|
+ }
|
|
|
+ feeCenterService.removeByIds(feeCenters.stream().map(FeeCenter::getId).collect(Collectors.toList()));
|
|
|
+ //费用数据
|
|
|
+ BigDecimal amountD = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountC = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountDUsd = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountCUsd = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountDrLoc = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountCrLoc = new BigDecimal("0.00");
|
|
|
+ String exrateType = currencyUtils.standardCurrency(AuthUtil.getDeptId());
|
|
|
+ List<BCurExrate> curExrateList = currencyUtils.obtainRate(new Date(), "1", AuthUtil.getDeptId());
|
|
|
+ for (FeeCenter item : feeCenters) {
|
|
|
+ item.setAmountLoc(item.getAmount().multiply(item.getExrate()));
|
|
|
+ if (exrateType.equals(item.getCurCode())) {
|
|
|
+ if ("D".equals(item.getDc())) {
|
|
|
+ amountD = amountD.add(item.getAmount());
|
|
|
+ amountDrLoc = amountDrLoc.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ amountC = amountC.add(item.getAmount());
|
|
|
+ amountCrLoc = amountCrLoc.add(item.getAmount());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if ("D".equals(item.getDc())) {
|
|
|
+ amountDUsd = amountDUsd.add(item.getAmount());
|
|
|
+ amountDrLoc = amountDrLoc.add(item.getAmountLoc());
|
|
|
+ } else {
|
|
|
+ amountCUsd = amountCUsd.add(item.getAmount());
|
|
|
+ amountCrLoc = amountCrLoc.add(item.getAmountLoc());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ detail.setAmountD(detail.getAmountD().subtract(amountD));
|
|
|
+ detail.setAmountDUsd(detail.getAmountDUsd().subtract(amountDUsd));
|
|
|
+ detail.setTotalAmountD(detail.getTotalAmountD().subtract(amountDrLoc));
|
|
|
+ detail.setAmountC(detail.getAmountC().subtract(amountC));
|
|
|
+ detail.setAmountCUsd(detail.getAmountCUsd().subtract(amountCUsd));
|
|
|
+ detail.setTotalAmountC(detail.getTotalAmountC().subtract(amountCrLoc));
|
|
|
+ detail.setProfit(detail.getAmountD().subtract(detail.getAmountC()));
|
|
|
+ detail.setProfitUsd(detail.getAmountDUsd().subtract(detail.getAmountCUsd()));
|
|
|
+ detail.setTotalProfit(detail.getTotalAmountD().subtract(detail.getTotalAmountC()));
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ List<FeeCenterItems> feeCenterItemsList = new ArrayList<>();
|
|
|
+ List<FeeCenterItems> feeCenterItems = feeCenterItemsService.list(new LambdaQueryWrapper<FeeCenterItems>()
|
|
|
+ .eq(FeeCenterItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenterItems::getIsDeleted, 0)
|
|
|
+ .in(FeeCenterItems::getFeeCenterId, idList)
|
|
|
+ .eq(FeeCenterItems::getWhetherGenerateCost, "1"));
|
|
|
+ for (FeeCenterItems centerItems : feeCenterItems) {
|
|
|
+ centerItems.setUpdateTime(new Date());
|
|
|
+ centerItems.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ centerItems.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ centerItems.setWhetherGenerateCost("0");
|
|
|
+ centerItems.setFeeCenterId(0L);
|
|
|
+ feeCenterItemsList.add(centerItems);
|
|
|
+ }
|
|
|
+ if (!feeCenterItemsList.isEmpty()) {
|
|
|
+ feeCenterItemsService.updateBatchById(feeCenterItemsList);
|
|
|
+ }
|
|
|
+ return R.data(tradingBox);
|
|
|
+ }
|
|
|
+
|
|
|
}
|