|
|
@@ -43,6 +43,8 @@ import org.springblade.los.basic.corps.service.IBCorpsService;
|
|
|
import org.springblade.los.basic.cur.entity.BCurExrate;
|
|
|
import org.springblade.los.basic.fees.entity.BFees;
|
|
|
import org.springblade.los.basic.fees.service.IBFeesService;
|
|
|
+import org.springblade.los.basic.ports.entity.BPorts;
|
|
|
+import org.springblade.los.basic.ports.service.IBPortsService;
|
|
|
import org.springblade.los.billno.entity.BusinessBillNo;
|
|
|
import org.springblade.los.billno.service.IBusinessBillNoService;
|
|
|
import org.springblade.los.business.amends.entity.Amends;
|
|
|
@@ -147,6 +149,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
|
|
|
private final IBCorpsService bCorpsService;
|
|
|
|
|
|
+ private final IBPortsService ibPortsService;
|
|
|
+
|
|
|
private final AmendsMapper amendsMapper;
|
|
|
|
|
|
@Override
|
|
|
@@ -257,9 +261,17 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
// 初始创建为1
|
|
|
bills.setVersion("1");
|
|
|
+ if (ObjectUtils.isNotNull(bills.getPolId())){
|
|
|
+ BPorts ports = ibPortsService.getById(bills.getPolId());
|
|
|
+ if (ports != null){
|
|
|
+ bills.setPolCnName(ports.getCnName());
|
|
|
+ bills.setPolEnName(ports.getEnName());
|
|
|
+ bills.setPolCode(ports.getCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
this.save(bills);
|
|
|
} else {
|
|
|
- Bills dataSourceBill = baseMapper.selectOne(new LambdaQueryWrapper<Bills>().select(Bills::getId, Bills::getVersion).eq(Bills::getId, bills.getId()));
|
|
|
+ Bills dataSourceBill = baseMapper.selectOne(new LambdaQueryWrapper<Bills>().select(Bills::getId,Bills::getCorpId,Bills::getActualEta, Bills::getVersion).eq(Bills::getId, bills.getId()));
|
|
|
if (!Objects.equals(dataSourceBill.getVersion(), bills.getVersion())) {
|
|
|
return R.fail(601, "数据已被其他用户更新,请等待刷新后重试");
|
|
|
}
|
|
|
@@ -267,6 +279,26 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
// 旧数据处理
|
|
|
int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 : Integer.parseInt(dataSourceBill.getVersion());
|
|
|
bills.setVersion(String.valueOf(version + 1));
|
|
|
+ if ("SI".equals(bills.getBusinessType())){
|
|
|
+ boolean corpId = ObjectUtils.isNotNull(bills.getCorpId()) && !bills.getCorpId().equals(dataSourceBill.getCorpId());
|
|
|
+ boolean ata = ObjectUtils.isNotNull(bills.getActualEta()) && !bills.getActualEta().equals(dataSourceBill.getActualEta());
|
|
|
+ if (corpId || ata){
|
|
|
+ List<FinAccBills> finAccBillsList = finAccBillsService.list(new LambdaQueryWrapper<FinAccBills>()
|
|
|
+ .eq(FinAccBills::getBusinessBillId,bills.getId())
|
|
|
+ .eq(FinAccBills::getTenantId,AuthUtil.getTenantId())
|
|
|
+ .eq(FinAccBills::getIsDeleted,0));
|
|
|
+ if (!finAccBillsList.isEmpty()){
|
|
|
+ for (FinAccBills item : finAccBillsList){
|
|
|
+ item.setBusinessDate(bills.getActualEta());
|
|
|
+ item.setBillDate(bills.getActualEta());
|
|
|
+ item.setBillCorpId(bills.getCorpId());
|
|
|
+ item.setBillCorpCnName(bills.getCorpCnName());
|
|
|
+ item.setBillCorpEnName(bills.getCorpEnName());
|
|
|
+ }
|
|
|
+ finAccBillsService.updateBatchById(finAccBillsList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
if (!"MH".equals(bills.getBillType())) {
|
|
|
List<Long> ids = count.stream().map(Bills::getId).distinct().collect(Collectors.toList());
|
|
|
if (ObjectUtils.isNotNull(bills.getMblno())) {
|
|
|
@@ -5157,69 +5189,6 @@ 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);
|
|
|
}
|
|
|
|
|
|
@@ -5247,6 +5216,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
}
|
|
|
declare.setStatus(0);
|
|
|
+ declare.setBillStatus(0);
|
|
|
baseMapper.updateById(declare);
|
|
|
if ("MM".equals(declare.getBillType())) {
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
@@ -5257,6 +5227,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());
|
|
|
@@ -5772,7 +5743,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return null;
|
|
|
+ return R.data(bills);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -5788,10 +5759,20 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
if (ObjectUtils.isNull(detail.getTemporaryId())) {
|
|
|
throw new RuntimeException("该订单不是来源订舱单据");
|
|
|
}
|
|
|
+ detail.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ detail.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ detail.setUpdateTime(new Date());
|
|
|
+ detail.setWhetherModify("2");
|
|
|
+ baseMapper.updateById(detail);
|
|
|
Bills bookingCabin = baseMapper.selectById(detail.getTemporaryId());
|
|
|
if (bookingCabin == null) {
|
|
|
throw new RuntimeException("未查到来源订舱单据信息");
|
|
|
}
|
|
|
+ bookingCabin.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ bookingCabin.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ bookingCabin.setUpdateTime(new Date());
|
|
|
+ bookingCabin.setWhetherModify("2");
|
|
|
+ baseMapper.updateById(bookingCabin);
|
|
|
List<PreContainers> containersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
|
|
|
.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PreContainers::getIsDeleted, 0)
|
|
|
@@ -5831,47 +5812,46 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
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);
|
|
|
+ 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.setTemplatesName(detail.getTemplatesName());
|
|
|
+ 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()));
|
|
|
+ .eq(PreContainers::getPid, detail.getId()));
|
|
|
if (!preContainersList.isEmpty()) {
|
|
|
List<PreContainers> preContainers = new ArrayList<>();
|
|
|
for (PreContainers item : preContainersList) {
|
|
|
@@ -5890,7 +5870,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
SeaBillsDetail seaBillsDetail = seaBillsDetailService.getOne(new LambdaQueryWrapper<SeaBillsDetail>()
|
|
|
.eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(SeaBillsDetail::getPid, bills.getId()));
|
|
|
+ .eq(SeaBillsDetail::getPid, detail.getId()));
|
|
|
if (seaBillsDetail != null) {
|
|
|
seaBillsDetail.setId(null);
|
|
|
seaBillsDetail.setUpdateUser(null);
|
|
|
@@ -5907,6 +5887,83 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
return R.data(bills);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R refundCabin(Bills bills) {
|
|
|
+ if (new Date().compareTo(bills.getEtd()) < 0) {
|
|
|
+ throw new RuntimeException("该订单已开船,退舱失败");
|
|
|
+ }
|
|
|
+ bills.setUpdateUserName(AuthUtil.getUserName());
|
|
|
+ bills.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ bills.setUpdateTime(new Date());
|
|
|
+ bills.setBillStatus(1);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 删除海运进出口明细表
|
|
|
*
|