Răsfoiți Sursa

运营端-贸易订单查询托运订单列表

lengfaqiang 2 ani în urmă
părinte
comite
f66b23556c

+ 19 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/operationManagement/ManagementLogisticsOrderController.java

@@ -9,6 +9,7 @@ import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.transport.model.param.LogisticsOrderQuery;
 import com.sckw.transport.model.param.ManagementContractParam;
 import com.sckw.transport.model.param.ManagementLogisticsOrderQuery;
+import com.sckw.transport.model.param.OrderQuery;
 import com.sckw.transport.model.vo.execlVo.ManagementLogisticsOrderExcelVo;
 import com.sckw.transport.service.ManagementLogisticsOrderService;
 import jakarta.servlet.http.HttpServletResponse;
@@ -148,4 +149,22 @@ public class ManagementLogisticsOrderController {
         }
     }
 
+
+    /**
+     * 运营端-贸易订单-获取物流订单
+     *
+     * @param query 订单查询
+     * @return
+     */
+    @RequestMapping(value = "/selectLogisticsOrder", method = RequestMethod.POST)
+    public HttpResult selectLogisticsOrderByTradeOrder(@Valid @RequestBody OrderQuery query) {
+        log.info("运营端-贸易订单-获取物流订单 传递参数信息:{}", JSONObject.toJSONString(query));
+        try {
+            return managementLogisticsOrderService.selectLogisticsOrderByTradeOrder(query.getIds(), query.getPage(), query.getPageSize());
+        } catch (Exception e) {
+            log.error("运营端-贸易订单-获取物流订单 error :{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
 }

+ 2 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtLogisticsOrderMapper.java

@@ -338,6 +338,8 @@ public interface KwtLogisticsOrderMapper extends BaseMapper<KwtLogisticsOrder> {
 
     List<LogisticsOrderStatisticsVO> workbenchLogisticsOrderStatisticsByDays(@Param("id") Long id, @Param("statusList") List<Integer> statusList,@Param("type") Integer type, @Param("dateStart") String dateStart, @Param("dateEnd") String dateEnd);
 
+    List<com.sckw.transport.model.dto.LogisticsOrderDTO> selectOrderListByTradeOrderIds(@Param("tradeOrderIds") List<Long> tradeOrderIds, @Param("unitType") String unitType);
+
 
 //    List<TableTops> countAppLogisticsOrderListByStatus(@Param("type") String type,@Param("entId") Long entId
 //    );

+ 54 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ManagementLogisticsOrderService.java

@@ -8,6 +8,7 @@ import com.sckw.contract.api.model.dto.res.ContractCommonInfoResDto;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
+import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CarWaybillEnum;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
@@ -28,6 +29,7 @@ import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
+import com.sckw.transport.model.dto.LogisticsOrderDTO;
 import com.sckw.transport.model.param.LogisticsOrderQuery;
 import com.sckw.transport.model.param.ManagementContractParam;
 import com.sckw.transport.model.param.ManagementLogisticsOrderQuery;
@@ -669,4 +671,56 @@ public class ManagementLogisticsOrderService {
         PageResult build = PageResult.build(contractParam.getPage(), contractParam.getPageSize(), list.stream().count(), returnList);
         return HttpResult.ok(build);
     }
+
+    /**
+     * 运营端-贸易订单查询物流订单数据
+     *
+     * @param ids
+     * @param page
+     * @param pageSize
+     * @return
+     */
+    public HttpResult selectLogisticsOrderByTradeOrder(String ids, Integer page, Integer pageSize) {
+//        PageHelper.startPage(page, pageSize);
+        List<Long> tradeOrderIds = StringUtils.splitStrToList(ids, Long.class);
+        if (CollectionUtils.isEmpty(tradeOrderIds)) {
+           throw new BusinessException("贸易订单id不能为空");
+        }
+        List<LogisticsOrderDTO> returnList = new ArrayList<>();
+        tradeOrderIds = tradeOrderIds.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
+        /**数据展示*/
+        List<LogisticsOrderDTO> list = logisticsOrderMapper.selectOrderListByTradeOrderIds(tradeOrderIds, null);
+//        PageInfo<LogisticsOrderDTO> pageInfo = new PageInfo<>(list);
+        if (CollectionUtils.isEmpty(list)) {
+            return HttpResult.ok();
+        }
+        /**计量单位*/
+        Map<String, String> unitTypeDictData = commonService.getDictData(DictTypeEnum.UNIT_TYPE.getType());
+        /**运价方式*/
+        Map<String, String> priceDictData = commonService.getDictData(DictTypeEnum.PRICE_TYPE.getType());
+        /**合理损耗*/
+        Map<String, String> taxRateTypeDictData = commonService.getDictData(DictTypeEnum.TAX_RATE_TYPE.getType());
+        if (CollectionUtils.isNotEmpty(list)) {
+            for (LogisticsOrderDTO logisticsOrderDTO : list) {
+                logisticsOrderDTO.setStatusLabel(LogisticsOrderEnum.getDestination(logisticsOrderDTO.getStatus()));
+                String createName = StringUtils.isBlank(logisticsOrderDTO.getCreateBy()) ? null :
+                        (remoteSystemService.queryUserCacheById(Long.parseLong(logisticsOrderDTO.getCreateBy())) == null ? null :
+                                remoteSystemService.queryUserCacheById(Long.parseLong(logisticsOrderDTO.getCreateBy())).getName());
+                logisticsOrderDTO.setCreateName(createName);
+                logisticsOrderDTO.setPriceLabel(priceDictData.get(logisticsOrderDTO.getPriceType()));
+                logisticsOrderDTO.setLossUnitLabel(taxRateTypeDictData.get(logisticsOrderDTO.getLossUnit()));
+                logisticsOrderDTO.setGoodsPriceUnitLabel(priceDictData.get(logisticsOrderDTO.getGoodsPriceUnit()));
+                logisticsOrderDTO.setUnitLabel(unitTypeDictData.get(logisticsOrderDTO.getUnit()));
+            }
+            returnList.addAll(list);
+        }
+        /**基于多个传递数据查询->手动分页*/
+        List<LogisticsOrderDTO> subList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(returnList)) {
+            subList = returnList.stream().skip((page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+        }
+
+        PageResult build = PageResult.build(page, pageSize, returnList.stream().count(), subList);
+        return HttpResult.ok(build);
+    }
 }

+ 41 - 1
sckw-modules/sckw-transport/src/main/resources/mapper/KwtLogisticsOrderMapper.xml

@@ -98,13 +98,53 @@
                a.create_time      as createTime
         FROM kwt_logistics_order a
                  LEFT JOIN kwt_logistics_order_track b ON a.id = b.l_order_id and a.`status` = b.`status`
-                 LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id AND c.unit_type = #{type}
+                 LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id
         WHERE a.del_flag = '0'
           AND b.del_flag = '0'
+            <if test="type != null and type != ''">
+                AND c.unit_type = #{type}
+            </if>
           AND a.t_order_id = #{id,jdbcType=VARCHAR}
         order by createTime desc
     </select>
 
+
+    <select id="selectOrderListByTradeOrderIds" resultType="com.sckw.transport.model.dto.LogisticsOrderDTO">
+        SELECT a.id               as lOrderId,
+        a.l_order_no       as lOrderNo,
+        a.`status`         as `status`,
+        a.t_order_id       as tOrderId,
+        a.t_order_no       as tOrderNo,
+        a.payment          as payment,
+        a.amount,
+        a.unit             as unit,
+        a.price,
+        a.price_type       as priceType,
+        a.loss,
+        a.loss_unit        AS lossUnit,
+        a.goods_price      as goodsPrice,
+        a.goods_price_unit as goodsPriceUnit,
+        c.firm_name        as companyName,
+        c.contacts,
+        c.phone,
+        a.create_by        as createBy,
+        a.create_time      as createTime
+        FROM kwt_logistics_order a
+        LEFT JOIN kwt_logistics_order_unit c ON a.id = c.l_order_id
+        WHERE a.del_flag = '0'
+        AND c.del_flag = '0'
+        <if test="unitType != null and unitType != ''">
+            AND c.unit_type = #{unitType}
+        </if>
+        <if test="tradeOrderIds != null and tradeOrderIds.size()>0">
+            and a.t_order_id in
+            <foreach collection="tradeOrderIds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        order by tOrderId,createTime desc
+    </select>
+
     <select id="selectOrderListByContractId" resultType="com.sckw.transport.model.vo.SckwLogisticsOrderVO">
         SELECT
         a.STATUS,