|
|
@@ -612,12 +612,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
//主单信息同步分单
|
|
|
List<Bills> details = this.synchronous(bills);
|
|
|
if (!details.isEmpty()) {
|
|
|
- /*amountDr = amountDr.add(details.stream().map(Bills::getAmountDr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCr = amountCr.add(details.stream().map(Bills::getAmountCr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountDrUsd = amountDrUsd.add(details.stream().map(Bills::getAmountDrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrUsd = amountCrUsd.add(details.stream().map(Bills::getAmountCrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountDrLoc = amountDrLoc.add(details.stream().map(Bills::getAmountDrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrLoc = amountCrLoc.add(details.stream().map(Bills::getAmountCrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));*/
|
|
|
quantity = quantity.add(details.stream().map(Bills::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
grossWeight = grossWeight.add(details.stream().map(Bills::getGrossWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
measurement = measurement.add(details.stream().map(Bills::getMeasurement).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
@@ -630,77 +624,18 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(Bills::getId, bills.getMasterId()));
|
|
|
//重新计算主单合计
|
|
|
if (details != null) {
|
|
|
- String exrateType = currencyUtils.standardCurrency(branchId);
|
|
|
- /*BigDecimal amountDrM = new BigDecimal("0.00");
|
|
|
- BigDecimal amountCrM = new BigDecimal("0.00");
|
|
|
- BigDecimal amountProfitM;
|
|
|
- BigDecimal amountDrUsdM = new BigDecimal("0.00");
|
|
|
- BigDecimal amountCrUsdM = new BigDecimal("0.00");
|
|
|
- BigDecimal amountProfitUsdM;
|
|
|
- BigDecimal amountDrLocM = new BigDecimal("0.00");
|
|
|
- BigDecimal amountCrLocM = new BigDecimal("0.00");
|
|
|
- BigDecimal amountProfitLocM;*/
|
|
|
BigDecimal quantityM = bills.getQuantity();
|
|
|
BigDecimal grossWeightM = bills.getGrossWeight();
|
|
|
BigDecimal measurementM = bills.getMeasurement();
|
|
|
- /* List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .select(FeeCenter::getCurCode, FeeCenter::getAmount, FeeCenter::getDc)
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .eq(FeeCenter::getPid, details.getId()));
|
|
|
- for (FeeCenter item : feeCenterList) {
|
|
|
- if ("C".equals(item.getDc())) {
|
|
|
- if (exrateType.equals(item.getCurCode())) {
|
|
|
- amountCrM = amountCrM.add(item.getAmount());
|
|
|
- amountCrLocM = amountCrLocM.add(item.getAmount());
|
|
|
- } else {
|
|
|
- amountCrUsdM = amountCrUsdM.add(item.getAmount());
|
|
|
- amountCrLocM = amountCrLocM.add(item.getAmount().multiply(item.getExrate()));
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (exrateType.equals(item.getCurCode())) {
|
|
|
- amountDrM = amountDrM.add(item.getAmount());
|
|
|
- amountDrLocM = amountDrLocM.add(item.getAmount());
|
|
|
- } else {
|
|
|
- amountDrUsdM = amountDrUsdM.add(item.getAmount());
|
|
|
- amountDrLocM = amountDrLocM.add(item.getAmount().multiply(item.getExrate()));
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
List<Bills> billsList = this.synchronous(details);
|
|
|
if (!billsList.isEmpty()) {
|
|
|
List<Bills> billsLists = billsList.stream().filter(e -> !e.getId().equals(bills.getId())).collect(Collectors.toList());
|
|
|
if (!billsLists.isEmpty()) {
|
|
|
- /*amountDrM = amountDrM.add(billsLists.stream().map(Bills::getAmountDr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrM = amountCrM.add(billsLists.stream().map(Bills::getAmountCr).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountDrUsdM = amountDrUsdM.add(billsLists.stream().map(Bills::getAmountDrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrUsdM = amountCrUsdM.add(billsLists.stream().map(Bills::getAmountCrUsd).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountDrLocM = amountDrLocM.add(billsLists.stream().map(Bills::getAmountDrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- amountCrLocM = amountCrLocM.add(billsLists.stream().map(Bills::getAmountCrLoc).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));*/
|
|
|
quantityM = quantityM.add(billsLists.stream().map(Bills::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
grossWeightM = grossWeightM.add(billsLists.stream().map(Bills::getGrossWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
measurementM = measurementM.add(billsLists.stream().map(Bills::getMeasurement).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
}
|
|
|
- /*amountDrM = amountDrM.add(amountDr);
|
|
|
- amountCrM = amountCrM.add(amountCr);
|
|
|
- amountDrUsdM = amountDrUsdM.add(amountDrUsd);
|
|
|
- amountCrUsdM = amountCrUsdM.add(amountCrUsd);
|
|
|
- amountDrLocM = amountDrLocM.add(amountDrLoc);
|
|
|
- amountCrLocM = amountCrLocM.add(amountCrLoc);
|
|
|
- //利润 = 收 - 付
|
|
|
- amountProfitM = amountDrM.subtract(amountCrM);
|
|
|
- amountProfitUsdM = amountDrUsdM.subtract(amountCrUsdM);
|
|
|
- amountProfitLocM = amountDrLocM.subtract(amountCrLocM);
|
|
|
- details.setAmountDr(amountDrM);
|
|
|
- details.setAmountCr(amountCrM);
|
|
|
- details.setAmountProfit(amountProfitM);
|
|
|
- details.setAmountDrUsd(amountDrUsdM);
|
|
|
- details.setAmountCrUsd(amountCrUsdM);
|
|
|
- details.setAmountProfitUsd(amountProfitUsdM);
|
|
|
- details.setAmountDrLoc(amountDrLocM);
|
|
|
- details.setAmountCrLoc(amountCrLocM);
|
|
|
- details.setAmountProfitLoc(amountProfitLocM);*/
|
|
|
details.setQuantity(quantityM);
|
|
|
details.setGrossWeight(grossWeightM);
|
|
|
details.setMeasurement(measurementM);
|
|
|
@@ -1381,7 +1316,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,false);
|
|
|
+ this.itemCopy(bills, billsList, false);
|
|
|
}
|
|
|
bills.setTeuTotal(teuTotal);
|
|
|
bills.setGrossWeight(grossWeight);
|
|
|
@@ -1400,7 +1335,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
return R.data("操作成功");
|
|
|
}
|
|
|
|
|
|
- private void itemCopy(Bills bills, List<Bills> billsList,boolean status) {
|
|
|
+ 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)
|
|
|
@@ -1500,7 +1435,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
containersBillsService.saveBatch(containersBillsListNew);
|
|
|
}
|
|
|
} else {
|
|
|
- if (status){
|
|
|
+ if (status) {
|
|
|
throw new RuntimeException("分单号:" + billsList.stream().map(Bills::getHblno).collect(Collectors.joining(","))
|
|
|
+ "未分配件重尺,同步失败");
|
|
|
}
|
|
|
@@ -2116,6 +2051,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
throw new SecurityException("操作失败,请联系管理员");
|
|
|
}
|
|
|
declare.setStatus(0);
|
|
|
+ declare.setBillStatus(0);
|
|
|
baseMapper.updateById(declare);
|
|
|
if ("KHTS".equals(declare.getBusinessType())) {
|
|
|
return declare;
|
|
|
@@ -2131,6 +2067,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
if (!billsList.isEmpty()) {
|
|
|
for (Bills item : billsList) {
|
|
|
item.setStatus(0);
|
|
|
+ item.setBillStatus(0);
|
|
|
item.setUpdateTime(new Date());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
@@ -4871,6 +4808,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
if (ObjectUtils.isNull(item.getCntrTypeCode())) {
|
|
|
throw new RuntimeException("箱型不能为空");
|
|
|
}
|
|
|
+ item.setWhetherModifyJson(item.getCntrTypeCode() + "+" + item.getQuantity());
|
|
|
if (item.getId() == null) {
|
|
|
item.setCreateTime(new Date());
|
|
|
item.setCreateUser(AuthUtil.getUserId());
|
|
|
@@ -5015,7 +4953,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,true);
|
|
|
+ this.itemCopy(bills, billsList, true);
|
|
|
}
|
|
|
bills.setTeuTotal(teuTotal);
|
|
|
bills.setGrossWeight(grossWeight);
|
|
|
@@ -5219,6 +5157,69 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
bills.setUpdateTime(new Date());
|
|
|
bills.setIssueStatus("0");
|
|
|
baseMapper.updateById(bills);
|
|
|
+ Bills detail = baseMapper.selectOne(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getTemporaryId, bills.getId()));
|
|
|
+ if (detail != null) {
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ detail.setBillStatus(1);
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ if (ObjectUtils.isNotNull(detail.getCustomerServiceId())) {
|
|
|
+ R<User> res = userClient.userInfoById(detail.getCustomerServiceId());
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String formatted = now.format(formatter);
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(detail.getId() + "");
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(null);
|
|
|
+ sendMessage.setToUserId(res.getData().getId());
|
|
|
+ sendMessage.setToUserName(res.getData().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("客户已撤销订舱,请及时待处理!订舱单号:" + bills.getBillNo() + "时间:" + formatted);
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(detail.getOperatorId())) {
|
|
|
+ R<User> res = userClient.userInfoById(detail.getOperatorId());
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String formatted = now.format(formatter);
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(detail.getId() + "");
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(null);
|
|
|
+ sendMessage.setToUserId(res.getData().getId());
|
|
|
+ sendMessage.setToUserName(res.getData().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("客户已撤销订舱,请及时待处理!订舱单号:" + bills.getBillNo() + "时间:" + formatted);
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return R.data(bills);
|
|
|
}
|
|
|
|
|
|
@@ -5659,6 +5660,253 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
return R.data("操作成功");
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R synchronousFile(Bills bills) {
|
|
|
+ if (ObjectUtils.isNull(bills.getFilesList()) || bills.getFilesList().isEmpty() || ObjectUtils.isNull(bills.getId())) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ if (detail == null) {
|
|
|
+ throw new RuntimeException("未查到单据信息");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(detail.getTemporaryId())) {
|
|
|
+ throw new RuntimeException("该订单不是来源订舱单据");
|
|
|
+ }
|
|
|
+ Bills bookingCabin = baseMapper.selectById(detail.getTemporaryId());
|
|
|
+ if (bookingCabin == null) {
|
|
|
+ throw new RuntimeException("未查到来源订舱单据信息");
|
|
|
+ }
|
|
|
+ List<FilesCenter> filesCenterList = new ArrayList<>();
|
|
|
+ for (FilesCenter item : bills.getFilesList()) {
|
|
|
+ item.setId(null);
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setPid(bookingCabin.getId());
|
|
|
+ item.setUpdateUser(null);
|
|
|
+ item.setUpdateUserName(null);
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ filesCenterList.add(item);
|
|
|
+ }
|
|
|
+ if (!filesCenterList.isEmpty()) {
|
|
|
+ filesCenterService.saveBatch(filesCenterList);
|
|
|
+ }
|
|
|
+ return R.data(bills);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R submitBoxType(Bills bills) {
|
|
|
+ if (ObjectUtils.isNull(bills.getId())) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills bookingCabin = baseMapper.selectById(bills.getId());
|
|
|
+ if (bookingCabin == null) {
|
|
|
+ throw new RuntimeException("未查到单据信息");
|
|
|
+ }
|
|
|
+ bookingCabin.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ bookingCabin.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ bookingCabin.setUpdateTime(new Date());
|
|
|
+ bookingCabin.setWhetherModify("1");
|
|
|
+ baseMapper.updateById(bookingCabin);
|
|
|
+ Bills detail = baseMapper.selectOne(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getTemporaryId, bookingCabin.getId()));
|
|
|
+ if (detail != null) {
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ detail.setWhetherModify("1");
|
|
|
+ baseMapper.updateById(detail);
|
|
|
+ if (ObjectUtils.isNotNull(detail.getCustomerServiceId())) {
|
|
|
+ R<User> res = userClient.userInfoById(detail.getCustomerServiceId());
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String formatted = now.format(formatter);
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(detail.getId() + "");
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(null);
|
|
|
+ sendMessage.setToUserId(res.getData().getId());
|
|
|
+ sendMessage.setToUserName(res.getData().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("客户已提交修改箱型箱量,请及时待处理!订舱单号:" + bills.getBillNo() + "时间:" + formatted);
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(detail.getOperatorId())) {
|
|
|
+ R<User> res = userClient.userInfoById(detail.getOperatorId());
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String formatted = now.format(formatter);
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(detail.getId() + "");
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(null);
|
|
|
+ sendMessage.setToUserId(res.getData().getId());
|
|
|
+ sendMessage.setToUserName(res.getData().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("客户已提交修改箱型箱量,请及时待处理!订舱单号:" + bills.getBillNo() + "时间:" + formatted);
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R synchronousBoxType(Bills bills) {
|
|
|
+ if (ObjectUtils.isNull(bills.getId())) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills detail = baseMapper.selectById(bills.getId());
|
|
|
+ if (detail == null) {
|
|
|
+ throw new RuntimeException("未查到单据信息");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(detail.getTemporaryId())) {
|
|
|
+ throw new RuntimeException("该订单不是来源订舱单据");
|
|
|
+ }
|
|
|
+ Bills bookingCabin = baseMapper.selectById(detail.getTemporaryId());
|
|
|
+ if (bookingCabin == null) {
|
|
|
+ throw new RuntimeException("未查到来源订舱单据信息");
|
|
|
+ }
|
|
|
+ List<PreContainers> containersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
+ .eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PreContainers::getIsDeleted, 0)
|
|
|
+ .eq(PreContainers::getPid, detail.getId()));
|
|
|
+ if (!containersList.isEmpty()) {
|
|
|
+ preContainersService.removeByIds(containersList.stream().map(PreContainers::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
+ .eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PreContainers::getIsDeleted, 0)
|
|
|
+ .eq(PreContainers::getPid, bookingCabin.getId()));
|
|
|
+ if (preContainersList.isEmpty()) {
|
|
|
+ throw new RuntimeException("未查到订舱箱型箱量");
|
|
|
+ }
|
|
|
+ List<PreContainers> preContainers = new ArrayList<>();
|
|
|
+ for (PreContainers item : preContainersList) {
|
|
|
+ item.setId(null);
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setPid(detail.getId());
|
|
|
+ item.setUpdateUser(null);
|
|
|
+ item.setUpdateUserName(null);
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ preContainers.add(item);
|
|
|
+ }
|
|
|
+ if (!preContainers.isEmpty()) {
|
|
|
+ preContainersService.saveBatch(preContainers);
|
|
|
+ }
|
|
|
+ return R.data(bills);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R submitCommonTemplates(Bills detail) {
|
|
|
+ if (detail.getId() == null) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills bills = baseMapper.selectById(detail.getId());
|
|
|
+ if (bills.getId() == null) {
|
|
|
+ BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
|
|
|
+ .select(BusinessType::getId)
|
|
|
+ .eq(BusinessType::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BusinessType::getIsDeleted, 0)
|
|
|
+ .eq(BusinessType::getStatus, 0)
|
|
|
+ .eq(BusinessType::getCode, "KHDC"));
|
|
|
+ if (businessType == null) {
|
|
|
+ throw new RuntimeException("未找到可用业务类型");
|
|
|
+ }
|
|
|
+ BusinessBillNo businessBillNo = new BusinessBillNo();
|
|
|
+ businessBillNo.setBusinessTypeId(businessType.getId());
|
|
|
+ businessBillNo.setCode("DCMB");
|
|
|
+ businessBillNo.setBranchId(bills.getBranchId());
|
|
|
+ R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
|
|
|
+ if (!clientBillNo.isSuccess()) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.fail(500, "生成订单编号失败");
|
|
|
+ }
|
|
|
+ bills.setId(null);
|
|
|
+ bills.setIssueStatus(null);
|
|
|
+ bills.setStatus(null);
|
|
|
+ bills.setBillStatus(null);
|
|
|
+ bills.setWhetherModify(null);
|
|
|
+ bills.setBillNo((String) clientBillNo.getData());
|
|
|
+ bills.setBusinessType("DCMB");
|
|
|
+ bills.setCreateTime(new Date());
|
|
|
+ bills.setCreateUser(AuthUtil.getUserId());
|
|
|
+ bills.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ bills.setTenantId(AuthUtil.getTenantId());
|
|
|
+ bills.setUpdateTime(null);
|
|
|
+ bills.setUpdateUser(null);
|
|
|
+ bills.setUpdateUserName(null);
|
|
|
+ // 初始创建为1
|
|
|
+ bills.setVersion("1");
|
|
|
+ this.save(bills);
|
|
|
+ }
|
|
|
+ List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
+ .eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PreContainers::getIsDeleted, 0)
|
|
|
+ .eq(PreContainers::getPid, bills.getId()));
|
|
|
+ if (!preContainersList.isEmpty()) {
|
|
|
+ List<PreContainers> preContainers = new ArrayList<>();
|
|
|
+ for (PreContainers item : preContainersList) {
|
|
|
+ item.setId(null);
|
|
|
+ item.setWhetherModifyJson(item.getCntrTypeCode() + "+" + item.getQuantity());
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ item.setUpdateUser(null);
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ item.setUpdateUserName(null);
|
|
|
+ item.setPid(bills.getId());
|
|
|
+ preContainers.add(item);
|
|
|
+ }
|
|
|
+ preContainersService.saveBatch(preContainers);
|
|
|
+ }
|
|
|
+ SeaBillsDetail seaBillsDetail = seaBillsDetailService.getOne(new LambdaQueryWrapper<SeaBillsDetail>()
|
|
|
+ .eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(SeaBillsDetail::getPid, bills.getId()));
|
|
|
+ if (seaBillsDetail != null) {
|
|
|
+ seaBillsDetail.setId(null);
|
|
|
+ seaBillsDetail.setUpdateUser(null);
|
|
|
+ seaBillsDetail.setUpdateTime(null);
|
|
|
+ seaBillsDetail.setUpdateUserName(null);
|
|
|
+ seaBillsDetail.setPid(bills.getId());
|
|
|
+ seaBillsDetail.setCreateUser(AuthUtil.getUserId());
|
|
|
+ seaBillsDetail.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ seaBillsDetail.setCreateDept(bills.getCreateDept());
|
|
|
+ seaBillsDetail.setCreateDeptName(bills.getCreateDeptName());
|
|
|
+ seaBillsDetail.setCreateTime(new Date());
|
|
|
+ seaBillsDetailService.save(seaBillsDetail);
|
|
|
+ }
|
|
|
+ return R.data(bills);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 删除海运进出口明细表
|
|
|
*
|