|
|
@@ -31,7 +31,6 @@ import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
-import org.springblade.los.Util.BoxNumUtils;
|
|
|
import org.springblade.los.Util.CurrencyUtils;
|
|
|
import org.springblade.los.Util.StringTools;
|
|
|
import org.springblade.los.Util.ZrUtil;
|
|
|
@@ -542,6 +541,18 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
BigDecimal measurement = bills.getMeasurement();
|
|
|
//主单应加上分单费用
|
|
|
if ("MM".equals(bills.getBillType()) && ObjectUtils.isNotNull(bills.getId())) {
|
|
|
+ if (ObjectUtils.isNotNull(bills.getMblno()) && ObjectUtils.isNotNull(bills.getTemporaryId())){
|
|
|
+ Bills bills1 = new Bills();
|
|
|
+ bills1.setMblno(bills.getMblno());
|
|
|
+ bills1.setVesselId(bills.getVesselId());
|
|
|
+ bills1.setVesselCnName(bills.getVesselCnName());
|
|
|
+ bills1.setVesselEnName(bills.getVesselEnName());
|
|
|
+ bills1.setVoyageNo(bills.getVoyageNo());
|
|
|
+ bills1.setReturnDate(bills.getReturnDate());
|
|
|
+ bills1.setReturnEmptyDate(bills.getReturnEmptyDate());
|
|
|
+ bills1.setId(bills.getTemporaryId());
|
|
|
+ this.updateById(bills1);
|
|
|
+ }
|
|
|
bills.setMasterBillNo(bills.getBillNo());
|
|
|
//主单信息同步分单
|
|
|
List<Bills> details = this.synchronous(bills);
|
|
|
@@ -801,26 +812,26 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
boolean statusAtd = false;
|
|
|
boolean statusAta = false;
|
|
|
if ("SE".equals(bills.getBusinessType())) {
|
|
|
- if (ObjectUtils.isNull(details.getEtd()) && ObjectUtils.isNotNull(bills.getEtd())){
|
|
|
+ if (ObjectUtils.isNull(details.getEtd()) && ObjectUtils.isNotNull(bills.getEtd())) {
|
|
|
statusEtd = true;
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(details.getEtd()) && !details.getEtd().equals(bills.getEtd())) {
|
|
|
statusEtd = true;
|
|
|
}
|
|
|
- if (ObjectUtils.isNull(details.getActualEtd()) && ObjectUtils.isNotNull(bills.getActualEtd())){
|
|
|
+ if (ObjectUtils.isNull(details.getActualEtd()) && ObjectUtils.isNotNull(bills.getActualEtd())) {
|
|
|
statusEtd = true;
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(details.getActualEtd()) && !details.getActualEtd().equals(bills.getActualEtd())) {
|
|
|
statusAtd = true;
|
|
|
}
|
|
|
} else if ("SI".equals(bills.getBusinessType())) {
|
|
|
- if (ObjectUtils.isNull(details.getEta()) && ObjectUtils.isNotNull(bills.getEta())){
|
|
|
+ if (ObjectUtils.isNull(details.getEta()) && ObjectUtils.isNotNull(bills.getEta())) {
|
|
|
statusEtd = true;
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(details.getEta()) && !details.getEta().equals(bills.getEta())) {
|
|
|
statusEta = true;
|
|
|
}
|
|
|
- if (ObjectUtils.isNull(details.getActualEta()) && ObjectUtils.isNotNull(bills.getActualEta())){
|
|
|
+ if (ObjectUtils.isNull(details.getActualEta()) && ObjectUtils.isNotNull(bills.getActualEta())) {
|
|
|
statusEtd = true;
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(details.getActualEta()) && !details.getActualEta().equals(bills.getActualEta())) {
|
|
|
@@ -1300,6 +1311,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(Containers::getIsDeleted, 0)
|
|
|
.in(Containers::getPid, billsList.stream().map(Bills::getId).collect(Collectors.toList())));
|
|
|
if (!containersList.isEmpty()) {
|
|
|
+ for (Containers item : containersList) {
|
|
|
+ item.setMblno(bills.getMblno());
|
|
|
+ }
|
|
|
+ containersService.updateBatchById(containersList);
|
|
|
List<Containers> containersListNew = new ArrayList<>();
|
|
|
for (Containers item : containersList) {
|
|
|
item.setSrcSplitOrderId(item.getPid());
|
|
|
@@ -2643,13 +2658,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
detail.setShippingStaffId(bills.getShippingStaffId());
|
|
|
detail.setShippingStaffName(bills.getShippingStaffName());
|
|
|
baseMapper.updateById(detail);
|
|
|
- if ("MM".equals(detail.getBillType())){
|
|
|
+ if ("MM".equals(detail.getBillType())) {
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
- if (!billsList.isEmpty()){
|
|
|
- for (Bills item : billsList){
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
item.setLogisticsStatus("已提交");
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -2736,13 +2751,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
detail.setShippingStaffId(null);
|
|
|
detail.setShippingStaffName("");
|
|
|
baseMapper.updateById(detail);
|
|
|
- if ("MM".equals(detail.getBillType())){
|
|
|
+ if ("MM".equals(detail.getBillType())) {
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
- if (!billsList.isEmpty()){
|
|
|
- for (Bills item : billsList){
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
item.setLogisticsStatus("录入");
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -2904,7 +2919,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
if (!details.isEmpty()) {
|
|
|
- for (Bills item : details){
|
|
|
+ for (Bills item : details) {
|
|
|
item.setTransferOrderStatus("已转单");
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -3350,13 +3365,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
bills1.setUpdateUserName(AuthUtil.getUserName());
|
|
|
bills1.setUpdateTime(new Date());
|
|
|
baseMapper.updateById(bills1);
|
|
|
- if ("MM".equals(bills1.getBillType())){
|
|
|
+ if ("MM".equals(bills1.getBillType())) {
|
|
|
List<Bills> billsList1 = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills1.getId()));
|
|
|
- if (!billsList1.isEmpty()){
|
|
|
- for (Bills item : billsList1){
|
|
|
+ if (!billsList1.isEmpty()) {
|
|
|
+ for (Bills item : billsList1) {
|
|
|
item.setReceiveStatus("已接收");
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -3366,13 +3381,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if ("MM".equals(detail.getBillType())){
|
|
|
+ if ("MM".equals(detail.getBillType())) {
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
- if (!billsList.isEmpty()){
|
|
|
- for (Bills item : billsList){
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
item.setReceiveStatus("已接收");
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -3406,13 +3421,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
bills1.setUpdateUserName(AuthUtil.getUserName());
|
|
|
bills1.setUpdateTime(new Date());
|
|
|
baseMapper.updateById(bills1);
|
|
|
- if ("MM".equals(bills1.getBillType())){
|
|
|
+ if ("MM".equals(bills1.getBillType())) {
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills1.getId()));
|
|
|
- if (!billsList.isEmpty()){
|
|
|
- for (Bills item : billsList){
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
item.setReceiveStatus("录入");
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -3422,13 +3437,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if ("MM".equals(detail.getBillType())){
|
|
|
+ if ("MM".equals(detail.getBillType())) {
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
- if (!billsList.isEmpty()){
|
|
|
- for (Bills item : billsList){
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
item.setReceiveStatus("录入");
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -3463,13 +3478,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
detail.setUpdateTime(new Date());
|
|
|
detail.setChangeOrderDate(new Date());
|
|
|
baseMapper.updateById(detail);
|
|
|
- if ("MM".equals(detail.getBillType())){
|
|
|
+ if ("MM".equals(detail.getBillType())) {
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
- if (!billsList.isEmpty()){
|
|
|
- for (Bills item : billsList){
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
if ("录入".equals(item.getChangeOrdersStatus())) {
|
|
|
item.setChangeOrdersStatus("可换单");
|
|
|
} else {
|
|
|
@@ -3509,13 +3524,13 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
detail.setUpdateTime(new Date());
|
|
|
detail.setChangeOrderDate(null);
|
|
|
baseMapper.updateById(detail);
|
|
|
- if ("MM".equals(detail.getBillType())){
|
|
|
+ if ("MM".equals(detail.getBillType())) {
|
|
|
List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
.eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(Bills::getIsDeleted, 0)
|
|
|
.eq(Bills::getMasterId, bills.getId()));
|
|
|
- if (!billsList.isEmpty()){
|
|
|
- for (Bills item : billsList){
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ for (Bills item : billsList) {
|
|
|
if ("可换单".equals(item.getChangeOrdersStatus())) {
|
|
|
item.setChangeOrdersStatus("录入");
|
|
|
} else {
|
|
|
@@ -4068,6 +4083,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public R submitBookingCabin(Bills bills) {
|
|
|
if (bills.getId() == null) {
|
|
|
throw new SecurityException("缺少必要参数");
|
|
|
@@ -4076,6 +4092,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
if (detail == null) {
|
|
|
throw new SecurityException("未查到单据信息");
|
|
|
}
|
|
|
+ detail.setIssueStatus("1");
|
|
|
+ baseMapper.updateById(detail);
|
|
|
SeaBillsDetail seaBillsDetail = seaBillsDetailService.getOne(new LambdaQueryWrapper<SeaBillsDetail>()
|
|
|
.eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(SeaBillsDetail::getPid, detail.getId()));
|
|
|
@@ -4153,12 +4171,14 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
copyBills.setInvoiceDrStatusDescr("未开");
|
|
|
copyBills.setInvoiceCrStatus(0);
|
|
|
copyBills.setInvoiceCrStatusDescr("未开");
|
|
|
+ copyBills.setIssueStatus("0");
|
|
|
copyBills.setBillStatus(0);
|
|
|
copyBills.setAccountStatus(0);
|
|
|
copyBills.setSplitOrderSum(0);
|
|
|
copyBills.setCfsQuantity(new BigDecimal("0.00"));
|
|
|
copyBills.setCfsGrossWeight(new BigDecimal("0.00"));
|
|
|
copyBills.setCfsMeasurement(new BigDecimal("0.00"));
|
|
|
+ copyBills.setBillType("MM");
|
|
|
this.save(copyBills);
|
|
|
if (seaBillsDetail != null) {
|
|
|
seaBillsDetail.setId(null);
|
|
|
@@ -4187,6 +4207,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public R submitBooking(Bills billss) throws Exception {
|
|
|
Object object = StringTools.handle(billss, "Bills");
|
|
|
Bills bills = JSONObject.parseObject(JSONObject.toJSONString(object), Bills.class);
|
|
|
@@ -4351,6 +4372,145 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
|
|
|
return R.data(bills);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R synchronizeData(Long billId) {
|
|
|
+ if (ObjectUtils.isNull(billId)) {
|
|
|
+ throw new RuntimeException("缺少必要参数");
|
|
|
+ }
|
|
|
+ Bills bills = baseMapper.selectById(billId);
|
|
|
+ if (bills != null) {
|
|
|
+ if (3 == bills.getBillStatus()) {
|
|
|
+ throw new RuntimeException("主单已完成,操作失败");
|
|
|
+ }
|
|
|
+ if (1 == bills.getBillStatus()) {
|
|
|
+ throw new RuntimeException("主单已退舱,操作失败");
|
|
|
+ }
|
|
|
+ if (bills.getStatus() > 0 && bills.getStatus() < 3) {
|
|
|
+ throw new RuntimeException("主单提交请核,操作失败");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(bills.getMblno())) {
|
|
|
+ throw new RuntimeException("主单提单号不能为空,操作失败");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(bills.getPodId())) {
|
|
|
+ throw new RuntimeException("卸货港不能为空,操作失败");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNull(bills.getPolId())) {
|
|
|
+ throw new RuntimeException("装货港不能为空,操作失败");
|
|
|
+ }
|
|
|
+ List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .eq(Bills::getMasterId, billId));
|
|
|
+ BigDecimal grossWeight = new BigDecimal("0.00");
|
|
|
+ BigDecimal quantity = new BigDecimal("0.00");
|
|
|
+ BigDecimal measurement = new BigDecimal("0.00");
|
|
|
+ int teuTotal = 0;
|
|
|
+ String marks = "";
|
|
|
+ String commodityDescr = "";
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
|
|
|
+ .eq(Containers::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Containers::getIsDeleted, 0)
|
|
|
+ .eq(Containers::getPid, billId));
|
|
|
+ if (!containersList.isEmpty()) {
|
|
|
+ containersService.removeByIds(containersList.stream().map(Containers::getId).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ teuTotal = teuTotal + billsList.stream().map(Bills::getTeu).filter(Objects::nonNull).reduce(0, Integer::sum);
|
|
|
+ grossWeight = grossWeight.add(billsList.stream().map(Bills::getGrossWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ quantity = quantity.add(billsList.stream().map(Bills::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ measurement = measurement.add(billsList.stream().map(Bills::getMeasurement).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ marks = billsList.stream().map(Bills::getMarks).filter(Objects::nonNull).collect(Collectors.joining("&|&"));
|
|
|
+ commodityDescr = billsList.stream().map(Bills::getCommodityDescr).filter(Objects::nonNull).collect(Collectors.joining("&|&"));
|
|
|
+ this.itemCopy(bills, billsList);
|
|
|
+ }
|
|
|
+ bills.setTeuTotal(teuTotal);
|
|
|
+ bills.setGrossWeight(grossWeight);
|
|
|
+ bills.setQuantity(quantity);
|
|
|
+ bills.setMeasurement(measurement);
|
|
|
+ bills.setSplitOrderSum(billsList.size());
|
|
|
+ if (ObjectUtils.isNotNull(marks)) {
|
|
|
+ marks = marks.replaceAll("N/M", "");
|
|
|
+ bills.setMarks("N/M" + marks);
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(commodityDescr)) {
|
|
|
+ bills.setCommodityDescr(commodityDescr);
|
|
|
+ }
|
|
|
+ baseMapper.updateById(bills);
|
|
|
+ }
|
|
|
+ return R.data("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R sendMessageBooking(Bills bills) {
|
|
|
+ //发送消息
|
|
|
+ R<String> res = sysClient.getRoleIds(bills.getBranchId(), "业务员");
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())){
|
|
|
+ R<List<User>> userListR = userClient.listUserByRoleId(res.getData(),AuthUtil.getTenantId(),bills.getBranchId());
|
|
|
+ if (userListR.isSuccess() && ObjectUtils.isNotNull(userListR.getData())) {
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ String formatted = now.format(formatter);
|
|
|
+ for (User datum : userListR.getData()){
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(bills.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/OceanFreightImport/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("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R updateBillType(String ids, String billType) {
|
|
|
+ if (ObjectUtils.isNull(ids)) {
|
|
|
+ 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(ids)));
|
|
|
+ if (billsList.isEmpty()) {
|
|
|
+ throw new SecurityException("未查到单据信息");
|
|
|
+ }
|
|
|
+ List<Long> idList = billsList.stream().map(Bills::getId).collect(Collectors.toList());
|
|
|
+ List<Bills> billsLists = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
|
|
|
+ .eq(Bills::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Bills::getIsDeleted, 0)
|
|
|
+ .in(Bills::getMasterId, idList));
|
|
|
+ for (Bills item : billsList) {
|
|
|
+ if ("MH".equals(item.getBillType()) && "DD,MM".contains(billType)) {
|
|
|
+ if (ObjectUtils.isNotNull(item.getMasterBillNo())) {
|
|
|
+ throw new RuntimeException("提单号:" + item.getMblno() + "已填加到主单");
|
|
|
+ }
|
|
|
+ } else if ("MM".equals(item.getBillType()) && "DD,MH".contains(billType)) {
|
|
|
+ List<Bills> bills = billsLists.stream().filter(e -> e.getMasterId().equals(item.getId())).collect(Collectors.toList());
|
|
|
+ if (!bills.isEmpty()) {
|
|
|
+ throw new RuntimeException("提单号:" + item.getMblno() + "中存在分单");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ item.setBillType(billType);
|
|
|
+ }
|
|
|
+ this.updateBatchById(billsList);
|
|
|
+ return R.data("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 删除海运进出口明细表
|
|
|
*
|