|
|
@@ -8,16 +8,14 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.itheima.auth.sdk.dto.UserDTO;
|
|
|
import com.sl.ms.base.api.common.AreaFeign;
|
|
|
+import com.sl.ms.base.api.common.AuthFeign;
|
|
|
import com.sl.ms.base.domain.base.AreaDto;
|
|
|
import com.sl.ms.base.domain.base.UserResponseDTO;
|
|
|
import com.sl.ms.carriage.appi.MaterialFeign;
|
|
|
import com.sl.ms.oms.api.CargoFeign;
|
|
|
import com.sl.ms.oms.api.EnterpriseOrderFeign;
|
|
|
import com.sl.ms.oms.api.OrderFeign;
|
|
|
-import com.sl.ms.oms.dto.CargoSaveDTO;
|
|
|
-import com.sl.ms.oms.dto.EnterpriseOrderDTO;
|
|
|
-import com.sl.ms.oms.dto.MailingSaveMultipleDTO;
|
|
|
-import com.sl.ms.oms.dto.OrderDTO;
|
|
|
+import com.sl.ms.oms.dto.*;
|
|
|
import com.sl.ms.oms.enums.*;
|
|
|
import com.sl.ms.trade.api.AgencyTradingFeign;
|
|
|
import com.sl.ms.trade.enums.ReturnFeeTypeEnum;
|
|
|
@@ -34,6 +32,7 @@ import com.sl.ms.web.enterprise.utils.PrintApiUtils;
|
|
|
import com.sl.ms.web.enterprise.utils.TransportOrderStatusUtils;
|
|
|
import com.sl.ms.web.enterprise.vo.request.*;
|
|
|
import com.sl.ms.web.enterprise.vo.response.*;
|
|
|
+import com.sl.ms.web.enterprise.vo.response.TransportInfoResponse;
|
|
|
import com.sl.ms.work.api.PickupDispatchTaskFeign;
|
|
|
import com.sl.ms.work.api.RetentionScanRecordFeign;
|
|
|
import com.sl.ms.work.api.TransportOrderFeign;
|
|
|
@@ -119,6 +118,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
@Resource
|
|
|
MaterialFeign materialFeign;
|
|
|
+ @Autowired
|
|
|
+ private AuthFeign authFeign;
|
|
|
|
|
|
@Override
|
|
|
@GlobalTransactional
|
|
|
@@ -219,6 +220,20 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
return ApiResponse.success(orderResponse);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ApiResponse<OrderResponse> getOrderDetail(TransportInfoRequest transportInfoRequest) {
|
|
|
+ EnterpriseOrderDTO enterpriseOrderDTO;
|
|
|
+ if (ObjectUtil.isNotEmpty(transportInfoRequest.getTransportOrderId())) {
|
|
|
+ enterpriseOrderDTO = enterpriseOrderFeign.getByTransportOrderId(transportInfoRequest.getTransportOrderId(), transportInfoRequest.getEnterpriseId());
|
|
|
+ } else {
|
|
|
+ enterpriseOrderDTO = enterpriseOrderFeign.getByPartnerOrderCode(transportInfoRequest.getPartnerOrderCode(), transportInfoRequest.getEnterpriseId());
|
|
|
+ }
|
|
|
+ OrderDTO orderDTO = orderFeign.findById(enterpriseOrderDTO.getOrderId());
|
|
|
+ OrderResponse response = orderDTO2OrderResponse2(orderDTO, enterpriseOrderDTO);
|
|
|
+ return ApiResponse.success(response);
|
|
|
+ }
|
|
|
+
|
|
|
private AddressBookDTO saveSenderAddress(OrderRequest orderRequest, Long provinceId, Long cityId, Long countyId) {
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
AddressBookDTO addressBookDTO = AddressBookDTO.builder()
|
|
|
@@ -296,6 +311,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if (ObjectUtil.isNotEmpty(orderDTO.getReceiptType()) ) {
|
|
|
orderResponse.setReceiptOrderId("HD" + orderDTO.getTransportOrderId());
|
|
|
}
|
|
|
+ // 新加的字段
|
|
|
+ OrganDTO organDTO = organFeign.queryById(orderDTO.getSendAgencyId());
|
|
|
+ orderResponse.setSenderAgencyNumber(organDTO.getOrganNumber());
|
|
|
+ orderResponse.setCusomerCode(orderRequest.getCustomerCode());
|
|
|
|
|
|
List<OrderResponse.SubTransportOrder> subTransportOrderList = new ArrayList<>();
|
|
|
for (Integer i = 1; i <= orderRequest.getQuantity(); i++) {
|
|
|
@@ -309,6 +328,94 @@ public class OrderServiceImpl implements OrderService {
|
|
|
return orderResponse;
|
|
|
}
|
|
|
|
|
|
+ private OrderResponse orderDTO2OrderResponse2(OrderDTO orderDTO, EnterpriseOrderDTO enterpriseOrderDTO) {
|
|
|
+ OrderResponse orderResponse = BeanUtil.toBean(orderDTO, OrderResponse.class);
|
|
|
+ List<OrganDTO> organDTOS = organFeign.findAll("");
|
|
|
+ Map<Long, OrganDTO> organDTOMap = new HashMap<>(organDTOS.size());
|
|
|
+ for (OrganDTO organDTO : organDTOS) {
|
|
|
+ organDTOMap.put(organDTO.getId(), organDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ OrganDTO senderAgency = organDTOMap.get(orderDTO.getSendAgencyId());
|
|
|
+ OrganDTO receiverAgency = organDTOMap.get(orderDTO.getReceiveAgencyId());
|
|
|
+ OrganDTO senderParentAgency = organDTOMap.get(senderAgency.getParentId());
|
|
|
+ OrganDTO receiverParentAgency = organDTOMap.get(receiverAgency.getParentId());
|
|
|
+
|
|
|
+ orderResponse.setPayMethod(orderDTO.getPaymentMethod());
|
|
|
+ orderResponse.setPartnerOrderCode(enterpriseOrderDTO.getPartnerOrderCode());
|
|
|
+ orderResponse.setReceiverParentAgencyName(receiverParentAgency.getName());
|
|
|
+ orderResponse.setSenderParentAgencyName(senderParentAgency.getName());
|
|
|
+ orderResponse.setSenderAgencyName(senderAgency.getName());
|
|
|
+ orderResponse.setReceiverAgencyName(receiverAgency.getName());
|
|
|
+
|
|
|
+ List<OrderCargoDTO> cargoSaveDTOList = cargoFeign.findByOrderId(orderDTO.getId());
|
|
|
+ Integer quantity = 0;
|
|
|
+ for (OrderCargoDTO orderCargoDTO : cargoSaveDTOList) {
|
|
|
+ quantity += orderCargoDTO.getQuantity();
|
|
|
+ }
|
|
|
+ OrderCargoDTO cargoDTO = cargoSaveDTOList.get(0);
|
|
|
+
|
|
|
+ List<Long> areaIds = new ArrayList<>();
|
|
|
+ areaIds.add(orderDTO.getSenderProvinceId());
|
|
|
+ areaIds.add(orderDTO.getSenderCityId());
|
|
|
+ areaIds.add(orderDTO.getSenderCountyId());
|
|
|
+ areaIds.add(orderDTO.getReceiverProvinceId());
|
|
|
+ areaIds.add(orderDTO.getReceiverCityId());
|
|
|
+ areaIds.add(orderDTO.getReceiverCountyId());
|
|
|
+ Map<Long, AreaDto> areaDtoMap = new HashMap<>();
|
|
|
+ List<AreaDto> areaDtoList = areaFeign.findBatch(areaIds);
|
|
|
+ areaDtoList.forEach(areaDto -> {
|
|
|
+ areaDtoMap.put(areaDto.getId(), areaDto);
|
|
|
+ });
|
|
|
+ orderResponse.setTransportOrderId(enterpriseOrderDTO.getTransportOrderId());
|
|
|
+ orderResponse.setMark(ObjectUtil.isNull(orderDTO.getMark()) ? "" : orderDTO.getMark() );
|
|
|
+ orderResponse.setGoodsName(cargoDTO.getName());
|
|
|
+ orderResponse.setCargoBarcode(ObjectUtil.isNull(cargoDTO.getCargoBarcode()) ? "" : cargoDTO.getCargoBarcode() );
|
|
|
+ orderResponse.setQuantity(quantity);
|
|
|
+ orderResponse.setTemperatureRegion(orderDTO.getTemperatureRegion());
|
|
|
+ orderResponse.setTotalVolume(cargoDTO.getTotalVolume());
|
|
|
+ orderResponse.setTotalWeight(cargoDTO.getTotalWeight());
|
|
|
+ orderResponse.setComputedWeight(cargoDTO.getComputeWeight().doubleValue());
|
|
|
+ if (areaDtoMap.get(orderDTO.getSenderProvinceId()) != null) {
|
|
|
+ orderResponse.setSenderProvince(areaDtoMap.get(orderDTO.getSenderProvinceId()).getOriginalName());
|
|
|
+ }
|
|
|
+ if (areaDtoMap.get(orderDTO.getSenderCityId()) != null) {
|
|
|
+ orderResponse.setSenderCity(areaDtoMap.get(orderDTO.getSenderCityId()).getOriginalName());
|
|
|
+ }
|
|
|
+ if (areaDtoMap.get(orderDTO.getSenderCountyId()) != null) {
|
|
|
+ orderResponse.setSenderCounty(areaDtoMap.get(orderDTO.getSenderCountyId()).getOriginalName());
|
|
|
+ }
|
|
|
+ if (areaDtoMap.get(orderDTO.getReceiverProvinceId()) != null) {
|
|
|
+ orderResponse.setReceiverProvince(areaDtoMap.get(orderDTO.getReceiverProvinceId()).getOriginalName());
|
|
|
+ }
|
|
|
+ if (areaDtoMap.get(orderDTO.getReceiverCityId()) != null) {
|
|
|
+ orderResponse.setReceiverCity(areaDtoMap.get(orderDTO.getReceiverCityId()).getOriginalName());
|
|
|
+ }
|
|
|
+ if (areaDtoMap.get(orderDTO.getReceiverCountyId()) != null) {
|
|
|
+ orderResponse.setReceiverCounty(areaDtoMap.get(orderDTO.getReceiverCountyId()).getOriginalName());
|
|
|
+ }
|
|
|
+
|
|
|
+ OrganDTO organDTO = organFeign.queryById(orderDTO.getSendAgencyId());
|
|
|
+ orderResponse.setSenderAgencyNumber(organDTO.getOrganNumber());
|
|
|
+ orderResponse.setCusomerCode(enterpriseOrderDTO.getCustomerCode());
|
|
|
+
|
|
|
+ orderResponse.setSenderAgencyId(senderAgency.getId());
|
|
|
+ if (ObjectUtil.isNotEmpty(orderDTO.getReceiptType()) ) {
|
|
|
+ orderResponse.setReceiptOrderId("HD" + enterpriseOrderDTO.getTransportOrderId());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<OrderResponse.SubTransportOrder> subTransportOrderList = new ArrayList<>();
|
|
|
+ for (Integer i = 1; i <= quantity; i++) {
|
|
|
+ String subTransportOrderId = generateSubOrderNumber(enterpriseOrderDTO.getTransportOrderId(), i, quantity);
|
|
|
+ OrderResponse.SubTransportOrder subTransportOrder = new OrderResponse.SubTransportOrder();
|
|
|
+ subTransportOrder.setSubIndex(i);
|
|
|
+ subTransportOrder.setSubTransportOrderId(subTransportOrderId);
|
|
|
+ subTransportOrderList.add(subTransportOrder);
|
|
|
+ }
|
|
|
+ orderResponse.setSubTransportOrderList(subTransportOrderList);
|
|
|
+ return orderResponse;
|
|
|
+ }
|
|
|
+
|
|
|
private String generateSubOrderNumber(String mainOrderNumber, int itemIndex, int totalItems) {
|
|
|
// 检查输入是否合理
|
|
|
// if (mainOrderNumber == null || mainOrderNumber.isEmpty() || itemIndex < 1 || itemIndex > 999 || totalItems < 1 || totalItems > 999) {
|