|
|
@@ -461,6 +461,46 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 散货 统计
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> BulkLoadCount(Order order) {
|
|
|
+ long all = 0;
|
|
|
+ long last = 0;
|
|
|
+ long zero = 0;
|
|
|
+ long one = 0;
|
|
|
+ long two = 0;
|
|
|
+ long three = 0;
|
|
|
+ long four = 0;
|
|
|
+
|
|
|
+ List<Order> orderIdList;
|
|
|
+ LambdaQueryWrapper<Order> orderQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Order::getShippingMode, "散货")
|
|
|
+ .eq(Order::getIsDeleted, 0);
|
|
|
+
|
|
|
+ orderIdList = baseMapper.selectList(orderQueryWrapper);
|
|
|
+ if (CollectionUtil.isNotEmpty(orderIdList)) {
|
|
|
+ all = orderIdList.size();
|
|
|
+ zero = orderIdList.stream().filter(item -> item.getStatus() == 0).count();
|
|
|
+ one = orderIdList.stream().filter(item -> item.getStatus() == 1).count();
|
|
|
+ two = orderIdList.stream().filter(item -> item.getStatus() == 2).count();
|
|
|
+ three = orderIdList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 2 && item.getStatus() != 4).count();
|
|
|
+ four = orderIdList.stream().filter(item -> item.getStatus() == 4).count();
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> data = new HashMap<>();
|
|
|
+ data.put("all", all + last);
|
|
|
+ data.put("last", last);
|
|
|
+ data.put("zero", zero);
|
|
|
+ data.put("one", one);
|
|
|
+ data.put("two", two);
|
|
|
+ data.put("three", three);
|
|
|
+ data.put("four", four);
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@GlobalTransactional(rollbackFor = Exception.class)
|
|
|
@@ -506,9 +546,32 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //杂费明细
|
|
|
+ if (order.getShippingMode().equals("散货")) {
|
|
|
+ List<OrderFee> orderFeeList = order.getOrderFeeList();
|
|
|
+
|
|
|
+ for (OrderFee item : orderFeeList) {
|
|
|
+ if (ObjectUtil.isEmpty(item.getId())) {
|
|
|
+ item.setOrderId(order.getId());
|
|
|
+ item.setTenantId(AuthUtil.getTenantId());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ orderFeeMapper.insert(item);
|
|
|
+ } else {
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ orderFeeMapper.updateById(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
StringBuilder addressDetail = new StringBuilder();
|
|
|
dealExtraInfo(order, addressDetail);
|
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(itemList)) {
|
|
|
+ order.setArrivalTime(itemList.get(0).getArrivalTime());
|
|
|
+ }
|
|
|
+
|
|
|
order.setFreight(freight);
|
|
|
if (addressDetail.length() > 0) {
|
|
|
if(order.getShippingMode().equals("散货")){
|
|
|
@@ -516,14 +579,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
String[] addressList = address.split(",");
|
|
|
order.setAddressDetail(addressList[0]);
|
|
|
order.setUnloadingPlace(addressList[1]);
|
|
|
+ order.setArrivalTime(order.getLoadingAddressList().get(0).getFreightTime());
|
|
|
} else {
|
|
|
order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf("\n")).toString());
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- if (CollectionUtil.isNotEmpty(itemList)) {
|
|
|
- order.setArrivalTime(itemList.get(0).getArrivalTime());
|
|
|
- }
|
|
|
+
|
|
|
baseMapper.updateById(order);
|
|
|
return order.getId();
|
|
|
}
|
|
|
@@ -548,7 +610,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
LambdaQueryWrapper<Order> orderQueryWrapper = new LambdaQueryWrapper<Order>();
|
|
|
orderQueryWrapper.eq(Order::getShippingMode, "散货")
|
|
|
.eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(Order::getIsDeleted, 0);
|
|
|
+ .eq(Order::getIsDeleted, 0)
|
|
|
+ .eq(ObjectUtil.isNotEmpty(order.getSalesman()), Order::getSalesman, order.getSalesman())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(order.getDispatchDept()), Order::getDispatchDept, order.getDispatchDept())
|
|
|
+ .eq(StringUtil.isNotBlank(order.getShippingMode()), Order::getShippingMode, order.getShippingMode())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(order.getFleetId()), Order::getFleetId, order.getFleetId())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(order.getPlateNo()), Order::getPlateNo, order.getPlateNo())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(order.getDriverId()), Order::getDriverId, order.getDriverId())
|
|
|
+ .eq(StringUtil.isNotBlank(order.getOrderNo()), Order::getOrderNo, order.getOrderNo())
|
|
|
+ .like(StringUtil.isNotBlank(order.getContractNo()), Order::getContractNo, order.getContractNo())
|
|
|
+ .like(StringUtil.isNotBlank(order.getDispatchNumber()), Order::getDispatchNumber, order.getDispatchNumber())
|
|
|
+ .like(StringUtil.isNotBlank(order.getAddressDetail()), Order::getAddressDetail, order.getAddressDetail())
|
|
|
+ .like(StringUtil.isNotBlank(order.getUnloadingPlace()),Order::getUnloadingPlace, order.getUnloadingPlace())
|
|
|
+ .between(StringUtil.isNotBlank(order.getBeginArrivalTime()) && StringUtil.isNotBlank(order.getEndArrivalTime()), Order::getArrivalTime, order.getBeginArrivalTime(), order.getEndArrivalTime())
|
|
|
+ .between(StringUtil.isNotBlank(order.getBeginCrateTime()) && StringUtil.isNotBlank(order.getEndCrateTime()), Order::getCreateTime, order.getBeginCrateTime(), order.getEndCrateTime());
|
|
|
+
|
|
|
IPage<Order> pages = baseMapper.selectPage(Condition.getPage(query), orderQueryWrapper);
|
|
|
pages.getRecords().forEach(record -> {
|
|
|
//客户
|
|
|
@@ -573,12 +650,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
record.setSalesmanName(user.getData().getRealName());
|
|
|
}
|
|
|
}
|
|
|
+ //调度员
|
|
|
if (!ObjectUtil.isEmpty(record.getDispatcher())) {
|
|
|
R<User> user = userClient.userInfoById(record.getDispatcher());
|
|
|
if (user.isSuccess() && user.getData() != null) {
|
|
|
record.setDispatcherName(user.getData().getRealName());
|
|
|
}
|
|
|
}
|
|
|
+ //调度部门
|
|
|
if (!ObjectUtil.isEmpty(record.getDispatchDept())) {
|
|
|
R<String> dept = sysClient.getDeptName(record.getDispatchDept());
|
|
|
if (dept.isSuccess() && dept.getData() != null) {
|
|
|
@@ -589,6 +668,88 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return pages;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 陆运散货详情
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Order detailBulkLoad(Order order) {
|
|
|
+ Order detail = baseMapper.selectById(order.getId());
|
|
|
+ if (ObjectUtil.isEmpty(detail)) {
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!ObjectUtil.isEmpty(detail.getCorpId())) {
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(detail.getCorpId());
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
+ detail.setCorpName(corpMessage.getData().getCname());
|
|
|
+ detail.setCorpShortName(corpMessage.getData().getShortName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<OrderItem> itemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
|
|
|
+ .eq(OrderItem::getOrderId, order.getId())
|
|
|
+ .eq(OrderItem::getKind, 1)
|
|
|
+ .eq(OrderItem::getIsDeleted, 0));
|
|
|
+ detail.setItemList(itemList);
|
|
|
+
|
|
|
+ //杂费明细
|
|
|
+ List<OrderFee> orderFeeList = orderFeeMapper.selectList(new LambdaQueryWrapper<OrderFee>()
|
|
|
+ .eq(OrderFee::getOrderId, order.getId())
|
|
|
+ .eq(OrderFee::getIsDeleted, 0));
|
|
|
+ orderFeeList.forEach(orderFee -> {
|
|
|
+ if (!ObjectUtil.isEmpty(orderFee.getCorpId())) {
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(orderFee.getCorpId());
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
+ orderFee.setCorpName(corpMessage.getData().getCname());
|
|
|
+ orderFee.setCorpShortName(corpMessage.getData().getShortName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!ObjectUtil.isEmpty(orderFee.getFeeId())) {
|
|
|
+ R<FeesDesc> feesMessage = feesDescClient.detail(orderFee.getFeeId());
|
|
|
+ if (feesMessage.isSuccess() && feesMessage.getData() != null) {
|
|
|
+ orderFee.setFeeName(feesMessage.getData().getCname());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ detail.setOrderFeeList(orderFeeList);
|
|
|
+
|
|
|
+ detail.setOrderItemList(getOrderItemList(order.getId()));
|
|
|
+
|
|
|
+ //装货地址
|
|
|
+ List<OrderAddress> loadingAddressList = orderAddressMapper.selectList(new LambdaQueryWrapper<OrderAddress>()
|
|
|
+ .eq(OrderAddress::getOrderId, order.getId())
|
|
|
+ .eq(OrderAddress::getIsDeleted, 0)
|
|
|
+ .eq(OrderAddress::getBillType, 1)
|
|
|
+ .orderByAsc(OrderAddress::getSort)
|
|
|
+ );
|
|
|
+ detail.setLoadingAddressList(loadingAddressList);
|
|
|
+
|
|
|
+ //卸货地址
|
|
|
+ List<OrderAddress> unloadedAddressList = orderAddressMapper.selectList(new LambdaQueryWrapper<OrderAddress>()
|
|
|
+ .eq(OrderAddress::getOrderId, order.getId())
|
|
|
+ .eq(OrderAddress::getIsDeleted, 0)
|
|
|
+ .eq(OrderAddress::getBillType, 2)
|
|
|
+ .orderByAsc(OrderAddress::getSort)
|
|
|
+ );
|
|
|
+ detail.setUnloadedAddressList(unloadedAddressList);
|
|
|
+
|
|
|
+ return detail;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 陆运散货修改状态
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Long statusBulkLoad(Long id, Integer status) {
|
|
|
+ Order order = new Order();
|
|
|
+ if (ObjectUtil.isNotEmpty(id)) {
|
|
|
+ order.setId(id);
|
|
|
+ order.setStatus(status);
|
|
|
+ baseMapper.updateById(order);
|
|
|
+ }
|
|
|
+ return order.getId();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public boolean validChange(Long id) {
|
|
|
Integer count = orderItemMapper.selectCount(new LambdaQueryWrapper<OrderItem>()
|
|
|
@@ -966,20 +1127,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderAddressMapper.updateById(address);
|
|
|
}
|
|
|
|
|
|
- if (StringUtil.isNotBlank(address.getContacts()) || StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
|
|
|
-
|
|
|
- if (ObjectUtil.isNotEmpty(address.getFreightPlaceId()) && StringUtil.isNotBlank(address.getFreightPlaceName())) {
|
|
|
- addressDetail.append(i).append(".").append(address.getFreightPlaceName()).append("(");
|
|
|
+ if (ObjectUtil.isNotEmpty(address.getCorpId()) || StringUtil.isNotBlank(address.getContacts())
|
|
|
+ || StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
|
|
|
+ if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
|
|
|
+ addressDetail.append(i).append(".").append(address.getCorpName()).append("(");
|
|
|
} else {
|
|
|
addressDetail.append(i).append(".").append("(");
|
|
|
}
|
|
|
|
|
|
+ if (StringUtil.isNotBlank(address.getContacts())) {
|
|
|
+ addressDetail.append(address.getContacts());
|
|
|
+ }
|
|
|
+ if (StringUtil.isNotBlank(address.getTel())) {
|
|
|
+ addressDetail.append(" ").append(address.getTel());
|
|
|
+ }
|
|
|
if (StringUtil.isNotBlank(address.getAddress())) {
|
|
|
addressDetail.append(") ").append(address.getAddress()).append("\n");
|
|
|
} else {
|
|
|
addressDetail.append(") ").append("\n");
|
|
|
}
|
|
|
-
|
|
|
+ i++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1002,33 +1169,40 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderAddressMapper.updateById(address);
|
|
|
}
|
|
|
|
|
|
- if (StringUtil.isNotBlank(address.getContacts()) || StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
|
|
|
-
|
|
|
- if (ObjectUtil.isNotEmpty(address.getFreightPlaceId()) && StringUtil.isNotBlank(address.getFreightPlaceName())) {
|
|
|
- addressDetail.append(i).append(".").append(address.getFreightPlaceName()).append("(");
|
|
|
+ if (ObjectUtil.isNotEmpty(address.getCorpId()) || StringUtil.isNotBlank(address.getContacts())
|
|
|
+ || StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
|
|
|
+ if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
|
|
|
+ addressDetail.append(i).append(".").append(address.getCorpName()).append("(");
|
|
|
} else {
|
|
|
addressDetail.append(i).append(".").append("(");
|
|
|
}
|
|
|
|
|
|
+ if (StringUtil.isNotBlank(address.getContacts())) {
|
|
|
+ addressDetail.append(address.getContacts());
|
|
|
+ }
|
|
|
+ if (StringUtil.isNotBlank(address.getTel())) {
|
|
|
+ addressDetail.append(" ").append(address.getTel());
|
|
|
+ }
|
|
|
if (StringUtil.isNotBlank(address.getAddress())) {
|
|
|
addressDetail.append(") ").append(address.getAddress()).append("\n");
|
|
|
} else {
|
|
|
addressDetail.append(") ").append("\n");
|
|
|
}
|
|
|
-
|
|
|
+ i++;
|
|
|
}
|
|
|
|
|
|
- i++;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
List<CommonFile> fileList = order.getFileList();
|
|
|
- fileList.forEach(file -> {
|
|
|
- if (ObjectUtil.isEmpty(file.getId())) {
|
|
|
- file.setPid(order.getId());
|
|
|
- file.setSource(LandConstant.ORDER);
|
|
|
- }
|
|
|
- });
|
|
|
+ if (ObjectUtil.isNotEmpty(fileList)){
|
|
|
+ fileList.forEach(file -> {
|
|
|
+ if (ObjectUtil.isEmpty(file.getId())) {
|
|
|
+ file.setPid(order.getId());
|
|
|
+ file.setSource(LandConstant.ORDER);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
commonFileClient.saveList(fileList);
|
|
|
}
|
|
|
|