haungfuli %!s(int64=3) %!d(string=hai) anos
pai
achega
0df3829a75

+ 1 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/OrderInfoController.java

@@ -93,7 +93,7 @@ public class OrderInfoController {
      * @return
      */
     @PostMapping("/api/orderReceiving")
-    public String orderReceiving(OrderInfo orderInfo){
+    public String orderReceiving(@RequestBody OrderInfo orderInfo){
         return orderInfoService.orderReceiving(orderInfo);
     }
 

+ 2 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/PublishTaskInfoController.java

@@ -3,6 +3,7 @@ package com.yh.saas.plugin.yiliangyiyun.controller;
 
 import com.baomidou.mybatisplus.plugins.Page;
 import com.yh.saas.plugin.yiliangyiyun.entity.PublishTaskInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.view.GoodsSourceView;
 import com.yh.saas.plugin.yiliangyiyun.service.IPublishTaskInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -88,7 +89,7 @@ public class PublishTaskInfoController {
      * @return
      */
     @GetMapping("/selectGoodsSource")
-    public Page<PublishTaskInfo> selectGoodsSource(PublishTaskInfo publishTaskInfo) {
+    public Page<GoodsSourceView> selectGoodsSource(PublishTaskInfo publishTaskInfo) {
         return publishTaskInfoService.selectGoodsSource(publishTaskInfo);
     }
 

+ 6 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/CarrierInfo.java

@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yh.saas.common.support.entity.BaseModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -60,6 +62,8 @@ public class CarrierInfo extends BaseModel<CarrierInfo> {
     /**
      * 装车时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date loadingDate;
     /**
      * 装车照片
@@ -108,6 +112,8 @@ public class CarrierInfo extends BaseModel<CarrierInfo> {
     /**
      * 卸车时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date unloadingDate;
     /**
      * 状态标识(1暂存3提交)

+ 17 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/view/GoodsSourceView.java

@@ -0,0 +1,17 @@
+package com.yh.saas.plugin.yiliangyiyun.entity.view;
+import com.yh.saas.plugin.yiliangyiyun.entity.PublishTaskInfo;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class GoodsSourceView {
+    /**
+     * 货源列表
+     */
+    private List<PublishTaskInfo> publishTaskInfoList;
+    /**
+     * 周边信息列表
+     */
+    private List<PublishTaskInfo> publishTaskInfoLists;
+}

+ 7 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/PublishTaskInfoMapper.java

@@ -63,4 +63,11 @@ public interface PublishTaskInfoMapper extends BaseMapper<PublishTaskInfo> {
      * @return
      */
     List<PublishTaskInfo> getListsByDistanceCondition(Map<String, Object> pageView);
+    /**
+     * 查询货源列表
+     *
+     * @param pageView
+     * @return
+     */
+    List<PublishTaskInfo> getAllListsByCondition(Map<String, Object> pageView);
 }

+ 2 - 1
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IPublishTaskInfoService.java

@@ -3,6 +3,7 @@ package com.yh.saas.plugin.yiliangyiyun.service;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.yh.saas.plugin.yiliangyiyun.entity.PublishTaskInfo;
 import com.baomidou.mybatisplus.service.IService;
+import com.yh.saas.plugin.yiliangyiyun.entity.view.GoodsSourceView;
 
 /**
  * <p>
@@ -61,7 +62,7 @@ public interface IPublishTaskInfoService extends IService<PublishTaskInfo> {
      * @param publishTaskInfo
      * @return
      */
-    Page<PublishTaskInfo> selectGoodsSource(PublishTaskInfo publishTaskInfo);
+    Page<GoodsSourceView> selectGoodsSource(PublishTaskInfo publishTaskInfo);
 
     /**
      * 抢单

+ 31 - 32
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/CarrierInfoServiceImpl.java

@@ -129,38 +129,37 @@ public class CarrierInfoServiceImpl extends ServiceImpl<CarrierInfoMapper, Carri
     @Override
     public String cargoOwnerLoadingAdd(CarrierInfo carrierInfo) {
         //查询订单
-        OrderInfo orderInfo = orderInfoService.selectById(carrierInfo.getOrderId());
-        //查询承运信息
-        CarrierInfo carrierInfo1 = carrierInfoService.selectOne(new EntityWrapper<CarrierInfo>()
-                .eq("id",carrierInfo.getId())
-                .eq("order_id",carrierInfo.getOrderId())
-                .eq("delete_flag","0"));
-        if(carrierInfo1 != null){
-//            if("1".equals(carrierInfo1.getFlag())){
-//                if("1".equals(carrierInfo1.getLoadingFlag())){
-//                    carrierInfo1.setLoadingConfirm(StatusEnum.LOADING_CONFIRM.getName());
-//                    carrierInfo1.setLoadingConfirmFlag(StatusEnum.LOADING_CONFIRM.getFlag());
-//
-//                }
-//                else{
-//                    carrierInfo1.setUnloadingConfirm(StatusEnum.LOADING_CONFIRM.getName());
-//                    carrierInfo1.setUnloadingConfirmFlag(StatusEnum.LOADING_CONFIRM.getFlag());
-//                }
-//            }
-//            else{
-//                if("2".equals(carrierInfo1.getLoadingFlag())){
-//                    carrierInfo1.setLoadingConfirm(StatusEnum.LOADING_REJECTION.getName());
-//                    carrierInfo1.setLoadingConfirmFlag(StatusEnum.LOADING_REJECTION.getFlag());
-//                }
-//                else{
-//                    carrierInfo1.setUnloadingConfirm(StatusEnum.LOADING_REJECTION.getName());
-//                    carrierInfo1.setUnloadingConfirmFlag(StatusEnum.LOADING_REJECTION.getFlag());
-//                }
-//            }
-            this.updateById(carrierInfo1);
-            //更改订单状态
-            orderInfo.setOrderStatus(StatusEnum.DRIVER_ORDER_SETTLEMENT.getName());
-            orderInfo.setOrderStatusKey(StatusEnum.DRIVER_ORDER_SETTLEMENT.getFlag());
+        OrderInfo orderInfo = orderInfoService.selectById(carrierInfo.getId());
+        if (orderInfo != null){
+            if ("1".equals(carrierInfo.getLoadingFlag())){
+                if ("1".equals(carrierInfo.getFlag())){
+                    //确认装车更改订单状态
+                    orderInfo.setOrderStatus(StatusEnum.DRIVER_ORDER_TRANSIT.getName());
+                    orderInfo.setOrderStatusKey(StatusEnum.DRIVER_ORDER_TRANSIT.getFlag());
+                    orderInfo.setCargoOwnerStatus(StatusEnum.DRIVER_ORDER_TRANSIT.getName());
+                    orderInfo.setCargoOwnerStatusKey(StatusEnum.DRIVER_ORDER_TRANSIT.getFlag());
+                }else {
+                    //驳回装车更改订单状态
+                    orderInfo.setOrderStatus(StatusEnum.OWNER_REJECT_LOADING.getName());
+                    orderInfo.setOrderStatusKey(StatusEnum.OWNER_REJECT_LOADING.getFlag());
+                    orderInfo.setCargoOwnerStatus(StatusEnum.REJECT_LOADING.getName());
+                    orderInfo.setCargoOwnerStatusKey(StatusEnum.REJECT_LOADING.getFlag());
+                }
+            }else {
+                if ("1".equals(carrierInfo.getFlag())){
+                    //确认卸车更改订单状态
+                    orderInfo.setOrderStatus(StatusEnum.DRIVER_ORDER_SETTLEMENT.getName());
+                    orderInfo.setOrderStatusKey(StatusEnum.DRIVER_ORDER_SETTLEMENT.getFlag());
+                    orderInfo.setCargoOwnerStatus(StatusEnum.DRIVER_ORDER_SETTLEMENT.getName());
+                    orderInfo.setCargoOwnerStatusKey(StatusEnum.DRIVER_ORDER_SETTLEMENT.getFlag());
+                }else {
+                    //驳回卸车更改订单状态
+                    orderInfo.setOrderStatus(StatusEnum.OWNER_REJECT_UNLOAD.getName());
+                    orderInfo.setOrderStatusKey(StatusEnum.OWNER_REJECT_UNLOAD.getFlag());
+                    orderInfo.setCargoOwnerStatus(StatusEnum.REJECT_UNLOAD.getName());
+                    orderInfo.setCargoOwnerStatusKey(StatusEnum.REJECT_UNLOAD.getFlag());
+                }
+            }
             orderInfoService.updateById(orderInfo);
         }
         return "OK";

+ 56 - 14
winsea-haixin-plugin-wangluohuoyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PublishTaskInfoServiceImpl.java

@@ -6,9 +6,11 @@ import com.google.common.collect.Lists;
 import com.yh.saas.common.support.util.IdGenerator;
 import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
 import com.yh.saas.plugin.yiliangyiyun.entity.*;
+import com.yh.saas.plugin.yiliangyiyun.entity.view.GoodsSourceView;
 import com.yh.saas.plugin.yiliangyiyun.mapper.PublishTaskInfoMapper;
 import com.yh.saas.plugin.yiliangyiyun.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.yh.saas.plugin.yiliangyiyun.util.EntCoordUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -81,7 +83,7 @@ public class PublishTaskInfoServiceImpl extends ServiceImpl<PublishTaskInfoMappe
      * @return
      */
     @Override
-    public Page<PublishTaskInfo> selectGoodsSource(PublishTaskInfo publishTaskInfo) {
+    public Page<GoodsSourceView> selectGoodsSource(PublishTaskInfo publishTaskInfo) {
         Map<String, Object> pageView = new HashMap<>();
         pageView.put("startRecord", (publishTaskInfo.getCurrentPage() - 1)
                 * publishTaskInfo.getPageSize());
@@ -96,22 +98,20 @@ public class PublishTaskInfoServiceImpl extends ServiceImpl<PublishTaskInfoMappe
         pageView.put("currentPage", publishTaskInfo.getCurrentPage());
         // 查询货源总数
         Integer dataCount = baseMapper.getCounstByCondition(pageView);
-        Page<PublishTaskInfo> page = new Page<>();
+        Page<GoodsSourceView> page = new Page<>();
+        //货源列表
+        List<GoodsSourceView> goodsSourceViews = new ArrayList<>();
+        //新增货源对象
+        GoodsSourceView goodsSourceView = new GoodsSourceView();
         //推荐货源列表
         if("1".equals(publishTaskInfo.getSearchKeyWord())){
             List<PublishTaskInfo> dataList = baseMapper.getListsByCondition(pageView);
-            page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
-            page.setTotal(dataCount == null ? 0 : dataCount);
-            page.setCurrent(publishTaskInfo.getCurrentPage());
-            page.setSize(publishTaskInfo.getPageSize());
+            goodsSourceView.setPublishTaskInfoList(dataList);
         }
         //按时间排序货源列表
         else if("2".equals(publishTaskInfo.getSearchKeyWord())) {
             List<PublishTaskInfo> dataList = baseMapper.getListByTimeCondition(pageView);
-            page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
-            page.setTotal(dataCount == null ? 0 : dataCount);
-            page.setCurrent(publishTaskInfo.getCurrentPage());
-            page.setSize(publishTaskInfo.getPageSize());
+            goodsSourceView.setPublishTaskInfoList(dataList);
         }
         //按距离排序货源列表
         else{
@@ -141,11 +141,53 @@ public class PublishTaskInfoServiceImpl extends ServiceImpl<PublishTaskInfoMappe
                     dataList.sort(Comparator.comparing(PublishTaskInfo::getCargoDistance));
                 }
             }
-            page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
-            page.setTotal(dataCount == null ? 0 : dataCount);
-            page.setCurrent(publishTaskInfo.getCurrentPage());
-            page.setSize(publishTaskInfo.getPageSize());
+            //新增货源对象
+            goodsSourceView.setPublishTaskInfoList(dataList);
         }
+        //周边信息列表
+        List<PublishTaskInfo> publishTaskInfoList = new ArrayList<>();
+        //所有货源列表
+        List<PublishTaskInfo> dataList1 = baseMapper.getAllListsByCondition(pageView);
+            if (!CollectionUtils.isEmpty(dataList1)){
+                //查询发货地经纬度
+                for(int i = 0; i < dataList1.size(); i++){
+                    PublishTaskInfo publishTaskInfo1 = dataList1.get(i);
+                    //发货地经纬度
+                    double lng2 = Math.toRadians(Double.valueOf(publishTaskInfo1.getSendLongitude()));
+                    double lat2 = Math.toRadians(Double.valueOf(publishTaskInfo1.getSendLatitude()));
+                    //根据装货城市获取经纬度
+                    String str =  EntCoordUtil.getCoordinate(publishTaskInfo.getLoadingPlaceCity());
+                    String str1 = str.substring(0, str.indexOf(","));//经度
+                    String str2 = str.substring(str1.length()+1, str.length());//纬度
+                    //装货地经纬度
+                    double lng1 = Math.toRadians(Double.valueOf(str1));
+                    double lat1 = Math.toRadians(Double.valueOf(str2));
+                    // 纬度之差
+                    double a = lat1 - lat2;
+                    // 经度之差
+                    double b = lng1 - lng2;
+                    // 计算两点距离的公式
+                    double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
+                            Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
+                    // 弧长乘地球半径, 返回单位: 千米
+                    s =  s * EARTH_RADIUS;
+                    if (s <= 300){
+                        //货距小于300公里,放入周边信息列表
+                        publishTaskInfo1.setCargoDistance(Math.floor(s));
+                        publishTaskInfoList.add(publishTaskInfo1);
+                    }
+                }
+                //按货距排序,倒序
+                publishTaskInfoList.sort(Comparator.comparing(PublishTaskInfo::getCargoDistance));
+                //新增周边信息列表
+                goodsSourceView.setPublishTaskInfoLists(publishTaskInfoList);
+            }
+        //将货源对象放入货源列表
+        goodsSourceViews.add(goodsSourceView);
+        page.setRecords(goodsSourceViews == null ? Lists.newArrayList() : goodsSourceViews);
+        page.setTotal(dataCount == null ? publishTaskInfoList.size() : dataCount + publishTaskInfoList.size());
+        page.setCurrent(publishTaskInfo.getCurrentPage());
+        page.setSize(publishTaskInfo.getPageSize());
         return page;
     }
 

+ 4 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/OrderInfoMapper.xml

@@ -126,6 +126,8 @@
             OR lower(driver_name) like lower(CONCAT('%',#{searchKeyWord},'%'))
             OR lower(send_city) like lower(CONCAT('%',#{searchKeyWord},'%'))
             OR lower(send_area) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(send_private) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(unload_private) like lower(CONCAT('%',#{searchKeyWord},'%'))
             OR lower(unload_city) like lower(CONCAT('%',#{searchKeyWord},'%'))
             OR lower(unload_area) like lower(CONCAT('%',#{searchKeyWord},'%')))
         </if>
@@ -197,6 +199,8 @@
             OR lower(driver_name) like lower(CONCAT('%',#{searchKeyWord},'%'))
             OR lower(send_city) like lower(CONCAT('%',#{searchKeyWord},'%'))
             OR lower(send_area) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(send_private) like lower(CONCAT('%',#{searchKeyWord},'%'))
+            OR lower(unload_private) like lower(CONCAT('%',#{searchKeyWord},'%'))
             OR lower(unload_city) like lower(CONCAT('%',#{searchKeyWord},'%'))
             OR lower(unload_area) like lower(CONCAT('%',#{searchKeyWord},'%')))
         </if>

+ 49 - 0
winsea-haixin-plugin-wangluohuoyun/src/main/resources/mapper/PublishTaskInfoMapper.xml

@@ -374,4 +374,53 @@
             LIMIT ${startRecord}, ${pageSize}
         </if>
     </select>
+
+    <!-- 获得货源列表 -->
+    <select id="getAllListsByCondition" parameterType="Map"
+            resultType="com.yh.saas.plugin.yiliangyiyun.entity.PublishTaskInfo">
+        SELECT
+        p.id,
+        p.common_id AS commonId,
+        p.cargo_owner AS cargoOwner,
+        p.send_private AS sendPrivate,
+        p.send_city AS sendCity,
+        p.send_area AS sendArea,
+        p.send_detailed_address AS sendDetailedAddress,
+        p.send_longitude AS sendLongitude,
+        p.send_latitude AS sendLatitude,
+        p.unload_private AS unloadPrivate,
+        p.unload_city AS unloadCity,
+        p.unload_area AS unloadArea,
+        p.unload_detailed_address AS unloadDetailedAddress,
+        p.cargo_distance AS cargoDistance,
+        p.distance,
+        p.freight_price AS freightPrice,
+        p.goods_name AS goodsName,
+        p.car_length_small AS carLengthSmall,
+        p.car_length AS carLength,
+        p.load_weight_small AS loadWeightSmall,
+        p.billing_method AS billingMethod,
+        p.load_weight AS loadWeight,
+        p.car_model AS carModel,
+        p.task_description AS taskDescription,
+        p.update_date AS updateDate,
+        p.create_date AS createDate,
+        c.phone AS cargoOwnerPhone,
+        c.name AS cargoOwnerName
+        FROM publish_task_info p
+        LEFT JOIN cargo_owner_info c on c.common_id = p.common_id and c.delete_flag = 0
+        WHERE p.delete_flag = '0'
+        <if test="searchType != null and searchType != ''">
+            <if test="searchType == 1">
+                AND p.freight_advance = '1'
+            </if>
+        </if>
+        <if test="loadingPlaceCity != null and loadingPlaceCity != ''">
+            AND (lower(p.send_city)  not like lower(CONCAT('%',#{loadingPlaceCity},'%')))
+        </if>
+        ORDER BY p.update_date DESC
+        <if test="currentPage != null and currentPage != ''">
+            LIMIT ${startRecord}, ${pageSize}
+        </if>
+    </select>
 </mapper>