From 6225c37d2f53adf26daf6b4859af5fb5c6fad088 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期一, 15 五月 2023 16:45:34 +0800
Subject: [PATCH] broker 卡车公司端

---
 src/main/java/com/stylefeng/guns/modular/system/controller/DemandController.java |  546 +++++++++++++++++++++++++++---------------------------
 1 files changed, 273 insertions(+), 273 deletions(-)

diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/DemandController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/DemandController.java
index e06b9ca..ea901a2 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/DemandController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/DemandController.java
@@ -14,7 +14,6 @@
 import com.stylefeng.guns.modular.system.utils.GoogleMap.DistancematrixVo;
 import com.stylefeng.guns.modular.system.utils.GoogleMap.GeocodeVo;
 import com.stylefeng.guns.modular.system.utils.GoogleMap.GoogleMapUtil;
-import com.stylefeng.guns.modular.system.utils.UserInfoUtil;
 import com.stylefeng.guns.modular.system.utils.tips.ErrorTip;
 import com.stylefeng.guns.modular.system.utils.tips.SuccessTip;
 import io.swagger.annotations.Api;
@@ -24,7 +23,6 @@
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -110,7 +108,7 @@
     @PostMapping(value = "/addDemand")
     @ResponseBody
     public Object addDemand(@RequestBody DemandDto demandDto) throws Exception {
-        Integer id = UserInfoUtil.getId();
+        Integer id = demandDto.getId();
         String s1 = System.currentTimeMillis() + ToolUtil.getRandomString(5);
         String s2 = System.currentTimeMillis() + ToolUtil.getRandomString(5);
         // 生成需求
@@ -124,93 +122,78 @@
         tQuote.setCreateId(id);
         quoteService.insert(tQuote);
 
-        List<TUserFeeSetting> tUserFeeSettings=null;
-        //获取当前用户的sale
-        Integer userId = demandDto.getUserId();
-        TUser tUser = userService.selectById(userId);
-        if(tUser.getGroupId()!=null){
-            TGroup tGroup = groupService.selectById(tUser.getGroupId());
-             tUserFeeSettings = userFeeSettingService.selectList(new EntityWrapper<TUserFeeSetting>().eq("user_id",tGroup.getSalesId()));
-
-        }
-
 
         String accessorialStr = demandDto.getAccessorialStr();
         String[] split = accessorialStr.split(",");
-        Map<String,String> map = new HashMap<>(split.length);
-        for (String s :split){
-            map.put(s,s);
-        }
-
-        List<TCompanyService> companyServiceList = new ArrayList<>();
-        //
-        for (Map.Entry<String, String> entry : map.entrySet()) {
-                companyServiceList.addAll(tCompanyServiceService.selectList(new EntityWrapper<TCompanyService>()
-                    .eq("service_name", entry.getKey()).ne("service_value", 0)));
-        }
-
-        // TODO size 是否包含   收费  收费站、收费基础
-
-        // 根据公司id去重
-        List<TCompanyService> companyServices = companyServiceList.stream().collect(Collectors.
-                collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(TCompanyService::getCompanyId))),ArrayList::new));
-        // 拿出符合规则的公司id
-        List<Integer> companyIds = companyServices.stream().map(TCompanyService::getCompanyId).collect(Collectors.toList());
-
-        List<TCompany> tCompanyList = new ArrayList<>();
-        for (Integer companyId : companyIds) {
-            List<TCompanyService> collect = companyServiceList.stream().filter(company -> company.getCompanyId().equals(companyId)).collect(Collectors.toList());
-            if(map.size() == collect.size()){
-                // 找出符合规则的公司
-                TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("status", 1)
-                        .eq("id",companyId));
-                if(Objects.nonNull(company)){
-                    tCompanyList.add(company);
-                }
-            }
-        }
-
-        // 符合规则的公司id集合
-        List<Integer> companyIdList = tCompanyList.stream().map(TCompany::getId).collect(Collectors.toList());
-
-        HashSet<Integer> set = new HashSet<>();
-
-        // 找出目前公司是否符合添加的码头
-        // 看当前码头是否为特殊码头
-        // 找出当前码头所在的cityid
+//        Map<String,String> map = new HashMap<>(split.length);
+//        for (String s :split){
+//            map.put(s,s);
+//        }
+//
+//        List<TCompanyService> companyServiceList = new ArrayList<>();
+//        //
+//        for (Map.Entry<String, String> entry : map.entrySet()) {
+//                companyServiceList.addAll(tCompanyServiceService.selectList(new EntityWrapper<TCompanyService>()
+//                    .eq("service_name", entry.getKey()).ne("service_value", 0)));
+//        }
+//
+//        // TODO size 是否包含   收费  收费站、收费基础
+//
+//        // 根据公司id去重
+//        List<TCompanyService> companyServices = companyServiceList.stream().collect(Collectors.
+//                collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(TCompanyService::getCompanyId))),ArrayList::new));
+//        // 拿出符合规则的公司id
+//        List<Integer> companyIds = companyServices.stream().map(TCompanyService::getCompanyId).collect(Collectors.toList());
+//
+//        List<TCompany> tCompanyList = new ArrayList<>();
+//        for (Integer companyId : companyIds) {
+//            List<TCompanyService> collect = companyServiceList.stream().filter(company -> company.getCompanyId().equals(companyId)).collect(Collectors.toList());
+//            if(map.size() == collect.size()){
+//                // 找出符合规则的公司
+//                TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("status", 1)
+//                        .eq("id",companyId));
+//                if(Objects.nonNull(company)){
+//                    tCompanyList.add(company);
+//                }
+//            }
+//        }
+//
+//        // 符合规则的公司id集合
+//        List<Integer> companyIdList = tCompanyList.stream().map(TCompany::getId).collect(Collectors.toList());
+//
+//        HashSet<Integer> set = new HashSet<>();
+//
+//        // 找出目前公司是否符合添加的码头
+//        // 看当前码头是否为特殊码头
+//        // 找出当前码头所在的cityid
         TPort tPort1 = portService.selectById(demandDto.getPortId());
         TCountry tCountry = countryService.selectById(tPort1.getCity());
-        List<Integer> integers = Arrays.asList(demandDto.getPortId(), tCountry.getId());
-        List<TRates> tRates = ratesService.selectList(new EntityWrapper<TRates>().in("metro_id", integers));
-        // 满足码头的公司
-        companyIdList.stream().forEach(t->{
-            for (TRates tRate : tRates) {
-                if(tRate.getCompanyId().equals(t)){
-                    set.add(t);
-                }
-            }
-        });
+//        List<Integer> integers = Arrays.asList(demandDto.getPortId(), tCountry.getId());
+//        List<TRates> tRates = ratesService.selectList(new EntityWrapper<TRates>().in("metro_id", integers));
+//        // 满足码头的公司
+//        companyIdList.stream().forEach(t->{
+//            for (TRates tRate : tRates) {
+//                if(tRate.getCompanyId().equals(t)){
+//                    set.add(t);
+//                }
+//            }
+//        });
 
         Integer portId = demandDto.getPortId();
         TPort tPort = itPortService.selectById(portId);
         String address = tPort.getAddress();
 //        GeocodeVo geocode = googleMapUtil.getGeocode(address);
 
-        List<TCompanyCalculationResp> tCompanyCalculationRespList = new ArrayList<>(tCompanyList.size());
+        List<TCompanyCalculationResp> tCompanyCalculationRespList = new ArrayList<>();
+//        List<Integer> collect1 = set.stream().filter(e -> e.equals(demandDto.getId())).collect(Collectors.toList());
 
-
-        // 没有满足公司
-        if(CollectionUtils.isEmpty(set)){
-            quoteService.deleteById(tQuote.getId());
-            return  new ErrorTip(5001,"No truck company was matched to meet the demand");
-        }else {
-            for (TCompany company : tCompanyList) {
+            TCompany company = companyService.selectById(demandDto.getId());
                 TCompanyCalculationResp tCompanyCalculationResp = new TCompanyCalculationResp();
                 ArrayList<TOrder> tOrders = new ArrayList<>();
                 // 超重 价格
                 ArrayList<TCompanyResp> objects = new ArrayList<>();
-                List<GoodsListDto> list1 = demandDto.getList();
-                // 判断是否特殊码头
+            List<GoodsListDto> list1 = demandDto.getList();
+            // 判断是否特殊码头
                 TRates tRates1 = ratesService.selectOne(new EntityWrapper<TRates>().eq("metro_id", demandDto.getPortId()).eq("type", 2).eq("company_id", company.getId()));
                 int ratesId=0;
                 if(tRates1!=null){
@@ -218,216 +201,227 @@
                 }else {
                     ratesId=tCountry.getId();
                 }
-
                 for (GoodsListDto goodsListDto : list1) {
                     ArrayList<TPrice> tPrices = new ArrayList<>();
-                    // 生成订单
-                    TOrder tOrder = new TOrder();
-                    tOrder.setUserId(demandDto.getUserId());
-                    tOrder.setAccessorial(demandDto.getAccessorial());
-                    tOrder.setAccessorialStr(demandDto.getAccessorialStr());
-                    tOrder.setPort(demandDto.getPortId());
-                    tOrder.setShipmentDate(demandDto.getShipmentDate());
-                    tOrder.setDeliveryDate(demandDto.getDeliveryDate());
-                    tOrder.seteZipZ(s1);
-                    tOrder.setCreateTime(new Date());
-                    tOrder.setStartLat("1");
-                    tOrder.setStartLon("1");
-                    tOrder.setDeliveryStr(demandDto.getDelivery());
-                    tOrder.setType(demandDto.getType());
-                    tOrder.setZipCode(demandDto.getZipCode());
-                    tOrder.setWarehouse(demandDto.getWarehouse());
-                    tOrder.setStatus("0");
-                    tOrder.setInvoiceNumber(s2);
-                    tOrder.setCompanyId(company.getId());
-                    tOrder.setCreateTime(new Date());
-                    orderService.insert(tOrder);
-                    tOrders.add(tOrder);
-
-                    List<GoodsDto> list = goodsListDto.getList();
-                    ArrayList<TGoods> tGoods1 = new ArrayList<>();
-                    for (GoodsDto goodsDto : list) {
-                        TGoods tGoods = new TGoods();
-                        tGoods.setShippingLine(goodsListDto.getShippingLine());
-                        tGoods.setDanger(goodsListDto.getDanger());
-                        tGoods.setKg(goodsDto.getKg());
-                        tGoods.setOrderId(tOrder.getId());
-                        tGoods.setSize(goodsDto.getSize());
-                        tGoods.setType(goodsDto.getType());
-                        tGoods.setWeight(goodsListDto.getWeight());
-                        tGoods.setTypeClass(goodsDto.getTypeClass());
-                        tGoods1.add(tGoods);
-                    }
-                    goodsService.insertBatch(tGoods1);
-
-                    TCompanyResp tCompanyResp = new TCompanyResp();
-                    // 是否超重
-                    Integer weight = goodsListDto.getWeight();
-                    long between = DateUtil.between(demandDto.getShipmentDate(), demandDto.getDeliveryDate(), DateUnit.DAY);
-                    if(between==0){
-                        between=1;
-                    }
-                    if(weight==1){
-                        TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.OVERWEIGHT.getDesc()));
-                        tCompanyResp.setName(UserFeeSettingEnum.OVERWEIGHT.getDesc());
-                        tCompanyResp.setPrice(feeSetting.getSetValue());
-                        objects.add(tCompanyResp);
-                        TCompanyFeeSetting feeSetting1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", "trl-axle chassis"));
-                        tCompanyResp=new TCompanyResp();
-                        tCompanyResp.setName(UserFeeSettingEnum.CHASSIS_FEE.getDesc());
-                        tCompanyResp.setPrice(feeSetting1.getSetValue().multiply(new BigDecimal(between)));
-                        objects.add(tCompanyResp);
-                    }else {
-                        tCompanyResp=new TCompanyResp();
-                        tCompanyResp.setName(UserFeeSettingEnum.CHASSIS_FEE.getDesc());
-                        TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", "Pool chassis"));
-
-                        tCompanyResp.setPrice(feeSetting.getSetValue().multiply(new BigDecimal(between)));
-                        objects.add(tCompanyResp);
-                    }
-                    // type
-                    if ("Live Unload".equals(demandDto.getType())) {
-                        // 计算当前公司的价格
-                        tCompanyResp=new TCompanyResp();
-                        BigDecimal setValue = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.PREPULL.getDesc())).getSetValue();
-                        tCompanyResp.setName(UserFeeSettingEnum.PREPULL.getDesc());
-                        tCompanyResp.setPrice(setValue);
-                        objects.add(tCompanyResp);
-                    }
-                    // 滞留费
-                    tCompanyResp=new TCompanyResp();
-                    BigDecimal setValue = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.DETENTION_CONGESTION.getDesc())).getSetValue();
-                    tCompanyResp.setName(UserFeeSettingEnum.DETENTION_CONGESTION.getDesc());
-                    tCompanyResp.setPrice(setValue);
-                    objects.add(tCompanyResp);
-
-                    if(goodsListDto.getDanger()==1){
-                        tCompanyResp=new TCompanyResp();
-                        BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.HAZMAT.getDesc())).getSetValue();
-                        tCompanyResp.setName(UserFeeSettingEnum.HAZMAT.getDesc());
-                        tCompanyResp.setPrice(setValue1);
-                        objects.add(tCompanyResp);
-                    }
-                    if(demandDto.getUrgent()==1){
-                        tCompanyResp=new TCompanyResp();
-                        BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.URGENT_SEE.getDesc())).getSetValue();
-                        tCompanyResp.setName(UserFeeSettingEnum.URGENT_SEE.getDesc());
-                        tCompanyResp.setPrice(setValue1);
-                        objects.add(tCompanyResp);
-                    }
-                    if(demandDto.getPiperpass()==1){
-                        tCompanyResp=new TCompanyResp();
-                        BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.PIERPASS.getDesc())).getSetValue();
-                        tCompanyResp.setName(UserFeeSettingEnum.PIERPASS.getDesc());
-                        tCompanyResp.setPrice(setValue1);
-                        objects.add(tCompanyResp);
-                    }
-                    if(demandDto.getCTF()==1){
-                        tCompanyResp=new TCompanyResp();
-                        BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.CTF.getDesc())).getSetValue();
-                        tCompanyResp.setName(UserFeeSettingEnum.CTF.getDesc());
-                        tCompanyResp.setPrice(setValue1);
-                        objects.add(tCompanyResp);
-                    }
 
 
-                    if("0".equals(demandDto.getWarehouse())){
-                        tCompanyResp=new TCompanyResp();
-                        BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", demandDto.getDelivery())).getSetValue();
-                        tCompanyResp.setName(demandDto.getDelivery());
-                        tCompanyResp.setPrice(setValue1);
-                        objects.add(tCompanyResp);
+                    List<TGoods> list = goodsListDto.getList();
+                    for (TGoods e : list) {
+                        TOrder tOrder = new TOrder();
+                        tOrder.setUserId(demandDto.getUserId());
+                        tOrder.setAccessorial(demandDto.getAccessorial());
+                        tOrder.setAccessorialStr(demandDto.getAccessorialStr());
+                        tOrder.setPort(demandDto.getPortId());
+                        tOrder.setShipmentDate(demandDto.getShipmentDate());
+                        tOrder.setDeliveryDate(demandDto.getDeliveryDate());
+                        tOrder.seteZipZ(s1);
+                        tOrder.setCreateTime(new Date());
+                        tOrder.setStartLat("1");
+                        tOrder.setStartLon("1");
+                        tOrder.setDeliveryStr(demandDto.getDelivery());
+                        tOrder.setType(demandDto.getType());
+                        tOrder.setZipCode(demandDto.getZipCode());
+                        tOrder.setWarehouse(demandDto.getWarehouse());
+                        tOrder.setStatus("0");
+                        tOrder.setInvoiceNumber(s2);
+                        tOrder.setCompanyId(company.getId());
+                        tOrder.setCreateTime(new Date());
+                        tOrder.seteAddress(demandDto.getEAddress());
+                        tOrder.setOrderType(1);
+                        orderService.insert(tOrder);
+                        tOrders.add(tOrder);
+                        e.setOrderId(tOrder.getId());
+                        TCompanyResp tCompanyResp = new TCompanyResp();
+                        // 是否超重
+                        Integer weight = goodsListDto.getWeight();
+                        // 相差天数
+                        long between = DateUtil.between(demandDto.getShipmentDate(), demandDto.getDeliveryDate(), DateUnit.DAY);
+                        if(between==0){
+                            between=1;
+                        }
+                        if(weight==1){
+                            TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.OVERWEIGHT.getDesc()));
 
-                        // 基础价格
-                        String zipCode = demandDto.getZipCode();
-                        TCompanyBasic tCompanyBasic = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("port_id",ratesId).eq("zip_code", zipCode).eq("type", 1));
-                        if(Objects.nonNull(tCompanyBasic)){
+                            tCompanyResp.setName(UserFeeSettingEnum.OVERWEIGHT.getDesc());
+                            if(feeSetting==null){
+                                tCompanyResp.setPrice(new BigDecimal(0));
+                            }else {
+                                tCompanyResp.setPrice(feeSetting.getSetValue());
+                            }
+                            objects.add(tCompanyResp);
+                            TCompanyFeeSetting feeSetting1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", "trl-axle chassis"));
                             tCompanyResp=new TCompanyResp();
-                            tCompanyResp.setPrice(tCompanyBasic.getFee());
-                            tCompanyResp.setName("LH+FSC");
+                            tCompanyResp.setName(UserFeeSettingEnum.CHASSIS_FEE.getDesc());
+                            if(feeSetting1==null){
+                                tCompanyResp.setPrice(new BigDecimal(0));
+                            }else {
+                                tCompanyResp.setPrice(feeSetting1.getSetValue().multiply(new BigDecimal(between)));
+                            }
+
                             objects.add(tCompanyResp);
                         }else {
-                            // 画圈 拿到的zipcode集合 去对比当前zipcode是否在集合中
-                            TCompanyBasic type = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("type", 2).eq("port_id",ratesId).like("zip_code", zipCode));
-                            if(Objects.nonNull(type)){
+                            tCompanyResp=new TCompanyResp();
+                            tCompanyResp.setName(UserFeeSettingEnum.CHASSIS_FEE.getDesc());
+                            TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", "Pool chassis"));
+                            if(feeSetting==null){
+                                tCompanyResp.setPrice(new BigDecimal(0));
+                            }else {
+                                tCompanyResp.setPrice(feeSetting.getSetValue().multiply(new BigDecimal(between)));
+                            }
+
+                            objects.add(tCompanyResp);
+                        }
+                        // type
+                        if ("Live Unload".equals(demandDto.getType())) {
+                            // 计算当前公司的价格
+                            tCompanyResp=new TCompanyResp();
+                            TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", UserFeeSettingEnum.PREPULL.getDesc()));
+                            tCompanyResp.setName(UserFeeSettingEnum.PREPULL.getDesc());
+                            if(feeSetting==null){
+                                tCompanyResp.setPrice(new BigDecimal(0));
+                            }else {
+                                tCompanyResp.setPrice(feeSetting.getSetValue());
+                            }
+
+                            objects.add(tCompanyResp);
+                        }
+                        // 滞留费
+                        tCompanyResp=new TCompanyResp();
+                        TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", UserFeeSettingEnum.DETENTION_CONGESTION.getDesc()));
+
+                        tCompanyResp.setName(UserFeeSettingEnum.DETENTION_CONGESTION.getDesc());
+                        if(feeSetting==null){
+                            tCompanyResp.setPrice(new BigDecimal(0));
+                        }else {
+                            tCompanyResp.setPrice(feeSetting.getSetValue());
+                        }
+
+                        objects.add(tCompanyResp);
+
+                        if(goodsListDto.getDanger()==1){
+                            tCompanyResp=new TCompanyResp();
+                            TCompanyFeeSetting feeSetting1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", UserFeeSettingEnum.HAZMAT.getDesc()));
+                            tCompanyResp.setName(UserFeeSettingEnum.HAZMAT.getDesc());
+                            if(feeSetting1==null){
+                                tCompanyResp.setPrice(new BigDecimal(0));
+                            }else {
+                                tCompanyResp.setPrice(feeSetting1.getSetValue());
+                            }
+
+                            objects.add(tCompanyResp);
+                        }
+                        if(demandDto.getUrgent()==1){
+                            tCompanyResp=new TCompanyResp();
+                            TCompanyFeeSetting feeSetting1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", UserFeeSettingEnum.URGENT_SEE.getDesc()));
+
+                            tCompanyResp.setName(UserFeeSettingEnum.URGENT_SEE.getDesc());
+                            if(feeSetting1==null){
+                                tCompanyResp.setPrice(new BigDecimal(0));
+                            }else {
+                                tCompanyResp.setPrice(feeSetting1.getSetValue());
+                            }
+                            objects.add(tCompanyResp);
+                        }
+                        if(demandDto.getPiperpass()==1){
+                            tCompanyResp=new TCompanyResp();
+                            TCompanyFeeSetting feeSetting1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", UserFeeSettingEnum.PIERPASS.getDesc()));
+                            tCompanyResp.setName(UserFeeSettingEnum.PIERPASS.getDesc());
+                            if(feeSetting1==null){
+                                tCompanyResp.setPrice(new BigDecimal(0));
+                            }else {
+                                tCompanyResp.setPrice(feeSetting1.getSetValue());
+                            }
+                            objects.add(tCompanyResp);
+                        }
+                        if(demandDto.getCTF()==1){
+                            tCompanyResp=new TCompanyResp();
+                            TCompanyFeeSetting feeSetting1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", UserFeeSettingEnum.CTF.getDesc()));
+                            tCompanyResp.setName(UserFeeSettingEnum.CTF.getDesc());
+                            if(feeSetting1==null){
+                                tCompanyResp.setPrice(new BigDecimal(0));
+                            }else {
+                                tCompanyResp.setPrice(feeSetting1.getSetValue());
+                            }
+                            objects.add(tCompanyResp);
+                        }
+
+
+                        if("0".equals(demandDto.getWarehouse())){
+                            tCompanyResp=new TCompanyResp();
+                            BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", demandDto.getDelivery())).getSetValue();
+                            tCompanyResp.setName(demandDto.getDelivery());
+                            tCompanyResp.setPrice(setValue1);
+                            objects.add(tCompanyResp);
+
+                            // 基础价格
+                            String zipCode = demandDto.getZipCode();
+                            TCompanyBasic tCompanyBasic = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("port_id",ratesId).eq("zip_code", zipCode).eq("type", 1));
+                            if(Objects.nonNull(tCompanyBasic)){
                                 tCompanyResp=new TCompanyResp();
-                                tCompanyResp.setPrice(type.getFee());
+                                tCompanyResp.setPrice(tCompanyBasic.getFee());
                                 tCompanyResp.setName("LH+FSC");
                                 objects.add(tCompanyResp);
                             }else {
-                                tCompanyResp=new TCompanyResp();
-                                // 1条数据  不需要zipcode
-                                TCompanyBasic type1 = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("type", 3).eq("port_id",ratesId));
-                                DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(address, type1.getAddress());
-                                double distance = distancematrix.getDistance().doubleValue();
-                                BigDecimal bigDecimal = new BigDecimal(distance * 0.0006214);
-                                BigDecimal multiply = type1.getFee().multiply(bigDecimal);
-                                tCompanyResp.setPrice(multiply);
-                                tCompanyResp.setName("LH+FSC");
-                                objects.add(tCompanyResp);
+                                // 画圈 拿到的zipcode集合 去对比当前zipcode是否在集合中
+                                TCompanyBasic type = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("type", 2).eq("port_id",ratesId).like("zip_code", zipCode));
+                                if(Objects.nonNull(type)){
+                                    tCompanyResp=new TCompanyResp();
+                                    tCompanyResp.setPrice(type.getFee());
+                                    tCompanyResp.setName("LH+FSC");
+                                    objects.add(tCompanyResp);
+                                }else {
+                                    tCompanyResp=new TCompanyResp();
+                                    // 1条数据  不需要zipcode
+                                    TCompanyBasic type1 = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("type", 3).eq("port_id",ratesId));
+                                    if(type1!=null) {
+                                        DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(address, type1.getAddress());
+                                        double distance = distancematrix.getDistance().doubleValue();
+                                        BigDecimal bigDecimal = new BigDecimal(distance * 0.0006214);
+                                        BigDecimal multiply = type1.getFee().multiply(bigDecimal);
+                                        tCompanyResp.setPrice(multiply);
+                                        tCompanyResp.setName("LH+FSC");
+                                        objects.add(tCompanyResp);
+                                    }else {
+                                        tCompanyResp.setPrice(new BigDecimal(0));
+                                        tCompanyResp.setName("LH+FSC");
+                                        objects.add(tCompanyResp);
+                                    }
+                                }
                             }
-                        }
 
-                    }else {
-                        tCompanyResp=new TCompanyResp();
-                        TWarehouse tWarehouse = warehouseService.selectOne(new EntityWrapper<TWarehouse>().eq("company_id", company.getId()).eq("code", demandDto.getWarehouse()).eq("port_id",ratesId));
-                        tCompanyResp.setName(UserFeeSettingEnum.LH_FSH.getDesc());
-                        if(Objects.nonNull(tWarehouse)){
-                            tCompanyResp.setPrice(tWarehouse.getWarePrice());
                         }else {
-                            tCompanyResp.setPrice(new BigDecimal("0"));
+                            tCompanyResp=new TCompanyResp();
+                            TWarehouse tWarehouse = warehouseService.selectOne(new EntityWrapper<TWarehouse>().eq("company_id", company.getId()).eq("code", demandDto.getWarehouse()).eq("port_id",ratesId));
+                            tCompanyResp.setName(UserFeeSettingEnum.LH_FSH.getDesc());
+                            if(Objects.nonNull(tWarehouse)){
+                                tCompanyResp.setPrice(tWarehouse.getWarePrice());
+                            }else {
+                                tCompanyResp.setPrice(new BigDecimal("0"));
+                            }
+                            objects.add(tCompanyResp);
                         }
-                        objects.add(tCompanyResp);
-                    }
-                    BigDecimal bigDecimal = objects.stream().map(e -> e.getPrice()).reduce(BigDecimal::add).get();
-                    tOrder.setAllTotal(bigDecimal);
-                    orderService.updateById(tOrder);
-                    objects.stream().forEach(e->e.setOrderId(tOrder.getId()));
+                        BigDecimal bigDecimal = objects.stream().map(e1 -> e1.getPrice()).reduce(BigDecimal::add).get();
+                        tOrder.setAllTotal(bigDecimal);
+                        orderService.updateById(tOrder);
+                        objects.stream().forEach(e2->e2.setOrderId(tOrder.getId()));
 
-                    for (TCompanyResp object : objects) {
-                        TPrice tPrice = new TPrice();
-                        tPrice.setCreateTime(new Date());
-                        tPrice.setOrderId(object.getOrderId());
-                        tPrice.setState("1");
-                        tPrice.setPrice(object.getPrice());
-                        tPrice.setType(object.getName());
-                        tPrices.add(tPrice);
+                        for (TCompanyResp object : objects) {
+                            TPrice tPrice = new TPrice();
+                            tPrice.setCreateTime(new Date());
+                            tPrice.setOrderId(object.getOrderId());
+                            tPrice.setState("1");
+                            tPrice.setPrice(object.getPrice());
+                            tPrice.setType(object.getName());
+                            tPrices.add(tPrice);
+                        }
+                        priceService.insertBatch(tPrices);
                     }
-                    priceService.insertBatch(tPrices);
+                    goodsService.insertBatch(list);
+
+
                 }
 
                 tCompanyCalculationResp.setOrderList(tOrders);
-
-
-//                if(CollectionUtil.isNotEmpty(tUserFeeSettings)){
-//                    for (TCompanyResp object : objects) {
-//                        TPrice tPrice = new TPrice();
-//                        tPrice.setCreateTime(new Date());
-//                        tPrice.setOrderId(object.getOrderId());
-//                        tPrice.setState("1");
-//                        tPrice.setPrice(object.getPrice());
-//                        tPrice.setType(object.getName());
-//                        tPrices.add(tPrice);
-//                        for (TUserFeeSetting tUserFeeSetting : tUserFeeSettings) {
-//                            if(object.getName().equals(tUserFeeSetting.getName())){
-//                                double i = (double)tUserFeeSetting.getFee() / 100;
-//                                BigDecimal multiply = object.getPrice().multiply(new BigDecimal(i));
-//                            }
-//                        }
-//                    }
-//                }else {
-//                    for (TCompanyResp object : objects) {
-//                        TPrice tPrice = new TPrice();
-//                        tPrice.setCreateTime(new Date());
-//                        tPrice.setOrderId(object.getOrderId());
-//                        tPrice.setState("1");
-//                        tPrice.setPrice(object.getPrice());
-//                        tPrice.setType(object.getName());
-//                        tPrices.add(tPrice);
-//
-//                    }
-//                }
-//                priceService.insertBatch(tPrices);
                 tCompanyCalculationResp.setList(objects);
                 tCompanyCalculationResp.setCarGoNumber(String.valueOf(company.getMcNumber()));
                 tCompanyCalculationResp.setCompanyId(company.getId());
@@ -457,11 +451,9 @@
                 }
 
 
-            }
 
-        }
-        for (TCompanyCalculationResp tCompanyCalculationResp : tCompanyCalculationRespList) {
-            tCompanyCalculationResp.setQuoteId(tQuote.getId());
+        for (TCompanyCalculationResp tCompanyCalculationResp1 : tCompanyCalculationRespList) {
+            tCompanyCalculationResp1.setQuoteId(tQuote.getId());
         }
         return new SuccessTip(tCompanyCalculationRespList);
     }
@@ -523,11 +515,6 @@
             }
             tOrder.setPayMoney(bigDecimal);
             orderService.updateById(tOrder);
-
-
-
-
-
 
         }
         return new SuccessTip();
@@ -705,7 +692,7 @@
         Page<TWarehouse> tWarehousePage = new Page<>(pageNumber, pageSize);
 
         EntityWrapper<TWarehouse> tWarehouseEntityWrapper = new EntityWrapper<>();
-        tWarehouseEntityWrapper.eq("company_id",1);
+        tWarehouseEntityWrapper.eq("company_id",0);
         if(Objects.nonNull(address)){
             tWarehouseEntityWrapper.like("address",address);
         }
@@ -752,4 +739,17 @@
     }
 
 
+    @ApiOperation(value = "根据亚马逊code获取地址",notes="根据亚马逊code获取地址")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(name = "code", value = "code", required = true, dataType = "String"),
+    })
+    @GetMapping(value = "/getWarehouseFromCode")
+    @ResponseBody
+    public Object getWarehouseFromCode(String code) {
+        TWarehouse tWarehouse = warehouseService.selectList(new EntityWrapper<TWarehouse>().eq("code", code).eq("company_id", 0)).get(0);
+        return new SuccessTip(tWarehouse.getAddress() );
+    }
+
+
 }

--
Gitblit v1.7.1