|
|
@@ -2572,6 +2572,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
detail.setUpdateTime(new Date());
|
|
|
+ detail.setPodCompanyId(bills.getPodCompanyId());
|
|
|
+ detail.setPodCompanyName(bills.getPodCompanyName());
|
|
|
+ detail.setPodStaffId(bills.getPodStaffId());
|
|
|
+ detail.setPodStaffName(bills.getPodStaffName());
|
|
|
baseMapper.updateById(detail);
|
|
|
Bills billsJk = new Bills();
|
|
|
BeanUtil.copyProperties(detail, billsJk);
|
|
|
@@ -2601,6 +2605,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
billsJk.setApprovedDate(null);
|
|
|
billsJk.setIssueStatus(null);
|
|
|
billsJk.setSrcBusId(detail.getId());
|
|
|
+ billsJk.setBusinessType("SI");
|
|
|
+ billsJk.setSeaType("I");
|
|
|
String deptId = billsJk.getPodCompanyId() + "";
|
|
|
String deptName = billsJk.getPodCompanyName();
|
|
|
String branchId = billsJk.getPodCompanyId() + "";
|
|
|
@@ -2661,110 +2667,14 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
billsJk.setTenantId(AuthUtil.getTenantId());
|
|
|
if (ObjectUtils.isNotNull(branchId)) {
|
|
|
billsJk.setBranchId(branchId);
|
|
|
+ billsJk.setBranchName(deptName);
|
|
|
billsJk.setCreateDept(deptId);
|
|
|
billsJk.setCreateDeptName(deptName);
|
|
|
}
|
|
|
// 初始创建为1
|
|
|
billsJk.setVersion("1");
|
|
|
baseMapper.insert(billsJk);
|
|
|
- if (ObjectUtils.isNotNull(billsJk.getPreContainersList())) {
|
|
|
- List<PreContainers> preContainersList = new ArrayList<>();
|
|
|
- for (PreContainers item : billsJk.getPreContainersList()) {
|
|
|
- item.setSrcId(item.getId());
|
|
|
- item.setId(null);
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(branchId)) {
|
|
|
- item.setBranchId(branchId);
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- item.setUpdateUser(null);
|
|
|
- item.setUpdateTime(null);
|
|
|
- item.setUpdateUserName(null);
|
|
|
- item.setPid(billsJk.getId());
|
|
|
- preContainersList.add(item);
|
|
|
- }
|
|
|
- preContainersService.saveBatch(preContainersList);
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(billsJk.getContainersList())) {
|
|
|
- List<Containers> containersList = new ArrayList<>();
|
|
|
- List<ContainersCommodity> containersCommodityList = new ArrayList<>();
|
|
|
- List<ContainersBills> containersBillsList = new ArrayList<>();
|
|
|
- for (Containers item : billsJk.getContainersList()) {
|
|
|
- item.setSrcId(item.getId());
|
|
|
- item.setId(null);
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(branchId)) {
|
|
|
- item.setBranchId(branchId);
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- item.setUpdateUser(null);
|
|
|
- item.setUpdateTime(null);
|
|
|
- item.setUpdateUserName(null);
|
|
|
- item.setPid(billsJk.getId());
|
|
|
- if (ObjectUtils.isNotNull(item.getContainersCommodityList()) && !item.getContainersCommodityList().isEmpty()) {
|
|
|
- containersCommodityList.addAll(item.getContainersCommodityList());
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(item.getContainersBillsList()) && !item.getContainersBillsList().isEmpty()) {
|
|
|
- containersBillsList.addAll(item.getContainersBillsList());
|
|
|
- }
|
|
|
- containersList.add(item);
|
|
|
- }
|
|
|
- containersService.saveBatch(containersList);
|
|
|
- if (!containersCommodityList.isEmpty()) {
|
|
|
- for (ContainersCommodity item : containersCommodityList) {
|
|
|
- Containers containers = containersList.stream().filter(e -> e.getSrcId().equals(item.getPid())).findFirst().orElse(null);
|
|
|
- if (containers != null) {
|
|
|
- item.setId(null);
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(branchId)) {
|
|
|
- item.setBranchId(branchId);
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- item.setUpdateUser(null);
|
|
|
- item.setUpdateTime(null);
|
|
|
- item.setUpdateUserName(null);
|
|
|
- item.setPid(containers.getId());
|
|
|
- item.setPpId(billsJk.getId());
|
|
|
- } else {
|
|
|
- throw new RuntimeException("装箱明细数据错误,请联系管理员");
|
|
|
- }
|
|
|
- }
|
|
|
- containersCommodityService.saveBatch(containersCommodityList);
|
|
|
- }
|
|
|
- if (!containersBillsList.isEmpty()) {
|
|
|
- for (ContainersBills item : containersBillsList) {
|
|
|
- Containers containers = containersList.stream().filter(e -> e.getSrcId().equals(item.getPid())).findFirst().orElse(null);
|
|
|
- if (containers != null) {
|
|
|
- item.setId(null);
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(branchId)) {
|
|
|
- item.setBranchId(branchId);
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- item.setUpdateUser(null);
|
|
|
- item.setUpdateTime(null);
|
|
|
- item.setUpdateUserName(null);
|
|
|
- item.setPid(containers.getId());
|
|
|
- item.setPpId(billsJk.getId());
|
|
|
- } else {
|
|
|
- throw new RuntimeException("装箱明细数据错误,请联系管理员");
|
|
|
- }
|
|
|
- }
|
|
|
- containersBillsService.saveBatch(containersBillsList);
|
|
|
- }
|
|
|
- }
|
|
|
+ Bills billsJkNew = this.addItemList(billsJk);
|
|
|
|
|
|
BigDecimal amountCr = new BigDecimal("0.00");
|
|
|
BigDecimal amountProfit;
|
|
|
@@ -2775,95 +2685,15 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
|
|
|
Date date = new Date();
|
|
|
BigDecimal exrateC = bCurrencyService.getCnyExrate(date, "USD", "C", "1");
|
|
|
- //应收
|
|
|
- int statusD = 0;
|
|
|
- if (ObjectUtils.isNotNull(billsJk.getFeeCenterListD())) {
|
|
|
- List<FeeCenter> feeCenterListAll = new ArrayList<>();
|
|
|
- List<FeeCenter> feeCenterListD = billsJk.getFeeCenterListD()
|
|
|
- .stream().filter(e -> e.getCorpId().equals(billsJk.getForeignAgencyId())).collect(Collectors.toList());
|
|
|
- if (!feeCenterListD.isEmpty()) {
|
|
|
- statusD += 1;
|
|
|
- for (FeeCenter item : feeCenterListD) {
|
|
|
- //计算字段null值处理
|
|
|
- item.setQuantity(ObjectUtils.isNotNull(item.getQuantity()) ? item.getQuantity() : new BigDecimal("0.00"));
|
|
|
- item.setPrice(ObjectUtils.isNotNull(item.getPrice()) ? item.getPrice() : new BigDecimal("0.00"));
|
|
|
- item.setSurchargeRate(ObjectUtils.isNotNull(item.getSurchargeRate()) ? item.getSurchargeRate() : new BigDecimal("0.00"));
|
|
|
- item.setTaxRate(ObjectUtils.isNotNull(item.getTaxRate()) ? item.getTaxRate() : new BigDecimal("0.00"));
|
|
|
- item.setAmountDiscount(ObjectUtils.isNotNull(item.getAmountDiscount()) ? item.getAmountDiscount() : new BigDecimal("0.00"));
|
|
|
- item.setStlTtlAmount(ObjectUtils.isNotNull(item.getStlTtlAmount()) ? item.getStlTtlAmount() : new BigDecimal("0.00"));
|
|
|
|
|
|
- item.setId(null);
|
|
|
- item.setPid(billsJk.getId());
|
|
|
- item.setBillNo(bills.getBillNo());
|
|
|
- item.setBusinessType(billsJk.getBusinessType());
|
|
|
- item.setDc("C");
|
|
|
- item.setCreateTime(new Date());
|
|
|
- item.setCreateUser(AuthUtil.getUserId());
|
|
|
- item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
|
|
|
- item.setCreateDept(deptId);
|
|
|
- item.setBranchId(branchId);
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
- }
|
|
|
- item.setUpdateUser(null);
|
|
|
- item.setUpdateTime(null);
|
|
|
- item.setUpdateUserName(null);
|
|
|
-
|
|
|
- // 去税金额 = 数量quantity * 单价price
|
|
|
- BigDecimal amountNet = new BigDecimal("0.00");
|
|
|
- // 税额 = 去税金额amountNet * 税率taxRateSum
|
|
|
- BigDecimal amountTax = new BigDecimal("0.00");
|
|
|
- // 金额,amountTax + 去税金额amountNet - 折扣金额amountDiscount
|
|
|
- BigDecimal amount = new BigDecimal("0.00");
|
|
|
- //总税率 = 税率taxRate + 附加税率surchargeRate
|
|
|
- BigDecimal taxRate = new BigDecimal("0.00");
|
|
|
- // 税率 = 总税率/100
|
|
|
- BigDecimal taxRateSum = new BigDecimal("0.00");
|
|
|
-
|
|
|
- amountNet = amountNet.add(item.getQuantity().multiply(item.getPrice()))
|
|
|
- .setScale(2, RoundingMode.HALF_UP);
|
|
|
- taxRate = taxRate.add(item.getTaxRate()).add(item.getSurchargeRate());
|
|
|
- taxRateSum = taxRateSum.add(taxRate.divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
|
|
|
- amountTax = amountTax.add(amountNet.multiply(taxRateSum)).setScale(2, RoundingMode.HALF_UP);
|
|
|
- amount = amount.add(amountNet.add(amountTax).subtract(item.getAmountDiscount()));
|
|
|
-
|
|
|
- //判断是否是本位币
|
|
|
- if ("CNY".equals(item.getCurCode())) {
|
|
|
- item.setAmountNetLoc(amountNet);
|
|
|
- item.setAmountTaxLoc(amountTax);
|
|
|
- item.setAmountLoc(amount);
|
|
|
- item.setAmountDiscountLoc(amount);
|
|
|
- amountCr = amountCr.add(item.getAmount());
|
|
|
- } else {
|
|
|
- item.setAmountNetLoc(amountNet.multiply(exrateC));
|
|
|
- item.setAmountTaxLoc(amountTax.multiply(exrateC));
|
|
|
- item.setAmountLoc(amount.multiply(exrateC));
|
|
|
- item.setAmountDiscountLoc(amount.multiply(exrateC));
|
|
|
- amountCrUsd = amountCrUsd.add(item.getAmount());
|
|
|
- }
|
|
|
- item.setAmountNet(amountNet);
|
|
|
- item.setAmountTax(amountTax);
|
|
|
- item.setAmount(amount);
|
|
|
- item.setUnsettledAmount(item.getAmount().subtract(item.getStlTtlAmount()));
|
|
|
- feeCenterListAll.add(item);
|
|
|
- }
|
|
|
- }
|
|
|
- if (!feeCenterListAll.isEmpty()) {
|
|
|
- feeCenterService.saveBatch(feeCenterListAll);
|
|
|
- }
|
|
|
- }
|
|
|
- if (0 == statusD) {
|
|
|
- billsJk.setAccountStatus(0);
|
|
|
- } else if (1 == statusD) {
|
|
|
- billsJk.setAccountStatus(2);
|
|
|
- }
|
|
|
//主单应加上分单费用
|
|
|
- if ("MM".equals(billsJk.getBillType()) && ObjectUtils.isNotNull(billsJk.getId())) {
|
|
|
+ if ("MM".equals(billsJkNew.getBillType()) && ObjectUtils.isNotNull(billsJkNew.getId())) {
|
|
|
List<Bills> details = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
if (!details.isEmpty()) {
|
|
|
+ List<Bills> billsList = new ArrayList<>();
|
|
|
for (Bills item : details) {
|
|
|
item.setSrcBusId(item.getId());
|
|
|
item.setId(null);
|
|
|
@@ -2891,8 +2721,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
item.setEdiStatus(null);
|
|
|
item.setApprovedDate(null);
|
|
|
item.setIssueStatus(null);
|
|
|
- item.setMasterId(billsJk.getId());
|
|
|
- item.setMasterBillNo(billsJk.getBillNo());
|
|
|
+ item.setMasterId(billsJkNew.getId());
|
|
|
+ item.setMasterBillNo(billsJkNew.getBillNo());
|
|
|
BusinessBillNo businessBillNo1 = new BusinessBillNo();
|
|
|
businessBillNo1.setBusinessTypeId(businessType.getId());
|
|
|
businessBillNo1.setCode("HYJK");
|
|
|
@@ -2912,11 +2742,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
// 初始创建为1
|
|
|
item.setVersion("1");
|
|
|
+ baseMapper.insert(item);
|
|
|
+ Bills itemNew = this.addItemList(item);
|
|
|
+ billsList.add(itemNew);
|
|
|
}
|
|
|
- this.saveBatch(details);
|
|
|
- amountCr = amountCr.add(details.stream().map(Bills::getAmountCr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrUsd = amountCrUsd.add(details.stream().map(Bills::getAmountCrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrLoc = amountCrLoc.add(details.stream().map(Bills::getAmountCrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountCr = amountCr.add(billsList.stream().map(Bills::getAmountCr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountCrUsd = amountCrUsd.add(billsList.stream().map(Bills::getAmountCrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ amountCrLoc = amountCrLoc.add(billsList.stream().map(Bills::getAmountCrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
}
|
|
|
//利润 = 收 - 付
|
|
|
@@ -2928,15 +2760,21 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
amountCrLoc = amountCrLoc.add(amountCr);
|
|
|
}
|
|
|
amountProfitLoc = new BigDecimal("0.00").subtract(amountCrLoc);
|
|
|
- billsJk.setAmountCr(amountCr);
|
|
|
- billsJk.setAmountProfit(amountProfit);
|
|
|
- billsJk.setAmountCrUsd(amountCrUsd);
|
|
|
- billsJk.setAmountProfitUsd(amountProfitUsd);
|
|
|
- billsJk.setAmountCrLoc(amountCrLoc);
|
|
|
- billsJk.setAmountProfitLoc(amountProfitLoc);
|
|
|
- this.updateById(billsJk);
|
|
|
- if (ObjectUtils.isNotNull(billsJk.getDetail())) {
|
|
|
- SeaBillsDetail seaBillsDetail = billsJk.getDetail();
|
|
|
+ billsJkNew.setAmountCr(billsJkNew.getAmountCr().add(amountCr));
|
|
|
+ billsJkNew.setAmountProfit(billsJkNew.getAmountProfit().add(amountProfit));
|
|
|
+ billsJkNew.setAmountCrUsd(billsJkNew.getAmountCrUsd().add(amountCrUsd));
|
|
|
+ billsJkNew.setAmountProfitUsd(billsJkNew.getAmountProfitUsd().add(amountProfitUsd));
|
|
|
+ billsJkNew.setAmountCrLoc(billsJkNew.getAmountCrLoc().add(amountCrLoc));
|
|
|
+ billsJkNew.setAmountProfitLoc(billsJkNew.getAmountProfitLoc().add(amountProfitLoc));
|
|
|
+ this.updateById(billsJkNew);
|
|
|
+ return R.data(billsJkNew);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Bills addItemList(Bills billsJk) {
|
|
|
+ SeaBillsDetail seaBillsDetail = seaBillsDetailService.getOne(new LambdaQueryWrapper<SeaBillsDetail>()
|
|
|
+ .eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(SeaBillsDetail::getPid, billsJk.getSrcBusId()));
|
|
|
+ if (seaBillsDetail != null) {
|
|
|
seaBillsDetail.setUpdateUser(null);
|
|
|
seaBillsDetail.setUpdateUserName(null);
|
|
|
seaBillsDetail.setUpdateTime(null);
|
|
|
@@ -2950,17 +2788,113 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
seaBillsDetail.setCreateTime(new Date());
|
|
|
seaBillsDetailService.save(seaBillsDetail);
|
|
|
}
|
|
|
- if (ObjectUtils.isNotNull(billsJk.getFilesList())) {
|
|
|
- List<FilesCenter> filesList = new ArrayList<>();
|
|
|
- for (FilesCenter item : billsJk.getFilesList()) {
|
|
|
+ List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
+ .eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PreContainers::getIsDeleted, 0)
|
|
|
+ .eq(PreContainers::getPid, billsJk.getSrcBusId()));
|
|
|
+ if (!preContainersList.isEmpty()) {
|
|
|
+ for (PreContainers item : preContainersList) {
|
|
|
item.setId(null);
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ item.setBranchId(billsJk.getBranchId());
|
|
|
+ item.setCreateDept(billsJk.getCreateDept());
|
|
|
+ item.setCreateDeptName(billsJk.getCreateDeptName());
|
|
|
+ item.setUpdateUser(null);
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ item.setUpdateUserName(null);
|
|
|
item.setPid(billsJk.getId());
|
|
|
+ }
|
|
|
+ preContainersService.saveBatch(preContainersList);
|
|
|
+ }
|
|
|
+ List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
|
|
|
+ .eq(Containers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Containers::getIsDeleted, 0)
|
|
|
+ .eq(Containers::getPid, billsJk.getSrcBusId()));
|
|
|
+ if (!containersList.isEmpty()) {
|
|
|
+ for (Containers item : billsJk.getContainersList()) {
|
|
|
+ item.setSrcId(item.getId());
|
|
|
+ item.setId(null);
|
|
|
item.setCreateTime(new Date());
|
|
|
item.setCreateUser(AuthUtil.getUserId());
|
|
|
item.setCreateUserName(AuthUtil.getUserName());
|
|
|
- if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
|
|
|
- item.setCreateDeptName(deptName);
|
|
|
+ item.setBranchId(billsJk.getBranchId());
|
|
|
+ item.setCreateDept(billsJk.getCreateDept());
|
|
|
+ item.setCreateDeptName(billsJk.getCreateDeptName());
|
|
|
+ item.setUpdateUser(null);
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ item.setUpdateUserName(null);
|
|
|
+ item.setPid(billsJk.getId());
|
|
|
+ }
|
|
|
+ containersService.saveBatch(containersList);
|
|
|
+ List<ContainersCommodity> containersCommodityList = containersCommodityService.list(new LambdaQueryWrapper<ContainersCommodity>()
|
|
|
+ .eq(ContainersCommodity::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ContainersCommodity::getIsDeleted, 0)
|
|
|
+ .eq(ContainersCommodity::getPpId, billsJk.getSrcBusId()));
|
|
|
+ if (!containersCommodityList.isEmpty()) {
|
|
|
+ for (ContainersCommodity item : containersCommodityList) {
|
|
|
+ Containers containers = containersList.stream().filter(e -> e.getSrcId().equals(item.getPid())).findFirst().orElse(null);
|
|
|
+ if (containers != null) {
|
|
|
+ item.setId(null);
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ item.setBranchId(billsJk.getBranchId());
|
|
|
+ item.setCreateDept(billsJk.getCreateDept());
|
|
|
+ item.setCreateDeptName(billsJk.getCreateDeptName());
|
|
|
+ item.setUpdateUser(null);
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ item.setUpdateUserName(null);
|
|
|
+ item.setPid(containers.getId());
|
|
|
+ item.setPpId(billsJk.getId());
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("装箱明细数据错误,请联系管理员");
|
|
|
+ }
|
|
|
}
|
|
|
+ containersCommodityService.saveBatch(containersCommodityList);
|
|
|
+ }
|
|
|
+ List<ContainersBills> containersBillsList = containersBillsService.list(new LambdaQueryWrapper<ContainersBills>()
|
|
|
+ .eq(ContainersBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ContainersBills::getIsDeleted, 0)
|
|
|
+ .eq(ContainersBills::getPpId, billsJk.getSrcBusId()));
|
|
|
+ if (!containersBillsList.isEmpty()) {
|
|
|
+ for (ContainersBills item : containersBillsList) {
|
|
|
+ Containers containers = containersList.stream().filter(e -> e.getSrcId().equals(item.getPid())).findFirst().orElse(null);
|
|
|
+ if (containers != null) {
|
|
|
+ item.setId(null);
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ item.setBranchId(billsJk.getBranchId());
|
|
|
+ item.setCreateDept(billsJk.getCreateDept());
|
|
|
+ item.setCreateDeptName(billsJk.getCreateDeptName());
|
|
|
+ item.setUpdateUser(null);
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ item.setUpdateUserName(null);
|
|
|
+ item.setPid(containers.getId());
|
|
|
+ item.setPpId(billsJk.getId());
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("装箱明细数据错误,请联系管理员");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ containersBillsService.saveBatch(containersBillsList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<FilesCenter> filesList = filesCenterService.list(new LambdaQueryWrapper<FilesCenter>()
|
|
|
+ .eq(FilesCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FilesCenter::getIsDeleted, 0)
|
|
|
+ .eq(FilesCenter::getPid, billsJk.getSrcBusId()));
|
|
|
+ if (!filesList.isEmpty()) {
|
|
|
+ for (FilesCenter item : billsJk.getFilesList()) {
|
|
|
+ item.setId(null);
|
|
|
+ item.setPid(billsJk.getId());
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ item.setBranchId(billsJk.getBranchId());
|
|
|
+ item.setCreateDept(billsJk.getCreateDept());
|
|
|
+ item.setCreateDeptName(billsJk.getCreateDeptName());
|
|
|
item.setUpdateUser(null);
|
|
|
item.setUpdateTime(null);
|
|
|
item.setUpdateUserName(null);
|
|
|
@@ -2968,7 +2902,371 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
filesCenterService.saveBatch(filesList);
|
|
|
}
|
|
|
+ BigDecimal amountCr = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountProfit = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountCrUsd = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountProfitUsd = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountCrLoc = new BigDecimal("0.00");
|
|
|
+ BigDecimal amountProfitLoc = new BigDecimal("0.00");
|
|
|
+ Date date = new Date();
|
|
|
+ BigDecimal exrateC = bCurrencyService.getCnyExrate(date, "USD", "C", "1");
|
|
|
+ //应收
|
|
|
+ int statusD = 0;
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .eq(FeeCenter::getPid, billsJk.getSrcBusId())
|
|
|
+ .eq(FeeCenter::getCorpId, billsJk.getForeignAgencyId())
|
|
|
+ .eq(FeeCenter::getDc, "D")
|
|
|
+ );
|
|
|
+ if (!feeCenterList.isEmpty()) {
|
|
|
+ statusD += 1;
|
|
|
+ for (FeeCenter item : feeCenterList) {
|
|
|
+ //计算字段null值处理
|
|
|
+ item.setQuantity(ObjectUtils.isNotNull(item.getQuantity()) ? item.getQuantity() : new BigDecimal("0.00"));
|
|
|
+ item.setPrice(ObjectUtils.isNotNull(item.getPrice()) ? item.getPrice() : new BigDecimal("0.00"));
|
|
|
+ item.setSurchargeRate(ObjectUtils.isNotNull(item.getSurchargeRate()) ? item.getSurchargeRate() : new BigDecimal("0.00"));
|
|
|
+ item.setTaxRate(ObjectUtils.isNotNull(item.getTaxRate()) ? item.getTaxRate() : new BigDecimal("0.00"));
|
|
|
+ item.setAmountDiscount(ObjectUtils.isNotNull(item.getAmountDiscount()) ? item.getAmountDiscount() : new BigDecimal("0.00"));
|
|
|
+ item.setStlTtlAmount(ObjectUtils.isNotNull(item.getStlTtlAmount()) ? item.getStlTtlAmount() : new BigDecimal("0.00"));
|
|
|
+
|
|
|
+ item.setId(null);
|
|
|
+ item.setPid(billsJk.getId());
|
|
|
+ item.setBillNo(billsJk.getBillNo());
|
|
|
+ item.setBusinessType(billsJk.getBusinessType());
|
|
|
+ item.setDc("C");
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ item.setBranchId(billsJk.getBranchId());
|
|
|
+ item.setCreateDept(billsJk.getCreateDept());
|
|
|
+ item.setCreateDeptName(billsJk.getCreateDeptName());
|
|
|
+ item.setUpdateUser(null);
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ item.setUpdateUserName(null);
|
|
|
+
|
|
|
+ // 去税金额 = 数量quantity * 单价price
|
|
|
+ BigDecimal amountNet = new BigDecimal("0.00");
|
|
|
+ // 税额 = 去税金额amountNet * 税率taxRateSum
|
|
|
+ BigDecimal amountTax = new BigDecimal("0.00");
|
|
|
+ // 金额,amountTax + 去税金额amountNet - 折扣金额amountDiscount
|
|
|
+ BigDecimal amount = new BigDecimal("0.00");
|
|
|
+ //总税率 = 税率taxRate + 附加税率surchargeRate
|
|
|
+ BigDecimal taxRate = new BigDecimal("0.00");
|
|
|
+ // 税率 = 总税率/100
|
|
|
+ BigDecimal taxRateSum = new BigDecimal("0.00");
|
|
|
+
|
|
|
+ amountNet = amountNet.add(item.getQuantity().multiply(item.getPrice()))
|
|
|
+ .setScale(2, RoundingMode.HALF_UP);
|
|
|
+ taxRate = taxRate.add(item.getTaxRate()).add(item.getSurchargeRate());
|
|
|
+ taxRateSum = taxRateSum.add(taxRate.divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
|
|
|
+ amountTax = amountTax.add(amountNet.multiply(taxRateSum)).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ amount = amount.add(amountNet.add(amountTax).subtract(item.getAmountDiscount()));
|
|
|
+
|
|
|
+ //判断是否是本位币
|
|
|
+ if ("CNY".equals(item.getCurCode())) {
|
|
|
+ item.setAmountNetLoc(amountNet);
|
|
|
+ item.setAmountTaxLoc(amountTax);
|
|
|
+ item.setAmountLoc(amount);
|
|
|
+ item.setAmountDiscountLoc(amount);
|
|
|
+ amountCr = amountCr.add(item.getAmount());
|
|
|
+ } else {
|
|
|
+ item.setAmountNetLoc(amountNet.multiply(exrateC));
|
|
|
+ item.setAmountTaxLoc(amountTax.multiply(exrateC));
|
|
|
+ item.setAmountLoc(amount.multiply(exrateC));
|
|
|
+ item.setAmountDiscountLoc(amount.multiply(exrateC));
|
|
|
+ amountCrUsd = amountCrUsd.add(item.getAmount());
|
|
|
+ }
|
|
|
+ item.setAmountNet(amountNet);
|
|
|
+ item.setAmountTax(amountTax);
|
|
|
+ item.setAmount(amount);
|
|
|
+ item.setUnsettledAmount(item.getAmount().subtract(item.getStlTtlAmount()));
|
|
|
+ }
|
|
|
+ feeCenterService.saveBatch(feeCenterList);
|
|
|
+ }
|
|
|
+ if (0 == statusD) {
|
|
|
+ billsJk.setAccountStatus(0);
|
|
|
+ } else if (1 == statusD) {
|
|
|
+ billsJk.setAccountStatus(2);
|
|
|
+ }
|
|
|
+ billsJk.setAmountCr(billsJk.getAmountCr().add(amountCr));
|
|
|
+ billsJk.setAmountProfit(billsJk.getAmountProfit().add(amountProfit));
|
|
|
+ billsJk.setAmountCrUsd(billsJk.getAmountCrUsd().add(amountCrUsd));
|
|
|
+ billsJk.setAmountProfitUsd(billsJk.getAmountProfitUsd().add(amountProfitUsd));
|
|
|
+ billsJk.setAmountCrLoc(billsJk.getAmountCrLoc().add(amountCrLoc));
|
|
|
+ billsJk.setAmountProfitLoc(billsJk.getAmountProfitLoc().add(amountProfitLoc));
|
|
|
+ return billsJk;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R revokeTransferOrder(Bills bills) {
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ detail.setTransferOrderStatus("录入");
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ Bills billsJk = baseMapper.selectOne(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getSrcBusId, detail.getId()));
|
|
|
+ if (billsJk == null) {
|
|
|
+ throw new RuntimeException("未找到进口单据");
|
|
|
+ }
|
|
|
+ this.removeItemList(billsJk.getId());
|
|
|
+ baseMapper.deleteById(billsJk.getId());
|
|
|
+ //主单应加上分单费用
|
|
|
+ if ("MM".equals(billsJk.getBillType())) {
|
|
|
+ List<Bills> details = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getMasterId, billsJk.getId()));
|
|
|
+ if (!details.isEmpty()) {
|
|
|
+ for (Bills item : details) {
|
|
|
+ this.removeItemList(item.getId());
|
|
|
+ }
|
|
|
+ this.removeByIds(details.stream().map(Bills::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
return R.data(billsJk);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R receive(Bills bills) {
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ if ("已接收".equals(detail.getReceiveStatus())) {
|
|
|
+ throw new RuntimeException("已接收,请勿重复提交");
|
|
|
+ }
|
|
|
+ detail.setReceiveStatus("已接收");
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String formatted = now.format(formatter);
|
|
|
+ //发送消息
|
|
|
+ if (ObjectUtils.isNotNull(bills.getShippingStaffId())) {
|
|
|
+ R<User> userR = userClient.userInfoById(bills.getShippingStaffId());
|
|
|
+ if (userR.isSuccess() && ObjectUtils.isNotNull(userR.getData())) {
|
|
|
+ User datum = userR.getData();
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(detail.getId() + "");
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(null);
|
|
|
+ sendMessage.setToUserId(datum.getId());
|
|
|
+ sendMessage.setToUserName(datum.getName());
|
|
|
+ sendMessage.setMessageType(1);
|
|
|
+ sendMessage.setTenantId(AuthUtil.getTenantId());
|
|
|
+ sendMessage.setCreateUser(null);
|
|
|
+ sendMessage.setCreateTime(new Date());
|
|
|
+ sendMessage.setUrl("/iosBasicData/SeafreightExportF/bills/index");
|
|
|
+ sendMessage.setPageLabel("海运出口");
|
|
|
+ sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
|
|
|
+ sendMessage.setMessageBody("您有新的海运出口物流已提交,请及时待处理!提单号:" + detail.getMblno() + "时间:" + formatted);
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ System.out.println("发送结果:" + save);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("未查到船务员工用户信息");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("请选择接收船务员工");
|
|
|
+ }
|
|
|
+ return R.data(detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R revokeReceive(Bills bills) {
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ if ("录入".equals(detail.getReceiveStatus())) {
|
|
|
+ throw new RuntimeException("已撤销接收,请勿重复撤销");
|
|
|
+ }
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String formatted = now.format(formatter);
|
|
|
+ //发送消息
|
|
|
+ if (ObjectUtils.isNotNull(detail.getShippingStaffId())) {
|
|
|
+ R<User> userR = userClient.userInfoById(detail.getShippingStaffId());
|
|
|
+ if (userR.isSuccess() && ObjectUtils.isNotNull(userR.getData())) {
|
|
|
+ User datum = userR.getData();
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(detail.getId() + "");
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(null);
|
|
|
+ sendMessage.setToUserId(datum.getId());
|
|
|
+ sendMessage.setToUserName(datum.getName());
|
|
|
+ sendMessage.setMessageType(1);
|
|
|
+ sendMessage.setTenantId(AuthUtil.getTenantId());
|
|
|
+ sendMessage.setCreateUser(null);
|
|
|
+ sendMessage.setCreateTime(new Date());
|
|
|
+ sendMessage.setUrl("/iosBasicData/SeafreightExportF/bills/index");
|
|
|
+ sendMessage.setPageLabel("海运出口");
|
|
|
+ sendMessage.setPageStatus("this.$store.getters.domSaleStatus");
|
|
|
+ sendMessage.setMessageBody("您的海运出口物流提交已撤销!提单号:" + detail.getMblno() + "时间:" + formatted);
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ System.out.println("发送结果:" + save);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("未查到船务员工用户信息");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("请选择接收船务员工");
|
|
|
+ }
|
|
|
+ detail.setReceiveStatus("录入");
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ return R.data(detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R changeOrders(Bills bills) {
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ if ("已换单".equals(detail.getChangeOrdersStatus())) {
|
|
|
+ throw new RuntimeException("已换单,请勿重复提交");
|
|
|
+ }
|
|
|
+ detail.setChangeOrdersStatus("已换单");
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ detail.setChangeOrderDate(new Date());
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ return R.data(detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R revokeChangeOrders(Bills bills) {
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ if ("录入".equals(detail.getChangeOrdersStatus())) {
|
|
|
+ throw new RuntimeException("已撤销换单,请勿重复撤销");
|
|
|
+ }
|
|
|
+ detail.setChangeOrdersStatus("录入");
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ detail.setChangeOrderDate(null);
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ return R.data(detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R returningSecurityMoney(Bills bills) {
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ if ("已退押".equals(detail.getReturningSecurityMoneyStatus())) {
|
|
|
+ throw new RuntimeException("已退押,请勿重复提交");
|
|
|
+ }
|
|
|
+ detail.setReturningSecurityMoneyStatus("已退押");
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ return R.data(detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R revokeReturningSecurityMoney(Bills bills) {
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ if ("录入".equals(detail.getReturningSecurityMoneyStatus())) {
|
|
|
+ throw new RuntimeException("已撤销退押,请勿重复撤销");
|
|
|
+ }
|
|
|
+ detail.setReturningSecurityMoneyStatus("录入");
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ return R.data(detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除海运进出口明细表
|
|
|
+ *
|
|
|
+ * @param id 主表id
|
|
|
+ */
|
|
|
+ private void removeItemList(Long id) {
|
|
|
+ SeaBillsDetail seaBillsDetail = seaBillsDetailService.getOne(new LambdaQueryWrapper<SeaBillsDetail>()
|
|
|
+ .eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(SeaBillsDetail::getPid, id));
|
|
|
+ if (seaBillsDetail != null) {
|
|
|
+ seaBillsDetailService.removeById(seaBillsDetail.getId());
|
|
|
+ }
|
|
|
+ List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
+ .eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PreContainers::getIsDeleted, 0)
|
|
|
+ .eq(PreContainers::getPid, id));
|
|
|
+ if (!preContainersList.isEmpty()) {
|
|
|
+ preContainersService.removeByIds(preContainersList.stream().map(PreContainers::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
|
|
|
+ .eq(Containers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Containers::getIsDeleted, 0)
|
|
|
+ .eq(Containers::getPid, id));
|
|
|
+ if (!containersList.isEmpty()) {
|
|
|
+ containersService.removeByIds(containersList.stream().map(Containers::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ List<ContainersCommodity> containersCommodityList = containersCommodityService.list(new LambdaQueryWrapper<ContainersCommodity>()
|
|
|
+ .eq(ContainersCommodity::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ContainersCommodity::getIsDeleted, 0)
|
|
|
+ .eq(ContainersCommodity::getPpId, id));
|
|
|
+ if (!containersCommodityList.isEmpty()) {
|
|
|
+ containersCommodityService.removeByIds(containersCommodityList.stream().map(ContainersCommodity::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ List<ContainersBills> containersBillsList = containersBillsService.list(new LambdaQueryWrapper<ContainersBills>()
|
|
|
+ .eq(ContainersBills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ContainersBills::getIsDeleted, 0)
|
|
|
+ .eq(ContainersBills::getPpId, id));
|
|
|
+ if (!containersBillsList.isEmpty()) {
|
|
|
+ containersBillsService.removeByIds(containersBillsList.stream().map(ContainersBills::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .eq(FeeCenter::getPid, id));
|
|
|
+ if (!feeCenterList.isEmpty()) {
|
|
|
+ for (FeeCenter item : feeCenterList) {
|
|
|
+ if (1 == item.getAccStatus()) {
|
|
|
+ throw new RuntimeException("费用:" + item.getFeeCnName() + "已生成账单");
|
|
|
+ }
|
|
|
+ if (item.getStlPid() != null) {
|
|
|
+ throw new RuntimeException("费用:" + item.getFeeCnName() + "已申请");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ feeCenterService.removeByIds(feeCenterList.stream().map(FeeCenter::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<FilesCenter> filesList = filesCenterService.list(new LambdaQueryWrapper<FilesCenter>()
|
|
|
+ .eq(FilesCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FilesCenter::getIsDeleted, 0)
|
|
|
+ .eq(FilesCenter::getPid, id));
|
|
|
+ if (!filesList.isEmpty()) {
|
|
|
+ filesCenterService.removeByIds(filesList.stream().map(FilesCenter::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|