|
|
@@ -396,6 +396,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(Bills::getMblno, bills.getMblno()));
|
|
|
if (!billsList.isEmpty()) {
|
|
|
for (Bills item : billsList) {
|
|
|
+ int versions = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
|
|
|
+ item.setVersion(String.valueOf(versions + 1));
|
|
|
item.setEtd(bills.getEtd());
|
|
|
item.setVesselId(bills.getVesselId());
|
|
|
item.setVesselCnName(bills.getVesselCnName());
|
|
|
@@ -451,6 +453,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(FeeCenter::getIsDeleted, 0)
|
|
|
.eq(FeeCenter::getPid, billIds));
|
|
|
for (FeeCenter item : feeCenterList) {
|
|
|
+ int versions = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
|
|
|
+ item.setVersion(String.valueOf(versions + 1));
|
|
|
item.setVesselId(bills.getVesselId());
|
|
|
item.setVesselCnName(bills.getVesselCnName());
|
|
|
item.setVesselEnName(bills.getVesselEnName());
|
|
|
@@ -485,6 +489,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
finAccBillsService.updateBatchById(finAccBillsList);
|
|
|
for (Bills item : billsList) {
|
|
|
+ int versions = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
|
|
|
+ item.setVersion(String.valueOf(versions + 1));
|
|
|
item.setVesselId(bills.getVesselId());
|
|
|
item.setVesselCnName(bills.getVesselCnName());
|
|
|
item.setVesselEnName(bills.getVesselEnName());
|
|
|
@@ -781,6 +787,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
, Bills::getQuantity, Bills::getGrossWeight, Bills::getMeasurement)
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getTeamId, bills.getTeamId())
|
|
|
+ .eq(Bills::getBranchId, bills.getBranchId())
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
if (!details.isEmpty()) {
|
|
|
amountDr = amountDr.add(details.stream().map(Bills::getAmountDr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
@@ -799,7 +807,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.select(Bills::getAmountDr, Bills::getAmountCr, Bills::getAmountProfit, Bills::getAmountDrUsd, Bills::getAmountCrUsd
|
|
|
, Bills::getAmountProfitUsd, Bills::getAmountDrLoc, Bills::getAmountCrLoc, Bills::getAmountProfitLoc
|
|
|
, Bills::getQuantity, Bills::getGrossWeight, Bills::getMeasurement)
|
|
|
- .eq(Bills::getMasterId, bills.getMasterId()));
|
|
|
+ .eq(Bills::getMasterId, bills.getMasterId())
|
|
|
+ .eq(Bills::getTeamId, bills.getTeamId())
|
|
|
+ .eq(Bills::getBranchId, bills.getBranchId())
|
|
|
+ .eq(Bills::getBillType, "MM"));
|
|
|
//重新计算主单合计
|
|
|
if (details != null) {
|
|
|
BigDecimal amountDrM = new BigDecimal("0.00");
|
|
|
@@ -1772,6 +1783,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(FeeCenter::getBillType, detail.getBillType())
|
|
|
.eq(FeeCenter::getPid, detail.getId())
|
|
|
.eq(FeeCenter::getDc, "C")
|
|
|
+ .apply("fee_code != 'CCF'")
|
|
|
.eq(FeeCenter::getBillNo, detail.getBillNo())
|
|
|
);
|
|
|
for (FeeCenter item : feeCenterListC) {
|
|
|
@@ -1854,6 +1866,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(FeeCenter::getBillType, detail.getBillType())
|
|
|
.eq(FeeCenter::getPid, detail.getId())
|
|
|
.eq(FeeCenter::getDc, "D")
|
|
|
+ .apply("fee_code != 'CCF'")
|
|
|
.eq(FeeCenter::getBillNo, detail.getBillNo())
|
|
|
);
|
|
|
for (FeeCenter item : feeCenterListD) {
|
|
|
@@ -4367,4 +4380,357 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
return R.data("操作成功");
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R createAndAdd(Long id) {
|
|
|
+ if (id == null) {
|
|
|
+ throw new SecurityException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(id);
|
|
|
+ SeaBillsDetail seaBillsDetail = seaBillsDetailService.getOne(new LambdaQueryWrapper<SeaBillsDetail>()
|
|
|
+ .eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(SeaBillsDetail::getPid, detail.getId()));
|
|
|
+ if (seaBillsDetail != null) {
|
|
|
+ seaBillsDetail.setId(null);
|
|
|
+ } else {
|
|
|
+ seaBillsDetail = new SeaBillsDetail();
|
|
|
+ }
|
|
|
+ List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
+ .eq(PreContainers::getIsDeleted, 0)
|
|
|
+ .eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PreContainers::getPid, detail.getId()));
|
|
|
+ for (PreContainers item : preContainersList) {
|
|
|
+ item.setPid(null);
|
|
|
+ item.setId(null);
|
|
|
+ item.setWhetherDispatchVehicles("0");
|
|
|
+ }
|
|
|
+ String branchId = deptUtils.getDeptPid() + "";
|
|
|
+ Bills copyBills = new Bills();
|
|
|
+ copyBills.setDetail(seaBillsDetail);
|
|
|
+ copyBills.setSeaType(detail.getSeaType());
|
|
|
+ copyBills.setBusinessType(detail.getBusinessType());
|
|
|
+ copyBills.setBillType("MH");
|
|
|
+ copyBills.setPreContainersList(preContainersList);
|
|
|
+ copyBills.setCreateTime(new Date());
|
|
|
+ copyBills.setCreateUser(AuthUtil.getUserId());
|
|
|
+ copyBills.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ copyBills.setTenantId(AuthUtil.getTenantId());
|
|
|
+ if (ObjectUtils.isNotNull(branchId)) {
|
|
|
+ copyBills.setBranchId(branchId);
|
|
|
+ }
|
|
|
+ copyBills.setOperatorId(AuthUtil.getUserId());
|
|
|
+ copyBills.setOperatorName(AuthUtil.getUserName());
|
|
|
+ Dept dept = deptUtils.getDept(AuthUtil.getDeptId());
|
|
|
+ if (dept != null) {
|
|
|
+ // 业务创建部门
|
|
|
+ copyBills.setCreateDept(dept.getId() + "");
|
|
|
+ copyBills.setCreateDeptName(dept.getDeptName());
|
|
|
+
|
|
|
+ // 操作部门
|
|
|
+ copyBills.setOperatorDept(dept.getId() + "");
|
|
|
+ copyBills.setOperatorDeptName(dept.getDeptName());
|
|
|
+
|
|
|
+ // 核算部门
|
|
|
+ copyBills.setAccDept(dept.getId() + "");
|
|
|
+ copyBills.setAccDeptName(dept.getDeptName());
|
|
|
+ }
|
|
|
+ copyBills.setMblno(detail.getMblno());
|
|
|
+ copyBills.setMarks(detail.getMarks());
|
|
|
+ copyBills.setCargoType(detail.getCargoType());
|
|
|
+ copyBills.setHscode(detail.getHscode());
|
|
|
+ copyBills.setCommodityShName(detail.getCommodityShName());
|
|
|
+ copyBills.setCommodityCnName(detail.getCommodityCnName());
|
|
|
+ copyBills.setCommodityEnName(detail.getCommodityEnName());
|
|
|
+ copyBills.setCommodityDescr(detail.getCommodityDescr());
|
|
|
+ copyBills.setVesselId(detail.getVesselId());
|
|
|
+ copyBills.setVesselCnName(detail.getVesselCnName());
|
|
|
+ copyBills.setVesselEnName(detail.getVesselEnName());
|
|
|
+ copyBills.setVoyageNo(detail.getVoyageNo());
|
|
|
+ copyBills.setCarrierId(detail.getCarrierId());
|
|
|
+ copyBills.setCarrierCnName(detail.getCarrierCnName());
|
|
|
+ copyBills.setCarrierEnName(detail.getCarrierEnName());
|
|
|
+ copyBills.setCarrierShortName(detail.getCarrierShortName());
|
|
|
+ copyBills.setCyId(detail.getCyId());
|
|
|
+ copyBills.setCyCode(detail.getCyCode());
|
|
|
+ copyBills.setCyCnName(detail.getCyCnName());
|
|
|
+ copyBills.setCyEnName(detail.getCyEnName());
|
|
|
+ copyBills.setCyAddress(detail.getCyAddress());
|
|
|
+ copyBills.setCyContacts(detail.getCyContacts());
|
|
|
+ copyBills.setCyShortName(detail.getCyShortName());
|
|
|
+ copyBills.setCyTel(detail.getCyTel());
|
|
|
+ copyBills.setCyRemarks(detail.getCyRemarks());
|
|
|
+ copyBills.setEtd(detail.getEtd());
|
|
|
+ copyBills.setEta(detail.getEta());
|
|
|
+ copyBills.setPolId(detail.getPolId());
|
|
|
+ copyBills.setPolCode(detail.getPolCode());
|
|
|
+ copyBills.setPolCnName(detail.getPolCnName());
|
|
|
+ copyBills.setPolEnName(detail.getPolEnName());
|
|
|
+ copyBills.setPolNamePrint(detail.getPolNamePrint());
|
|
|
+ copyBills.setPodId(detail.getPodId());
|
|
|
+ copyBills.setPodCode(detail.getPodCode());
|
|
|
+ copyBills.setPodCnName(detail.getPodCnName());
|
|
|
+ copyBills.setPodEnName(detail.getPodEnName());
|
|
|
+ copyBills.setPodNamePrint(detail.getPodNamePrint());
|
|
|
+ copyBills.setPotId(detail.getPotId());
|
|
|
+ copyBills.setPotCode(detail.getPotCode());
|
|
|
+ copyBills.setPotCnName(detail.getPotCnName());
|
|
|
+ copyBills.setPotEnName(detail.getPotEnName());
|
|
|
+ copyBills.setPotNamePrint(detail.getPotNamePrint());
|
|
|
+ copyBills.setPlaceReceiptId(detail.getPlaceReceiptId());
|
|
|
+ copyBills.setPlaceReceiptCode(detail.getPlaceReceiptCode());
|
|
|
+ copyBills.setPlaceReceiptName(detail.getPlaceReceiptName());
|
|
|
+ copyBills.setPlaceReceiptNamePrint(detail.getPlaceReceiptNamePrint());
|
|
|
+ copyBills.setPlaceDeliveryId(detail.getPlaceDeliveryId());
|
|
|
+ copyBills.setPlaceDeliveryCode(detail.getPlaceDeliveryCode());
|
|
|
+ copyBills.setPlaceDeliveryName(detail.getPlaceDeliveryName());
|
|
|
+ copyBills.setPlaceDeliveryNamePrint(detail.getPlaceDeliveryNamePrint());
|
|
|
+ copyBills.setDestinationId(detail.getDestinationId());
|
|
|
+ copyBills.setDestinationCode(detail.getDestinationCode());
|
|
|
+ copyBills.setDestinationName(detail.getDestinationName());
|
|
|
+ copyBills.setDestinationNamePrint(detail.getDestinationNamePrint());
|
|
|
+ copyBills.setFinalDestinationId(detail.getFinalDestinationId());
|
|
|
+ copyBills.setFinalDestinationCode(detail.getFinalDestinationCode());
|
|
|
+ copyBills.setFinalDestinationName(detail.getFinalDestinationName());
|
|
|
+ copyBills.setFinalDestinationNamePrint(detail.getFinalDestinationNamePrint());
|
|
|
+ copyBills.setQuantity(detail.getQuantity());
|
|
|
+ copyBills.setMeasurement(detail.getMeasurement());
|
|
|
+ copyBills.setGrossWeight(detail.getGrossWeight());
|
|
|
+ copyBills.setCfsQuantity(detail.getCfsQuantity());
|
|
|
+ copyBills.setCfsMeasurement(detail.getCfsMeasurement());
|
|
|
+ copyBills.setCfsGrossWeight(detail.getCfsGrossWeight());
|
|
|
+ copyBills.setMasterId(detail.getMasterId());
|
|
|
+ copyBills.setMasterBillNo(detail.getMasterBillNo());
|
|
|
+ copyBills.setFeeCenterListC(new ArrayList<>());
|
|
|
+ copyBills.setFeeCenterListD(new ArrayList<>());
|
|
|
+ copyBills.setCfsQuantity(new BigDecimal("0.00"));
|
|
|
+ copyBills.setCfsGrossWeight(new BigDecimal("0.00"));
|
|
|
+ copyBills.setCfsMeasurement(new BigDecimal("0.00"));
|
|
|
+ copyBills.setFilesList(new ArrayList<>());
|
|
|
+ copyBills.setDispatchVehiclesList(new ArrayList<>());
|
|
|
+ copyBills.setContainersList(new ArrayList<>());
|
|
|
+ copyBills.setContainersReportsList(new ArrayList<>());
|
|
|
+ copyBills.setWaitingBoxList(new ArrayList<>());
|
|
|
+ copyBills.setFeeCenterList(new ArrayList<>());
|
|
|
+ copyBills.setFeeCenterAmendList(new ArrayList<>());
|
|
|
+ copyBills.setInStorageList(new ArrayList<>());
|
|
|
+ copyBills.setOutStorageList(new ArrayList<>());
|
|
|
+ copyBills.setHmmEdi(new HmmEdi());
|
|
|
+ return R.data(copyBills);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R batchCopyCost(Bills bills) {
|
|
|
+ if (ObjectUtils.isNull(bills.getIds()) || ObjectUtils.isNull(bills.getFeeCenterListAll()) || bills.getFeeCenterListAll().isEmpty()) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .in(Bills::getId, Func.toLongList(bills.getIds())));
|
|
|
+ if (billsList.isEmpty()) {
|
|
|
+ throw new RuntimeException("未查到单据信息");
|
|
|
+ }
|
|
|
+ List<Long> idList = billsList.stream().map(Bills::getId).collect(Collectors.toList());
|
|
|
+ List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
+ .eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PreContainers::getIsDeleted, 0)
|
|
|
+ .in(PreContainers::getPid, idList));
|
|
|
+ List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
+ .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(FeeCenter::getIsDeleted, 0)
|
|
|
+ .in(FeeCenter::getPid, idList));
|
|
|
+ List<FeeCenter> feeCenters = new ArrayList<>();
|
|
|
+ for (Bills item : billsList) {
|
|
|
+ List<FeeCenter> feeItemList = new ArrayList<>();
|
|
|
+ List<FeeCenter> feeItemListOld = new ArrayList<>();
|
|
|
+ if (!feeCenterList.isEmpty()) {
|
|
|
+ feeItemList = feeCenterList.stream().filter(e -> e.getPid().equals(item.getId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (feeItemList.isEmpty()) {
|
|
|
+ feeItemListOld = bills.getFeeCenterListAll();
|
|
|
+ } else {
|
|
|
+ List<String> feeCodeList = feeItemList.stream().map(FeeCenter::getFeeCode).distinct().collect(Collectors.toList());
|
|
|
+ List<FeeCenter> feeCenters1 = bills.getFeeCenterListAll().stream().filter(e -> !feeCodeList.contains(e.getFeeCode()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (!feeCenters1.isEmpty()) {
|
|
|
+ feeItemListOld = feeCenters1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (FeeCenter feeCenter : feeItemListOld) {
|
|
|
+ feeCenter.setAccountDate(null);
|
|
|
+ feeCenter.setAccBillId(null);
|
|
|
+ feeCenter.setAccBillNo("");
|
|
|
+ feeCenter.setAccDate(null);
|
|
|
+ feeCenter.setAccStatus(0);
|
|
|
+ feeCenter.setAccById(0L);
|
|
|
+ feeCenter.setAccByName("");
|
|
|
+ feeCenter.setCheckBillId(0L);
|
|
|
+ feeCenter.setCheckBillNo("");
|
|
|
+ feeCenter.setCheckDate(null);
|
|
|
+ feeCenter.setCheckAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setCheckStatus(0);
|
|
|
+ feeCenter.setCheckById(0L);
|
|
|
+ feeCenter.setCheckByName("");
|
|
|
+ feeCenter.setStlBillId(0L);
|
|
|
+ feeCenter.setStlBillNo("");
|
|
|
+ feeCenter.setStlDate(null);
|
|
|
+ feeCenter.setStlOrgAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setStlCurCode("");
|
|
|
+ feeCenter.setStlExrate(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setStlExrateLoc(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setStlAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setStlAmountLoc(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setStlStatus(0);
|
|
|
+ feeCenter.setStlById(0L);
|
|
|
+ feeCenter.setStlByName("");
|
|
|
+ feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setVoucherBillId(0L);
|
|
|
+ feeCenter.setVoucherBillNo("");
|
|
|
+ feeCenter.setVoucherNo("");
|
|
|
+ feeCenter.setVoucherDate(null);
|
|
|
+ feeCenter.setVoucherStatus(0);
|
|
|
+ feeCenter.setVoucherById(0L);
|
|
|
+ feeCenter.setVoucherByName("");
|
|
|
+ feeCenter.setInvoiceBillId("");
|
|
|
+ feeCenter.setInvoiceBillNo("");
|
|
|
+ feeCenter.setInvoiceNo("");
|
|
|
+ feeCenter.setInvoiceDate(null);
|
|
|
+ feeCenter.setInvoiceStatus(0);
|
|
|
+ feeCenter.setInvoiceCurCode("");
|
|
|
+ feeCenter.setInvoiceExrate(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setInvoiceAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setInvoiceAmountLoc(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setUninvoicedAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setAppliedAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setAppliedInvoiceAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setReconciliationAmount(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setAppliedAmountStl(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
|
|
|
+ feeCenter.setInvoiceById(0L);
|
|
|
+ feeCenter.setInvoiceByName("");
|
|
|
+ feeCenter.setIsSignfor(0);
|
|
|
+ feeCenter.setSignforId(0);
|
|
|
+ feeCenter.setSignforName("");
|
|
|
+ feeCenter.setSignforDate(null);
|
|
|
+ feeCenter.setApplyId(0L);
|
|
|
+ feeCenter.setApplyName("");
|
|
|
+ feeCenter.setApplyTime(null);
|
|
|
+ feeCenter.setApproverId(0L);
|
|
|
+ feeCenter.setApproverName("");
|
|
|
+ feeCenter.setApproveTime(null);
|
|
|
+ feeCenter.setAuditStatus("0");
|
|
|
+ feeCenter.setId(null);
|
|
|
+ feeCenter.setPid(item.getId());
|
|
|
+ feeCenter.setBillNo(item.getBillNo());
|
|
|
+ feeCenter.setBusinessType(item.getBusinessType());
|
|
|
+ feeCenter.setBillType(item.getBillType());
|
|
|
+ feeCenter.setBillDate(item.getBillDate());
|
|
|
+ feeCenter.setSrcType(item.getSrcType());
|
|
|
+ feeCenter.setSrcId(item.getSrcId());
|
|
|
+ feeCenter.setSrcCnName(item.getSrcCnName());
|
|
|
+ feeCenter.setSrcEnName(item.getSrcEnName());
|
|
|
+ feeCenter.setBillCorpId(item.getCorpId());
|
|
|
+ feeCenter.setBillCorpCnName(item.getCorpCnName());
|
|
|
+ feeCenter.setBillCorpEnName(item.getCorpEnName());
|
|
|
+ feeCenter.setBillShortName(item.getShortName());
|
|
|
+ feeCenter.setLineId(item.getLineId());
|
|
|
+ feeCenter.setLineCnName(item.getLineCnName());
|
|
|
+ feeCenter.setLineEnName(item.getLineEnName());
|
|
|
+ feeCenter.setVesselId(item.getVesselId());
|
|
|
+ feeCenter.setVesselEnName(item.getVesselEnName());
|
|
|
+ feeCenter.setVesselCnName(item.getVesselCnName());
|
|
|
+ feeCenter.setVoyageNo(item.getVoyageNo());
|
|
|
+ feeCenter.setMblno(item.getMblno());
|
|
|
+ feeCenter.setHblno(item.getHblno());
|
|
|
+ feeCenter.setEtd(item.getEtd());
|
|
|
+ feeCenter.setEta(item.getEta());
|
|
|
+ feeCenter.setPolId(item.getPolId());
|
|
|
+ feeCenter.setPolCode(item.getPolCode());
|
|
|
+ feeCenter.setPolCnName(item.getPolCnName());
|
|
|
+ feeCenter.setPolEnName(item.getPolEnName());
|
|
|
+ feeCenter.setPodId(item.getPodId());
|
|
|
+ feeCenter.setPodCode(item.getPodCode());
|
|
|
+ feeCenter.setPodCnName(item.getPodCnName());
|
|
|
+ feeCenter.setPodEnName(item.getPodEnName());
|
|
|
+ feeCenter.setPaymode(item.getMpaymode());
|
|
|
+ feeCenter.setPayplace(item.getMpayplace());
|
|
|
+ feeCenter.setRefno(item.getRefno());
|
|
|
+ feeCenter.setBookingNo(item.getBookingNo());
|
|
|
+ if (!preContainersList.isEmpty()) {
|
|
|
+ PreContainers preContainers = preContainersList.stream().filter(e -> e.getCntrTypeCode().equals(feeCenter.getUnitNo()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (preContainers != null) {
|
|
|
+ feeCenter.setQuantity(new BigDecimal(preContainers.getQuantity() + ""));
|
|
|
+ // 去税金额 = 数量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(feeCenter.getQuantity().multiply(feeCenter.getPrice()))
|
|
|
+ .setScale(2, RoundingMode.HALF_UP);
|
|
|
+ taxRate = taxRate.add(feeCenter.getTaxRate()).add(feeCenter.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(feeCenter.getAmountDiscount()));
|
|
|
+
|
|
|
+ //判断是否是本位币
|
|
|
+ if ("CNY".equals(feeCenter.getCurCode())) {
|
|
|
+ feeCenter.setAmountNetLoc(amountNet);
|
|
|
+ feeCenter.setAmountTaxLoc(amountTax);
|
|
|
+ feeCenter.setAmountLoc(amount);
|
|
|
+ feeCenter.setAmountDiscountLoc(amount);
|
|
|
+ } else {
|
|
|
+ feeCenter.setAmountNetLoc(feeCenter.getExrate().multiply(amountNet));
|
|
|
+ feeCenter.setAmountTaxLoc(feeCenter.getExrate().multiply(amountTax));
|
|
|
+ feeCenter.setAmountLoc(feeCenter.getExrate().multiply(amount));
|
|
|
+ feeCenter.setAmountDiscountLoc(feeCenter.getExrate().multiply(amount));
|
|
|
+ }
|
|
|
+ feeCenter.setAmountNet(amountNet);
|
|
|
+ feeCenter.setAmountTax(amountTax);
|
|
|
+ feeCenter.setAmount(amount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ feeCenter.setUnsettledAmount(feeCenter.getAmount());
|
|
|
+ feeCenters.add(feeCenter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!feeCenters.isEmpty()) {
|
|
|
+ feeCenterService.saveBatch(feeCenters);
|
|
|
+ }
|
|
|
+ return R.data("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R batchCopyCostPrompt(Bills bills) {
|
|
|
+ if (ObjectUtils.isNull(bills.getIds()) || ObjectUtils.isNull(bills.getFeeCenterListAll()) || bills.getFeeCenterListAll().isEmpty()) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .in(Bills::getId, Func.toLongList(bills.getIds())));
|
|
|
+ if (billsList.isEmpty()) {
|
|
|
+ throw new RuntimeException("未查到单据信息");
|
|
|
+ }
|
|
|
+ String text = "";
|
|
|
+ for (Bills item : billsList) {
|
|
|
+ if (ObjectUtils.isNotNull(bills.getQuantityCntrDescr()) &&
|
|
|
+ ObjectUtils.isNotNull(item.getQuantityCntrDescr()) &&
|
|
|
+ !bills.getQuantityCntrDescr().equals(item.getQuantityCntrDescr())) {
|
|
|
+ text = "提单号:" + item.getMblno() + ",箱型箱量:" + item.getQuantityCntrDescr() + ",与导入单据箱型箱量:" + bills.getQuantityCntrDescr() + "不一致是否继续导入!";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(text)) {
|
|
|
+ return R.data(text);
|
|
|
+ } else {
|
|
|
+ return R.data("操作成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|