|
|
@@ -1259,9 +1259,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.in(Bills::getId, idArr));
|
|
|
for (Bills item : billsList) {
|
|
|
- /* if (!item.getQuantity().equals(item.getCfsQuantity())) {
|
|
|
- throw new RuntimeException("分单号:" + item.getBillNo() + "请先配箱后再操作");
|
|
|
- }*/
|
|
|
if (ObjectUtils.isNotNull(item.getMasterId()) && item.getMasterId() != 0) {
|
|
|
throw new RuntimeException("分单号:" + item.getBillNo() + "已添加主单,请勿重复添加");
|
|
|
}
|
|
|
@@ -1349,46 +1346,19 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
}
|
|
|
this.updateBatchById(billsList);
|
|
|
- /*BigDecimal amountDr = bills.getAmountDr();
|
|
|
- BigDecimal amountCr = bills.getAmountCr();
|
|
|
- BigDecimal amountProfit = bills.getAmountProfit();
|
|
|
- BigDecimal amountDrUsd = bills.getAmountDrUsd();
|
|
|
- BigDecimal amountCrUsd = bills.getAmountCrUsd();
|
|
|
- BigDecimal amountProfitUsd = bills.getAmountProfitUsd();
|
|
|
- BigDecimal amountDrLoc = bills.getAmountDrLoc();
|
|
|
- BigDecimal amountCrLoc = bills.getAmountCrLoc();
|
|
|
- BigDecimal amountProfitLoc = bills.getAmountProfitLoc();*/
|
|
|
Integer teuTotal = bills.getTeuTotal();
|
|
|
String marks = "";
|
|
|
String commodityDescr = "";
|
|
|
if (!billsList.isEmpty()) {
|
|
|
- /*amountDr = amountDr.add(billsList.stream().map(Bills::getAmountDr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCr = amountCr.add(billsList.stream().map(Bills::getAmountCr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountProfit = amountProfit.add(billsList.stream().map(Bills::getAmountProfit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountDrUsd = amountDrUsd.add(billsList.stream().map(Bills::getAmountDrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrUsd = amountCrUsd.add(billsList.stream().map(Bills::getAmountCrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountProfitUsd = amountProfitUsd.add(billsList.stream().map(Bills::getAmountProfitUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountDrLoc = amountDrLoc.add(billsList.stream().map(Bills::getAmountDrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrLoc = amountCrLoc.add(billsList.stream().map(Bills::getAmountCrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountProfitLoc = amountProfitLoc.add(billsList.stream().map(Bills::getAmountProfitLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));*/
|
|
|
teuTotal = teuTotal + billsList.stream().map(Bills::getTeu).filter(Objects::nonNull).reduce(0, Integer::sum);
|
|
|
grossWeight = grossWeight.add(billsList.stream().map(Bills::getGrossWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
quantity = quantity.add(billsList.stream().map(Bills::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
measurement = measurement.add(billsList.stream().map(Bills::getMeasurement).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
marks = billsList.stream().map(Bills::getMarks).filter(Objects::nonNull).collect(Collectors.joining("&|&"));
|
|
|
commodityDescr = billsList.stream().map(Bills::getCommodityDescr).filter(Objects::nonNull).collect(Collectors.joining("&|&"));
|
|
|
- this.itemCopy(bills, billsList);
|
|
|
+ this.itemCopy(bills, billsList,false);
|
|
|
}
|
|
|
bills.setTeuTotal(teuTotal);
|
|
|
- /*bills.setAmountDr(amountDr);
|
|
|
- bills.setAmountCr(amountCr);
|
|
|
- bills.setAmountProfit(amountProfit);
|
|
|
- bills.setAmountDrUsd(amountDrUsd);
|
|
|
- bills.setAmountCrUsd(amountCrUsd);
|
|
|
- bills.setAmountProfitUsd(amountProfitUsd);
|
|
|
- bills.setAmountDrLoc(amountDrLoc);
|
|
|
- bills.setAmountCrLoc(amountCrLoc);
|
|
|
- bills.setAmountProfitLoc(amountProfitLoc);*/
|
|
|
bills.setGrossWeight(grossWeight);
|
|
|
bills.setQuantity(quantity);
|
|
|
bills.setMeasurement(measurement);
|
|
|
@@ -1405,12 +1375,31 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
return R.data("操作成功");
|
|
|
}
|
|
|
|
|
|
- private void itemCopy(Bills bills, List<Bills> billsList) {
|
|
|
+ private void itemCopy(Bills bills, List<Bills> billsList,boolean status) {
|
|
|
List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
|
|
|
.eq(Containers::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Containers::getIsDeleted, 0)
|
|
|
.in(Containers::getPid, billsList.stream().map(Bills::getId).collect(Collectors.toList())));
|
|
|
if (!containersList.isEmpty()) {
|
|
|
+ StringBuilder hblno = new StringBuilder();
|
|
|
+ for (Bills item : billsList) {
|
|
|
+ List<Containers> containers = containersList.stream().filter(e -> e.getPid().equals(item.getId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (containers.isEmpty()) {
|
|
|
+ hblno.append(item.getHblno()).append(",");
|
|
|
+ } else {
|
|
|
+ BigDecimal quantity = containers.stream().map(Containers::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal grossWeight = containers.stream().map(Containers::getGrossWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal measurement = containers.stream().map(Containers::getMeasurement).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (quantity.compareTo(new BigDecimal("0.00")) == 0 && grossWeight.compareTo(new BigDecimal("0.00")) == 0 &&
|
|
|
+ measurement.compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
+ hblno.append(item.getHblno()).append(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (status && ObjectUtils.isNotNull(hblno.toString())) {
|
|
|
+ throw new RuntimeException("分单号:" + hblno + "未分配件重尺,同步失败");
|
|
|
+ }
|
|
|
for (Containers item : containersList) {
|
|
|
item.setMblno(bills.getMblno());
|
|
|
}
|
|
|
@@ -1485,6 +1474,11 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
containersBillsService.saveBatch(containersBillsListNew);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ if (status){
|
|
|
+ throw new RuntimeException("分单号:" + billsList.stream().map(Bills::getHblno).collect(Collectors.joining(","))
|
|
|
+ + "未分配件重尺,同步失败");
|
|
|
+ }
|
|
|
}
|
|
|
List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
@@ -1593,6 +1587,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
for (Bills item : billsList) {
|
|
|
item.setEta(bills.getEta());
|
|
|
item.setActualEta(bills.getActualEta());
|
|
|
+
|
|
|
}
|
|
|
if (!billsList.isEmpty()) {
|
|
|
this.updateBatchById(billsList);
|
|
|
@@ -4969,24 +4964,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
Bills bills = baseMapper.selectById(billId);
|
|
|
if (bills != null) {
|
|
|
- /*if (3 == bills.getBillStatus()) {
|
|
|
- throw new RuntimeException("主单已完成,操作失败");
|
|
|
- }
|
|
|
- if (1 == bills.getBillStatus()) {
|
|
|
- throw new RuntimeException("主单已退舱,操作失败");
|
|
|
- }
|
|
|
- if (bills.getStatus() > 0 && bills.getStatus() < 3) {
|
|
|
- throw new RuntimeException("主单提交请核,操作失败");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNull(bills.getMblno())) {
|
|
|
- throw new RuntimeException("主单提单号不能为空,操作失败");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNull(bills.getPodId())) {
|
|
|
- throw new RuntimeException("卸货港不能为空,操作失败");
|
|
|
- }
|
|
|
- if (ObjectUtils.isNull(bills.getPolId())) {
|
|
|
- throw new RuntimeException("装货港不能为空,操作失败");
|
|
|
- }*/
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
@@ -5011,7 +4988,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
measurement = measurement.add(billsList.stream().map(Bills::getMeasurement).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
marks = billsList.stream().map(Bills::getMarks).filter(Objects::nonNull).collect(Collectors.joining("&|&"));
|
|
|
commodityDescr = billsList.stream().map(Bills::getCommodityDescr).filter(Objects::nonNull).collect(Collectors.joining("&|&"));
|
|
|
- this.itemCopy(bills, billsList);
|
|
|
+ this.itemCopy(bills, billsList,true);
|
|
|
}
|
|
|
bills.setTeuTotal(teuTotal);
|
|
|
bills.setGrossWeight(grossWeight);
|
|
|
@@ -5385,10 +5362,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R submitConfirm(Bills bills) throws Exception {
|
|
|
Bills billsFd = baseMapper.selectOne(new LambdaQueryWrapper<Bills>()
|
|
|
- .eq(Bills::getTenantId,AuthUtil.getTenantId())
|
|
|
- .eq(Bills::getIsDeleted,0)
|
|
|
- .eq(Bills::getTemporaryId,bills.getId()));
|
|
|
- if (billsFd != null){
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getTemporaryId, bills.getId()));
|
|
|
+ if (billsFd != null) {
|
|
|
if (ObjectUtils.isNotNull(billsFd.getCyTrailerTime()) && billsFd.getCyTrailerTime().compareTo(new Date()) < 0) {
|
|
|
throw new RuntimeException("当前时间已超过截单日期,不允许修改");
|
|
|
}
|
|
|
@@ -5549,6 +5526,62 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
return R.data(bills);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<String> cntrTypeList(Long billId) {
|
|
|
+ return baseMapper.cntrTypeList(billId + "");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R synchronizeDataMM(Long billId) {
|
|
|
+ if (ObjectUtils.isNull(billId)) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills bills = baseMapper.selectById(billId);
|
|
|
+ if (bills != null) {
|
|
|
+ List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getMasterId, billId));
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
+ item.setEtd(bills.getEtd());
|
|
|
+ item.setEta(bills.getEta());
|
|
|
+ item.setActualEta(bills.getActualEta());
|
|
|
+ item.setActualEtd(bills.getActualEtd());
|
|
|
+ item.setVesselId(bills.getVesselId());
|
|
|
+ item.setVesselCnName(bills.getVesselCnName());
|
|
|
+ item.setVesselEnName(bills.getVesselEnName());
|
|
|
+ item.setVoyageNo(bills.getVoyageNo());
|
|
|
+ item.setCarrierId(bills.getCarrierId());
|
|
|
+ item.setCarrierCnName(bills.getCarrierCnName());
|
|
|
+ item.setCarrierEnName(bills.getCarrierEnName());
|
|
|
+ item.setIssueDate(bills.getIssueDate());
|
|
|
+ item.setBranchId(bills.getBranchId());
|
|
|
+ item.setBranchName(bills.getBranchName());
|
|
|
+ item.setHpaymode(bills.getHpaymode());
|
|
|
+ item.setMpaymode(bills.getMpaymode());
|
|
|
+ item.setCyRemarks(bills.getCyRemarks());
|
|
|
+ item.setPolId(bills.getPolId());
|
|
|
+ item.setPolCode(bills.getPolCode());
|
|
|
+ item.setPolCnName(bills.getPolCnName());
|
|
|
+ item.setPolEnName(bills.getPolEnName());
|
|
|
+ item.setPodId(bills.getPodId());
|
|
|
+ item.setPodCode(bills.getPodCode());
|
|
|
+ item.setPodCnName(bills.getPodCnName());
|
|
|
+ item.setPodEnName(bills.getPodEnName());
|
|
|
+ item.setPlaceDeliveryId(bills.getPlaceDeliveryId());
|
|
|
+ item.setPlaceDeliveryName(bills.getPlaceDeliveryName());
|
|
|
+ item.setPlaceDeliveryCode(bills.getPlaceDeliveryCode());
|
|
|
+ item.setIssueAtId(bills.getIssueAtId());
|
|
|
+ item.setIssueAt(bills.getIssueAt());
|
|
|
+ }
|
|
|
+ this.updateBatchById(billsList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.data("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 删除海运进出口明细表
|
|
|
*
|