From f9de931c4457c2a6bfe395879e3b2f2bfd7d9692 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期五, 26 五月 2023 16:55:34 +0800
Subject: [PATCH] 用户端代码

---
 src/main/java/com/stylefeng/guns/modular/system/model/PriceList.java                        |   15 
 src/main/java/com/stylefeng/guns/modular/system/model/TDriverSelectVo.java                  |    3 
 src/main/java/com/stylefeng/guns/modular/system/controller/TPowerUnitController.java        |   14 
 src/main/java/com/stylefeng/guns/modular/system/model/TCompanyBasic.java                    |    2 
 src/main/java/com/stylefeng/guns/modular/system/controller/TCarriersController.java         |   15 
 src/main/java/com/stylefeng/guns/modular/system/utils/StripePayUtils.java                   |    2 
 src/main/java/com/stylefeng/guns/modular/system/model/TUserAddress.java                     |    4 
 src/main/java/com/stylefeng/guns/modular/system/model/TransportInfo.java                    |   14 
 src/main/java/com/stylefeng/guns/modular/system/controller/TUserAddressController.java      |    7 
 src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TClaimMapper.xml                |    2 
 src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnits.java                      |    8 
 src/main/java/com/stylefeng/guns/modular/system/controller/IndexController.java             |    3 
 src/main/java/com/stylefeng/guns/modular/system/controller/FinanceController.java           |  145 ++++++
 src/main/java/com/stylefeng/guns/modular/system/controller/TYardController.java             |   12 
 src/main/java/com/stylefeng/guns/modular/system/model/OrderListVo.java                      |    4 
 src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java                           |   56 ++
 src/main/java/com/stylefeng/guns/modular/system/model/TExamSite.java                        |    9 
 src/main/java/com/stylefeng/guns/modular/system/model/TUser.java                            |   10 
 src/main/java/com/stylefeng/guns/modular/system/model/OrderInfo.java                        |    2 
 src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java             |   58 ++
 src/main/java/com/stylefeng/guns/modular/system/model/TUserBasicInfo.java                   |    2 
 src/main/java/com/stylefeng/guns/modular/system/utils/PaymentProcessor.java                 |  196 ++++++---
 src/main/java/com/stylefeng/guns/modular/system/dao/TOrderMapper.java                       |    7 
 src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java         |   17 
 src/main/java/com/stylefeng/guns/modular/system/model/InvoicesVo.java                       |   30 
 src/main/java/com/stylefeng/guns/modular/system/model/TCompany.java                         |   10 
 src/main/java/com/stylefeng/guns/modular/system/utils/TerminalInterfaceAcquisitionUtil.java |  135 ++++++
 src/main/java/com/stylefeng/guns/modular/system/controller/DemandController.java            |  262 +++++++-----
 src/main/java/com/stylefeng/guns/modular/system/model/TClaimVo.java                         |    2 
 src/main/java/com/stylefeng/guns/modular/system/model/dto/UserAddInfoDto.java               |    1 
 brokerUser.iml                                                                              |    1 
 src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserMapper.xml                 |   12 
 src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnitsVo.java                    |    5 
 src/main/java/com/stylefeng/guns/modular/system/model/TWarehouse.java                       |    4 
 src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserAddressMapper.xml          |    2 
 src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TQuoteMapper.xml                |    3 
 src/main/java/com/stylefeng/guns/modular/system/controller/DriverController.java            |   11 
 src/main/java/com/stylefeng/guns/modular/system/enums/FacilityCodeEnum.java                 |   44 ++
 src/main/java/com/stylefeng/guns/modular/system/model/TCompanyDto.java                      |    3 
 src/main/java/com/stylefeng/guns/modular/system/service/impl/TCompanyServiceImpl.java       |    2 
 src/main/java/com/stylefeng/guns/modular/system/model/OrderListDto.java                     |    2 
 src/main/java/com/stylefeng/guns/modular/system/warpper/TerminaleDataWarpper.java           |   34 +
 42 files changed, 921 insertions(+), 249 deletions(-)

diff --git a/brokerUser.iml b/brokerUser.iml
index 52f9f8c..1cdcbae 100644
--- a/brokerUser.iml
+++ b/brokerUser.iml
@@ -25,6 +25,7 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="guns-core-1.0.0" level="project" />
     <orderEntry type="library" name="Maven: com.stylefeng:guns-core:1.0.0" level="project" />
     <orderEntry type="library" name="Maven: com.baomidou:mybatisplus-spring-boot-starter:1.0.5" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.0.4.RELEASE" level="project" />
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 abbdcab..d5ab164 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
@@ -115,6 +115,17 @@
     @ResponseBody
     @Transactional(propagation = Propagation.REQUIRES_NEW)
     public Object addDemand(@RequestBody DemandDto demandDto) throws Exception {
+        Integer userId1 = demandDto.getUserId();
+
+        TUser tUser1 = userService.selectById(userId1);
+        if(tUser1.getPhone()==null){
+            return new ErrorTip(5008,"It is necessary to complete the information before issuing the quotation demand");
+        }
+
+
+        int breakNum=0;
+        // 计数
+        int count=0;
         Integer id = demandDto.getId();
         String s1 = System.currentTimeMillis() + ToolUtil.getRandomString(5);
         String s2 = System.currentTimeMillis() + ToolUtil.getRandomString(5);
@@ -223,6 +234,7 @@
         }else {
             List<TCompany> companies = companyService.selectList(new EntityWrapper<TCompany>().in("id", set));
             for (TCompany company : companies) {
+                breakNum=0;
                 TCompanyCalculationResp tCompanyCalculationResp = new TCompanyCalculationResp();
                 ArrayList<TOrder> tOrders = new ArrayList<>();
                 // 超重 价格
@@ -238,6 +250,9 @@
                 }
 
                 for (GoodsListDto goodsListDto : list1) {
+                    if(breakNum==1){
+                        break;
+                    }
                     ArrayList<TPrice> tPrices = new ArrayList<>();
                     // 生成订单
 //                    TOrder tOrder = new TOrder();
@@ -265,35 +280,92 @@
                     List<GoodsDto> list = goodsListDto.getList();
                     ArrayList<TGoods> tGoods1 = new ArrayList<>();
                     for (GoodsDto goodsDto : list) {
-
-                        // 生成订单
-                        TOrder tOrder = new TOrder();
-                        tOrder.setCity(city.getId());
-                        tOrder.setState(state.getId());
-                        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.seteAddress(demandDto.getZipCode());
-                        tOrder.setWarehouse(demandDto.getWarehouse());
-                        // TODO 未选择17  下一步选择
-                        tOrder.setStatus("17");
-                        tOrder.setInvoiceNumber(s2);
-                        tOrder.setCompanyId(company.getId());
-                        tOrder.setCreateTime(new Date());
-                        orderService.insert(tOrder);
-                        tOrders.add(tOrder);
-
                         TCompanyResp tCompanyResp = new 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();
+                            // 地址信息
+                            String address1 = AddressLookup.getAddress(zipCode);
+
+                            List<TCompanyBasic> tCompanyBasic = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("port_id",ratesId).eq("zip_code", zipCode).eq("type", 1));
+                            if(tCompanyBasic.size()>0){
+                                tCompanyResp=new TCompanyResp();
+                                tCompanyResp.setPrice(tCompanyBasic.get(0).getFee());
+                                tCompanyResp.setName("LH+FSC");
+                                objects.add(tCompanyResp);
+                            }else {
+                                // 画圈 拿到的zipcode集合 去对比当前zipcode是否在集合中
+                                List<TCompanyBasic> type = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("type", 2).eq("port_id",ratesId).orderBy("fee",true));
+                                if(type.size()>0){
+                                    GeocodeVo geocode1 = googleMapUtil.getGeocode(zipCode);
+                                    for (TCompanyBasic companyBasic : type) {
+                                        boolean inPolygon = PointInPolygon.isInPolygon(geocode1.getLat(), geocode1.getLng(), companyBasic.getLonLat());
+                                        if(inPolygon){
+                                            tCompanyResp=new TCompanyResp();
+                                            tCompanyResp.setPrice(type.get(0).getFee());
+                                            tCompanyResp.setName("LH+FSC");
+                                            objects.add(tCompanyResp);
+                                            break;
+                                        }
+                                    }
+                                    if(tCompanyResp==null){
+                                        // 距离
+                                        tCompanyResp=new TCompanyResp();
+                                        // 1条数据  不需要zipcode
+                                        DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(address, address1);
+                                        double distance = distancematrix.getDistance().doubleValue();
+                                        BigDecimal bigDecimal = new BigDecimal(distance * 0.0006214);
+                                        List<TCompanyBasic> type1 = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("type", 3).eq("port_id",ratesId).le("start",bigDecimal.doubleValue()).orderBy("start",true));
+                                        if(type1.size()>0) {
+                                            BigDecimal multiply = type1.get(0).getFee().multiply(bigDecimal);
+                                            tCompanyResp.setPrice(multiply);
+                                            tCompanyResp.setName("LH+FSC");
+                                            objects.add(tCompanyResp);
+                                        }else {
+                                            breakNum=1;
+                                            count++;
+                                            break;
+                                        }
+                                    }
+                                }else {
+                                    // 距离
+                                    tCompanyResp=new TCompanyResp();
+                                    // 1条数据  不需要zipcode
+                                    DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(address, address1);
+                                    double distance = distancematrix.getDistance().doubleValue();
+                                    BigDecimal bigDecimal = new BigDecimal(distance * 0.0006214);
+                                    List<TCompanyBasic> type1 = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("type", 3).eq("port_id",ratesId).le("start",bigDecimal.doubleValue()).orderBy("start",true));
+                                    if(type1.size()>0) {
+                                        BigDecimal multiply = type1.get(0).getFee().multiply(bigDecimal);
+                                        tCompanyResp.setPrice(multiply);
+                                        tCompanyResp.setName("LH+FSC");
+                                        objects.add(tCompanyResp);
+                                    }else {
+                                        breakNum=1;
+                                        count++;
+                                        break;
+                                    }
+                                }
+                            }
+
+                        }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"));
+                            }
+                            objects.add(tCompanyResp);
+                        }
+
                         // 是否超重
                         Integer weight = goodsDto.getWeight();
                         long between = DateUtil.between(demandDto.getShipmentDate(), demandDto.getDeliveryDate(), DateUnit.DAY);
@@ -367,90 +439,39 @@
                         }
 
 
-                        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();
-                            // 地址信息
-                            String address1 = AddressLookup.getAddress(zipCode);
-                            List<TCompanyBasic> tCompanyBasic = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("port_id",ratesId).eq("zip_code", zipCode).eq("type", 1));
-                            if(tCompanyBasic.size()>0){
-                                tCompanyResp=new TCompanyResp();
-                                tCompanyResp.setPrice(tCompanyBasic.get(0).getFee());
-                                tCompanyResp.setName("LH+FSC");
-                                objects.add(tCompanyResp);
-                            }else {
-                                // 画圈 拿到的zipcode集合 去对比当前zipcode是否在集合中
-                                List<TCompanyBasic> type = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("type", 2).eq("port_id",ratesId).orderBy("fee",true));
-                                if(type.size()>0){
-                                    GeocodeVo geocode1 = googleMapUtil.getGeocode(zipCode);
-                                    for (TCompanyBasic companyBasic : type) {
-                                        boolean inPolygon = PointInPolygon.isInPolygon(geocode1.getLat(), geocode1.getLng(), companyBasic.getLonLat());
-                                        if(inPolygon){
-                                            tCompanyResp=new TCompanyResp();
-                                            tCompanyResp.setPrice(type.get(0).getFee());
-                                            tCompanyResp.setName("LH+FSC");
-                                            objects.add(tCompanyResp);
-                                            break;
-                                        }
-                                    }
-                                    if(tCompanyResp==null){
-                                        // 距离
-                                        tCompanyResp=new TCompanyResp();
-                                        // 1条数据  不需要zipcode
-                                        DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(address, address1);
-                                        double distance = distancematrix.getDistance().doubleValue();
-                                        BigDecimal bigDecimal = new BigDecimal(distance * 0.0006214);
-                                        List<TCompanyBasic> type1 = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("type", 3).eq("port_id",ratesId).le("start",bigDecimal.doubleValue()).orderBy("start",true));
-                                        if(type1.size()>0) {
-                                            BigDecimal multiply = type1.get(0).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();
-                                    // 1条数据  不需要zipcode
-                                    DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(address, address1);
-                                    double distance = distancematrix.getDistance().doubleValue();
-                                    BigDecimal bigDecimal = new BigDecimal(distance * 0.0006214);
-                                    List<TCompanyBasic> type1 = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("type", 3).eq("port_id",ratesId).le("start",bigDecimal.doubleValue()).orderBy("start",true));
-                                    if(type1.size()>0) {
-                                        BigDecimal multiply = type1.get(0).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"));
-                            }
-                            objects.add(tCompanyResp);
-                        }
                         BigDecimal bigDecimal = objects.stream().map(e -> e.getPrice()==null?new BigDecimal(0):e.getPrice()).reduce(BigDecimal::add).get();
+                        // 生成订单
+                        TOrder tOrder = new TOrder();
+                        tOrder.setCity(city.getId());
+                        tOrder.setState(state.getId());
+                        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());
+                        if("0".equals(demandDto.getWarehouse())){
+                            tOrder.seteAddress(demandDto.getZipCode());
+                        }else {
+                            TWarehouse tWarehouse = warehouseService.selectOne(new EntityWrapper<TWarehouse>().eq("company_id", company.getId()).eq("code", demandDto.getWarehouse()).eq("port_id",ratesId));
+                            tOrder.seteAddress(tWarehouse.getAddress());
+                        }
+
+                        tOrder.setWarehouse(demandDto.getWarehouse());
+                        tOrder.setStatus("17");
+                        tOrder.setInvoiceNumber(s2);
+                        tOrder.setCompanyId(company.getId());
+                        tOrder.setCreateTime(new Date());
+                        orderService.insert(tOrder);
+                        tOrders.add(tOrder);
                         tOrder.setAllTotal(bigDecimal);
                         orderService.updateById(tOrder);
                         objects.stream().forEach(e->e.setOrderId(tOrder.getId()));
@@ -538,12 +559,17 @@
                 }else {
                     String zipCode = demandDto.getZipCode();
 //                    GeocodeVo geocode1 = googleMapUtil.getGeocode(zipCode);
-//                    tCompanyCalculationResp.setEndLon(String.valueOf(geocode1.getLng()));
 //                    tCompanyCalculationResp.setEndLat(String.valueOf(geocode1.getLat()));
+//                    tCompanyCalculationResp.setEndLon(String.valueOf(geocode1.getLng()));
+                    tCompanyCalculationResp.setEndLat(String.valueOf(1));
+                    tCompanyCalculationResp.setEndLon(String.valueOf(1));
                     tCompanyCalculationRespList.add(tCompanyCalculationResp);
                 }
 
 
+            }
+            if(count==companies.size()){
+                return  new ErrorTip(5001,"No truck company was matched to meet the demand");
             }
 
         }
@@ -583,18 +609,32 @@
         List<TOrder> orders = orderService.selectList(new EntityWrapper<TOrder>().eq("e_zip_z", quote.getOrderId()).eq("status", 0));
         ArrayList<TGoods> goods = new ArrayList<>();
         BigDecimal bigDecimal = new BigDecimal(0);
+        ArrayList<TPrice> tPrices = new ArrayList<>();
         for (TOrder order : orders) {
             TGoods tGoods = goodsService.selectOne(new EntityWrapper<TGoods>().eq("order_id", order.getId()));
             goods.add(tGoods);
             bigDecimal=bigDecimal.add(order.getAllTotal());
+            List<TPrice> prices = priceService.selectList(new EntityWrapper<TPrice>().eq("order_id", order.getId()));
+            tPrices.addAll(prices);
         }
+        Map<String, BigDecimal> sumMap = tPrices.stream()
+                .collect(Collectors.groupingBy(TPrice::getType, Collectors.reducing(BigDecimal.ZERO, TPrice::getPrice, BigDecimal::add)));
+        List<PriceList> pricesList = sumMap.entrySet().stream()
+                .map(entry -> new PriceList(entry.getKey(), entry.getValue()))
+                .collect(Collectors.toList());
+        Integer userId = orders.get(0).getUserId();
+        TUser tUser = userService.selectById(userId);
+        String residueLimit = tUser.getResidueLimit();
         HashMap<String, Object> map = new HashMap<>();
         map.put("money",bigDecimal);
         map.put("data",goods);
+        map.put("residueLimit",residueLimit);
+        map.put("prices",pricesList);
         return new SuccessTip(map);
     }
 
 
+
     @ApiOperation(value = "发布需求-第二步/修改需求",notes="发布需求-第二步/修改需求")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/DriverController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/DriverController.java
index 8d67c15..e52f8d2 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/DriverController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/DriverController.java
@@ -53,17 +53,20 @@
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
             @ApiImplicitParam(name = "time", value = "2000-01-01 - 2000-11-11", required = false, dataType = "String"),
             @ApiImplicitParam(name = "name", value = "name", required = false, dataType = "String"),
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "int"),
             @ApiImplicitParam(name = "pageNumber", value = "pageNumber", required = true, dataType = "int"),
             @ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "int"),
     })
     @GetMapping(value = "/driverList")
     @ResponseBody
-    public Object driverList(String time, String name, int pageNumber, int pageSize) {
+    public Object driverList(String time, String name,int id, int pageNumber, int pageSize) {
         String sTime = null;
         String eTime = null;
         EntityWrapper<TDriver> wrapper = new EntityWrapper<>();
         Page<TDriver> tDriverPage = new Page<>(pageNumber, pageSize);
         wrapper.eq("remove", 0);
+        wrapper.eq("is_carriers",1);
+        wrapper.eq("company_id",id);
         if (ToolUtil.isNotEmpty(name)) {
             wrapper.like("driver_name", name).or().like("account", name);
         }
@@ -195,36 +198,42 @@
                 Cell cell2 = row.getCell(2);
                 String two = null;//Driver Number
                 if (ToolUtil.isNotEmpty(cell2)) {
+                    cell2.setCellType(Cell.CELL_TYPE_STRING);
                     two = String.valueOf(cell2.getStringCellValue()).trim();
                 }
 
                 Cell cell3 = row.getCell(3);
                 String three = null;//Date of Birth
                 if (ToolUtil.isNotEmpty(cell3)) {
+                    cell3.setCellType(Cell.CELL_TYPE_STRING);
                     three = String.valueOf(cell3.getStringCellValue()).trim();
                 }
 
                 Cell cell4 = row.getCell(4);
                 String four = null;//Address
                 if (ToolUtil.isNotEmpty(cell4)) {
+                    cell4.setCellType(Cell.CELL_TYPE_STRING);
                     four = String.valueOf(cell4.getStringCellValue()).trim();
                 }
 
                 Cell cell5 = row.getCell(5);
                 String five = null;//Driver Type
                 if (ToolUtil.isNotEmpty(cell5)) {
+                    cell5.setCellType(Cell.CELL_TYPE_STRING);
                     five = String.valueOf(cell5.getStringCellValue()).trim();
                 }
 
                 Cell cell6 = row.getCell(6);
                 String six = null;//Status
                 if (ToolUtil.isNotEmpty(cell6)) {
+                    cell6.setCellType(Cell.CELL_TYPE_STRING);
                     six = String.valueOf(cell6.getStringCellValue()).trim();
                 }
 
                 Cell cell7 = row.getCell(7);
                 String seven = null;//StatusRemark
                 if (ToolUtil.isNotEmpty(cell7)) {
+                    cell7.setCellType(Cell.CELL_TYPE_STRING);
                     seven = String.valueOf(cell7.getStringCellValue()).trim();
                 }
 
diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/FinanceController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/FinanceController.java
index b026bf1..5f96342 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/FinanceController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/FinanceController.java
@@ -1,33 +1,37 @@
 package com.stylefeng.guns.modular.system.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.amazonaws.services.dynamodbv2.xspec.B;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stripe.exception.StripeException;
 import com.stripe.model.PaymentIntent;
-import com.stylefeng.guns.modular.system.model.ReceivableVo;
-import com.stylefeng.guns.modular.system.model.TGoods;
-import com.stylefeng.guns.modular.system.model.TOrder;
-import com.stylefeng.guns.modular.system.model.TPrice;
-import com.stylefeng.guns.modular.system.service.ITGoodsService;
-import com.stylefeng.guns.modular.system.service.ITOrderService;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.service.impl.TQuoteServiceImpl;
 import com.stylefeng.guns.modular.system.utils.PaymentProcessor;
 import com.stylefeng.guns.modular.system.utils.Server;
+import com.stylefeng.guns.modular.system.utils.StripePayUtils;
+import com.stylefeng.guns.modular.system.utils.tips.ErrorTip;
 import com.stylefeng.guns.modular.system.utils.tips.SuccessTip;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Controller
 @Api(tags = "用户端-财务信息")
@@ -40,6 +44,15 @@
 
     @Autowired
     private ITGoodsService goodsService;
+
+    @Autowired
+    private ITUserService itUserService;
+
+    @Autowired
+    private ITQuoteService tQuoteService;
+
+    @Autowired
+    private TUserBankService userBankService;
 
 
     @ApiOperation(value = "用户端-invocie",notes="用户端-invocie")
@@ -105,17 +118,119 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
             @ApiImplicitParam(name = "id", value = "userid", required = true, dataType = "int"),
-            @ApiImplicitParam(name = "orderId", value = "orderId", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "quoteId", value = "需求id", required = false, dataType = "Long"),
+            @ApiImplicitParam(name = "cardId", value = "cardId", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "type", value = "type 1额度支付  2全款支付", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "category", value = " 1需求支付  2所有支付", required = true, dataType = "int"),
     })
     @GetMapping(value = "/payInfo")
     @ResponseBody
-    public Object payInfo(int id,Long orderId) throws StripeException {
-        PaymentIntent paymentIntent = PaymentProcessor.charge("cus_NvFsNut8zDF9pc", 1L);
+    @Transactional(propagation = Propagation.REQUIRES_NEW)
+    public Object payInfo(int id, Long quoteId, Integer cardId, int type, int category) throws StripeException {
+        TUser tUser = itUserService.selectById(id);
 
-        Server.aaa();
-        return new SuccessTip();
+
+        try {
+            if (category == 1) {
+                TQuote quote = tQuoteService.selectById(quoteId);
+                // 找出状态为0的订单
+                List<TOrder> orders = orderService.selectList(new EntityWrapper<TOrder>().eq("e_zip_z", quote.getOrderId()).eq("status", 0));
+                // 总金额
+                BigDecimal bigDecimal = new BigDecimal(0);
+                for (TOrder order : orders) {
+                    bigDecimal = bigDecimal.add(order.getAllTotal());
+                }
+                if (type == 1) {
+                    // 可用额度
+                    BigDecimal bigDecimal1 = null;
+                    String residueLimit = tUser.getResidueLimit();
+                    if (residueLimit == null) {
+                        bigDecimal1 = new BigDecimal(residueLimit);
+                    } else {
+                        bigDecimal1 = new BigDecimal(residueLimit);
+                    }
+                    // 剩余额度
+                    BigDecimal subtract = bigDecimal1.subtract(bigDecimal);
+                    tUser.setResidueLimit(subtract.toString());
+                    orders.forEach(e -> {
+                        e.setStatus("2");
+                        e.setPayTime(new Date());
+                    });
+                    orderService.updateBatchById(orders);
+                    itUserService.updateById(tUser);
+                    quote.setState(4);
+                    tQuoteService.updateById(quote);
+                } else {
+                    if (tUser.getUserNumber() == null) {
+                        return new ErrorTip(5006, "Please bind a card first");
+                    }
+                    // 找出这张卡
+                    TUserBank tUserBank = userBankService.selectById(cardId);
+                    String cardToken = tUserBank.getCardToken();
+                    // 修改默认支付卡
+                    StripePayUtils.updateStripeDefaultCard(tUser.getUserNumber(), cardToken);
+//                    String method = PaymentProcessor.getMethod(tUser.getUserNumber());
+//                    JSONObject jsonObject = JSON.parseObject(method);
+//                    Object id1 = jsonObject.get("id");
+                    long l = bigDecimal.multiply(new BigDecimal(100)).longValue();
+                    Boolean pay = PaymentProcessor.pay(tUser.getUserNumber(), cardToken, l);
+                    if (pay) {
+                        orders.forEach(e -> {
+                            e.setStatus("2");
+                            e.setPaid(e.getAllTotal());
+                            e.setPayTime(new Date());
+                        });
+                        orderService.updateBatchById(orders);
+                        quote.setState(4);
+                        tQuoteService.updateById(quote);
+                    }
+                }
+            } else {
+                if (tUser.getUserNumber() == null) {
+                    return new ErrorTip(5006, "Please bind a card first");
+                }
+                // 找出所有未支付完成的订单
+                List<TOrder> orders = orderService.getNoPayOrder(id);
+                HashSet<TQuote> tQuotes = new HashSet<>();
+                BigDecimal all = new BigDecimal(0);
+                for (TOrder order : orders) {
+                    String s = order.geteZipZ();
+                    TQuote quote = tQuoteService.selectOne(new EntityWrapper<TQuote>().eq("order_id", s));
+                    quote.setState(4);
+                    tQuotes.add(quote);
+                    BigDecimal allTotal = order.getAllTotal();
+                    BigDecimal paid = order.getPaid();
+                    BigDecimal subtract = allTotal.subtract(paid);
+                    all = all.add(subtract);
+                }
+                // 找出这张卡
+                TUserBank tUserBank = userBankService.selectById(cardId);
+                String cardToken = tUserBank.getCardToken();
+                // 修改默认支付卡
+                StripePayUtils.updateStripeDefaultCard(tUser.getUserNumber(), cardToken);
+                String method = PaymentProcessor.getMethod(tUser.getUserNumber());
+                JSONObject jsonObject = JSON.parseObject(method);
+                Object id1 = jsonObject.get("id");
+                long l = all.multiply(new BigDecimal(100)).longValue();
+                Boolean pay = PaymentProcessor.pay(tUser.getUserNumber(), id1.toString(), l);
+                if (pay) {
+                    orders.forEach(e -> {
+                        e.setStatus("2");
+                        e.setPaid(e.getAllTotal());
+                        e.setPayTime(new Date());
+                    });
+                    orderService.updateBatchById(orders);
+                    List<TQuote> collect = tQuotes.stream().collect(Collectors.toList());
+                    tQuoteService.updateBatchById(collect);
+                }
+
+            }
+            return new SuccessTip();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new ErrorTip(500, "ERROR");
+        }
     }
-
 
 
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/IndexController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/IndexController.java
index e03991d..365a03a 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/IndexController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/IndexController.java
@@ -64,7 +64,7 @@
         tUser.setLogisticsContactPhone(userAddInfoDto.getLogisticsContactPhone());
         tUser.setEmail(userAddInfoDto.getEmail());
         tUser.setCompanyName(userAddInfoDto.getCompanyName());
-        tUser.setBusinessLicense(userAddInfoDto.getImg());
+        tUser.setHeadImg(userAddInfoDto.getImg());
 //        TUserAddress tUserAddress = new TUserAddress();
 //        tUserAddress.setAddress(userAddInfoDto.getAddress());
 //        tUserAddress.setUserId(userAddInfoDto.getUserId());
@@ -121,6 +121,7 @@
         indexInfo.setUnpaidBills(unpaidBills);
         indexInfo.setAllQuota(tUser.getReditLimit());
         indexInfo.setResidueQuota(tUser.getResidueLimit());
+        indexInfo.setPaymentDay(Integer.valueOf(tUser.getPaymentDays()));
 
         if(type==1){
             List<IndexMonth> list = orderService.index(userId);
diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java
index f8854fb..50ec3ef 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java
@@ -3,10 +3,13 @@
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.modular.system.enums.FacilityCodeEnum;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.utils.TerminalInterfaceAcquisitionUtil;
 import com.stylefeng.guns.modular.system.utils.tips.ErrorTip;
 import com.stylefeng.guns.modular.system.utils.tips.SuccessTip;
+import com.stylefeng.guns.modular.system.warpper.TerminaleDataWarpper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -110,6 +113,31 @@
         return new SuccessTip();
     }
 
+    /**
+     * company 订单
+     * @param orderId 订单id
+     * @return
+     */
+    @ApiOperation(value = "用户端-检查站可取货",notes="用户端-检查站可取货")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(name = "orderId", value = "orderId", required = true, dataType = "Long"),
+    })
+    @PostMapping(value = "/affirmOne")
+    @ResponseBody
+    public Object affirmOne( Long orderId) {
+        TOrder tOrder = orderService.selectById(orderId);
+
+        if(tOrder.getStatus().equals("13")){
+            tOrder.setStatus("14");
+        }else {
+            return new ErrorTip(5010,"The current status cannot be modified");
+        }
+        orderService.updateById(tOrder);
+        return new SuccessTip();
+    }
+
+
 
     @ApiOperation(value = "支付",notes="支付")
     @ApiImplicitParams({
@@ -174,6 +202,24 @@
         orderService.updateById(tOrder);
         return new SuccessTip();
     }
+
+
+    @ApiOperation(value = "用户端-安排检查站",notes="用户端-安排检查站")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(name = "orderId", value = "orderId", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "examId", value = "examId", required = true, dataType = "int"),
+    })
+    @GetMapping(value = "/examAdd")
+    @ResponseBody
+    public Object examAdd(Long orderId,int examId) {
+        TOrder tOrder = orderService.selectById(orderId);
+        tOrder.setExamSite(examId);
+        orderService.updateById(tOrder);
+        return new SuccessTip();
+    }
+
+
 
 
     @ApiOperation(value = "商品详情",notes="商品详情")
@@ -264,6 +310,7 @@
             driverIds.add(driverIdOne);
         }
         List<TTransportation> tTransportations = tTransportationService.selectList(new EntityWrapper<TTransportation>().eq("order_id", orderId).in("driver_id", driverIds));
+        TerminaleDataWarpper terminalStatus = TerminalInterfaceAcquisitionUtil.getTerminalStatus("WFHU5080179", FacilityCodeEnum.USLAX.getMsg());
         for (TTransportation tDriver : tTransportations) {
             OrderDriverInfo orderDriverInfo = new OrderDriverInfo();
             orderDriverInfo.setId(tDriver.getId());
@@ -283,7 +330,7 @@
             orderDriverInfo.setChassiess(powerUnitsService.selectById(tDriver.getChassises()));
 
             // TODO 第三方  目前不知道对接那个
-            orderDriverInfo.setAppointmentNumber(null);
+            orderDriverInfo.setAppointmentNumber(terminalStatus.getAppointmentNumber());
 
             orderDriverInfos.add(orderDriverInfo);
 
@@ -291,6 +338,15 @@
         transportInfo.setTruckCompany(tOrder.getTruckCompany());
         transportInfo.setPickupTime(tOrder.getPickupTimeTruck());
         transportInfo.setStreetTurn(tOrder.getStreetTurn());
+
+
+        transportInfo.setLineHold(terminalStatus.getLineHold());
+        transportInfo.setCustomHold(terminalStatus.getCustomHold());
+        transportInfo.setPierpass(terminalStatus.getPierpass());
+        transportInfo.setCTF(terminalStatus.getCtf());
+        transportInfo.setClosedArea(terminalStatus.getClosedArea());
+        transportInfo.setLFD(terminalStatus.getLfd());
+
         transportInfo.setList(orderDriverInfos);
         Integer examSite = tOrder.getExamSite();
         if(Objects.nonNull(examSite)){
diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/TCarriersController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/TCarriersController.java
index 899cf00..4ced2cf 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/TCarriersController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/TCarriersController.java
@@ -86,9 +86,24 @@
     @ResponseBody
     public Object addCarriers(@RequestBody TCarriers tCarriers) {
         tCarriers.setCreateTime(new Date());
+        carriersService.insert(tCarriers);
         return new SuccessTip();
     }
 
+
+    @ApiOperation(value = "卡车公司-承运商详情",notes="卡车公司-承运商详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "int",paramType = "query"),
+    })
+    @PostMapping(value = "/carriersInfo")
+    @ResponseBody
+    public Object carriersInfo( int id) {
+        TCarriers tCarriers = carriersService.selectById(id);
+        return new SuccessTip(tCarriers);
+    }
+
+
     @ApiOperation(value = "卡车公司-编辑承运商",notes="卡车公司-编辑承运商")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/TPowerUnitController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/TPowerUnitController.java
index d3edb85..b7d5977 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/TPowerUnitController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/TPowerUnitController.java
@@ -142,6 +142,20 @@
         return new SuccessTip();
     }
 
+
+    @ApiOperation(value = "卡车公司-详情车架或者车头",notes="卡车公司-详情车架或者车头")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "int",paramType = "query"),
+    })
+    @GetMapping(value = "/infoPowerUnitOrChassiss")
+    @ResponseBody
+    public Object infoPowerUnitOrChassiss( int id) {
+        TPowerUnits tPowerUnits = powerUnitsService.selectById(id);
+
+        return new SuccessTip(tPowerUnits);
+    }
+
     @ApiOperation(value = "卡车公司-编辑车架或者车头",notes="卡车公司-编辑车架或者车头")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/TUserAddressController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/TUserAddressController.java
index c5716e5..f2e6054 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/TUserAddressController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/TUserAddressController.java
@@ -119,7 +119,7 @@
     })
     @PostMapping(value = "/update")
     @ResponseBody
-    public Object update(TUserAddress tUserAddress) {
+    public Object update(@RequestBody TUserAddress tUserAddress) {
         tUserAddress.setUpdateTime(new Date());
         tUserAddressService.updateById(tUserAddress);
         return SUCCESS_TIP;
@@ -131,10 +131,11 @@
     @ApiOperation(value = "详情用户地址",notes="详情用户地址")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(name = "tUserAddressId", value = "tUserAddressId", required = true, dataType = "Integer"),
     })
-    @GetMapping(value = "/detail/{tUserAddressId}")
+    @GetMapping(value = "/detail")
     @ResponseBody
-    public Object detail(@PathVariable("tUserAddressId") Integer tUserAddressId) {
+    public Object detail( Integer tUserAddressId) {
         return new SuccessTip(tUserAddressService.selectById(tUserAddressId));
     }
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/TYardController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/TYardController.java
index 9af15fe..633786c 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/controller/TYardController.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/controller/TYardController.java
@@ -91,6 +91,18 @@
         return new SuccessTip();
     }
 
+    @ApiOperation(value = "卡车公司-场地详情", notes = "卡车公司-场地详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "int", paramType = "query"),
+    })
+    @GetMapping(value = "/yardInfo")
+    @ResponseBody
+    public Object yardInfo(int id) {
+        TYard tYard = yardService.selectById(id);
+        return new SuccessTip(tYard);
+    }
+
 
     public static void main(String[] args) {
 
diff --git a/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderMapper.java b/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderMapper.java
index 0b74c40..656465d 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderMapper.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderMapper.java
@@ -19,6 +19,7 @@
  */
 public interface TOrderMapper extends BaseMapper<TOrder> {
 
+    List<ReceivableVo> getReceivable(@Param("receivableVoPage") Page<ReceivableVo> receivableVoPage, @Param("name") String name, @Param("id") int id);
 
 
     Double getTwentyDay(@Param("userId") Integer userId, @Param("time") String time, @Param("time1") String time1);
@@ -26,18 +27,18 @@
 
     Double getNineDay(@Param("userId") Integer userId, @Param("time3") String time3);
 
-    List<ShouldPayVo> getPayList(@Param("receivableVoPage") Page<ShouldPayVo> receivableVoPage, @Param("name") String name);
+    List<ShouldPayVo> getPayList(@Param("receivableVoPage") Page<ShouldPayVo> receivableVoPage, @Param("name") String name, @Param("id") int id);
 
     Double getTwentyDayPay(@Param("userId") Integer userId, @Param("time") String time, @Param("time1") String time1);
 
     Double getNineDayPay(@Param("userId") Integer userId, @Param("time3") String time3);
 
 
-    List<ReceivablesList> listOfReceivables(@Param("receivableVoPage") Page<ReceivablesList> receivableVoPage, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("name") String name, @Param("invoicesId") Integer invoicesId, @Param("orderId") Integer orderId, @Param("state") Integer state);
+    List<ReceivablesList> listOfReceivables(@Param("receivableVoPage") Page<ReceivablesList> receivableVoPage, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("name") String name, @Param("invoicesId") Integer invoicesId, @Param("orderId") Integer orderId, @Param("state") Integer state, @Param("id") Integer id);
 
     Integer getPayStatus(@Param("orderId") Long orderId);
 
-    List<PayList> listOfPay(@Param("receivableVoPage") Page<PayList> receivableVoPage, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("name") String name, @Param("billId") Integer billId, @Param("orderId") Integer orderId, @Param("state") Integer state);
+    List<PayList> listOfPay(@Param("receivableVoPage") Page<PayList> receivableVoPage, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("name") String name, @Param("billId") Integer billId, @Param("orderId") Integer orderId, @Param("state") Integer state,@Param("id") Integer id);
 
     Boolean agreePay(@Param("number") Long number);
 
diff --git a/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TClaimMapper.xml b/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TClaimMapper.xml
index 228e341..7071fde 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TClaimMapper.xml
+++ b/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TClaimMapper.xml
@@ -50,7 +50,7 @@
 	t1.describe,
 	t1.remark,
 	t1.number,
-	t1.price,t1.order_id orderId
+	t1.price,t1.order_id orderId,t1.status
 FROM
 	t_claim t1 LEFT JOIN t_company t2 on t1.trucking_company_id = t2.id where t1.id =#{id}
     </select>
diff --git a/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TQuoteMapper.xml b/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TQuoteMapper.xml
index dccf46b..b8bfad6 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TQuoteMapper.xml
+++ b/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TQuoteMapper.xml
@@ -26,7 +26,7 @@
         left JOIN t_user t2 on t1.user_id =t2.id
         LEFT JOIN t_order t3 on t1.order_id = t3.e_zip_z
         LEFT JOIN t_port t4 on t3.`port` = t4.id
-        where T1.state != 3
+        where t1.state != 3
         <if test="sTime !=null">
             and t1.create_time between #{sTime} and #{eTime}
         </if>
@@ -39,6 +39,7 @@
         <if test="account !=null and account !=''">
             and t2.account =#{account}
         </if>
+        group by t1.id
     </select>
     <select id="queryDemandListExport" resultType="com.stylefeng.guns.modular.system.model.DemandListVo">
         select t1.id,t2.id userId,t2.company_name companyName,
diff --git a/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserAddressMapper.xml b/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserAddressMapper.xml
index 448cd87..b6a621d 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserAddressMapper.xml
+++ b/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserAddressMapper.xml
@@ -30,6 +30,8 @@
 
 t2.name as country,t3.name as state ,t4.name as city from t_user_address t1   left join t_country t2 on(t2.id=t1.country and t2.type =1) left join t_country t3 on (t3.id=t1.state and t3.type =2)
 			left join t_country t4 on (t4.id=t1.city and t4.type =3)  where t1.remove=0 and t1.user_id =#{userId}
+
+			order by is_default
     </select>
 
 </mapper>
diff --git a/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserMapper.xml b/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserMapper.xml
index 75ba511..aca1a56 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserMapper.xml
+++ b/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserMapper.xml
@@ -102,22 +102,20 @@
 	t1.invoice_number invoiceNumber,
 	t1.company_id companyId,
 	t2.NAME companyName,
+	t2.headImg logo,
 	t1.pay_time invoiceDate,
 	tu.company_name sCompanyName,
 	t1.shipment_date pickupDate,
 	t4.NAME portName,
-	t1.s_name sContactName,
-	t1.s_phone sContactPhone,
-	t1.accessorial_str chassisService,
-	t1.delivery_date deliveryDate,
-	t1.e_company_name eCompanyName,
-	t1.e_name eContactName,
-	t1.e_phone eContactPhone
+	t5.address userAddress,
+	t1.type type,
+	t1.delivery_date dueBy
 FROM
 	t_order t1
 	LEFT JOIN t_company t2 ON t1.company_id = t2.id
 	LEFT JOIN t_user tu ON t1.user_id = tu.id
 	LEFT JOIN t_port t4 ON t1.PORT = t4.id
+	left join t_user_address t5 on (t5.user_id=tu.id and t5.is_default =1)
 	where t1.id =#{number}
     </select>
     <select id="getOrderInfoOne" resultType="com.stylefeng.guns.modular.system.model.InvoicesVoOne">
diff --git a/src/main/java/com/stylefeng/guns/modular/system/enums/FacilityCodeEnum.java b/src/main/java/com/stylefeng/guns/modular/system/enums/FacilityCodeEnum.java
new file mode 100644
index 0000000..e8a988b
--- /dev/null
+++ b/src/main/java/com/stylefeng/guns/modular/system/enums/FacilityCodeEnum.java
@@ -0,0 +1,44 @@
+package com.stylefeng.guns.modular.system.enums;
+
+/**
+ * <p>
+ *  调用容器事件历史接口的 设置编码
+ * </p>
+ *
+ * @Author: lisy
+ * @date: 2023-05-21 23:50
+ * @Description:
+ */
+
+
+public enum FacilityCodeEnum {
+
+    ESALG("ESALG"),
+    NGAPP("NGAPP"),
+    BHKBS("BHKBS"),
+    SEGOT("SEGOT"),
+    BRITJ("BRITJ"),
+    MXLZC("MXLZC"),
+    USLAX("USLAX"),
+    USMIA("USMIA"),
+    NLMSV("NLMSV"),
+    LRMLW("LRMLW"),
+    USMOB("USMOB"),
+    CRPMN("CRPMN"),
+    NGONN("NGONN"),
+    USNWK("USNWK"),
+    MAPTM("MAPTM"),
+    ITVDL("ITVDL"),
+    ESVLC("ESVLC"),
+    MXPGO("MXPGO"),
+        ;
+    String msg;
+
+    FacilityCodeEnum(String msg) {
+        this.msg = msg;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/InvoicesVo.java b/src/main/java/com/stylefeng/guns/modular/system/model/InvoicesVo.java
index 54645bd..c63e178 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/InvoicesVo.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/InvoicesVo.java
@@ -26,6 +26,8 @@
     @ApiModelProperty("卡车公司名称")
     private String companyName;
 
+    private String logo;
+
     @ApiModelProperty("invoice Date")
     private Date invoiceDate;
 
@@ -35,6 +37,9 @@
     @ApiModelProperty("客户公司")
     private String sCompanyName;
 
+    @ApiModelProperty("客户地址")
+    private String userAddress;
+
 
     @ApiModelProperty("发货时间")
     @JsonFormat(pattern = "dd/MM/yyyy")
@@ -43,28 +48,15 @@
     @ApiModelProperty("取货码头")
     private String portName;
 
-    @ApiModelProperty("发货联系人姓名")
-    private String sContactName;
+    @ApiModelProperty("1 live unload  2drop hook")
+    private String type;
 
-    @ApiModelProperty("发货联系人电话")
-    private String sContactPhone;
-
-    @ApiModelProperty("附加服务  逗号拼接")
-    private String chassisService;
-
-    @ApiModelProperty("收货时间")
-    @JsonFormat(pattern = "dd/MM/yyyy")
-    private Date deliveryDate;
-
-    @ApiModelProperty("客户目的地公司")
-    private String eCompanyName;
-
-    @ApiModelProperty("收货联系人姓名")
-    private String eContactName;
-    @ApiModelProperty("收货联系人电话")
-    private String eContactPhone;
+    @ApiModelProperty("送柜地址")
+    private String eAddress;
 
 
+    @ApiModelProperty("还柜码头")
+    private String ePortName;
 
     private List<TGoodsVo> goodsVos;
 
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/OrderInfo.java b/src/main/java/com/stylefeng/guns/modular/system/model/OrderInfo.java
index 2c9b477..9c703c1 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/OrderInfo.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/OrderInfo.java
@@ -78,6 +78,8 @@
 
     private Integer state;
 
+    private Integer goodsId;
+
     private String status;
 
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/OrderListDto.java b/src/main/java/com/stylefeng/guns/modular/system/model/OrderListDto.java
index 613c7bd..820b281 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/OrderListDto.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/OrderListDto.java
@@ -30,4 +30,6 @@
     private Integer pageSize;
     @ApiModelProperty("用户id 必传")
     private Integer userId;
+    @ApiModelProperty("卡车公司id 必传")
+    private Integer companyId;
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/OrderListVo.java b/src/main/java/com/stylefeng/guns/modular/system/model/OrderListVo.java
index e7636f9..55221b0 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/OrderListVo.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/OrderListVo.java
@@ -33,11 +33,13 @@
     @ApiModelProperty("送柜地点")
     private String destination;
 
-    @ApiModelProperty("订单状态 0未开始 1已完成  2待取货-未出发 3待取货-已出发  4已到港口码头  5车场运输中  6在车场  7运输中 8待卸货 9已卸货 10运回车场中 11空柜订单在车场 12送检查站 13检查中 14检查站待取货 15在仓库  16取消订单  17已选择")
+    @ApiModelProperty("订单状态 0未开始 1已完成  2待取货-未出发 3待取货-已出发  4已到港口码头  5车场运输中  6在车场  7运输中 8待卸货 9已卸货 10运回车场中 11空柜订单在车场 12送检查站 13检查中 14检查站待取货 15在仓库  16取消订单  17已选择 18运回码头")
     private Integer status;
 
     @ApiModelProperty("是否可以提货 1是2否")
     private Integer state;
 
+    private String kg;
+
 
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/PriceList.java b/src/main/java/com/stylefeng/guns/modular/system/model/PriceList.java
new file mode 100644
index 0000000..cd01068
--- /dev/null
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/PriceList.java
@@ -0,0 +1,15 @@
+package com.stylefeng.guns.modular.system.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PriceList {
+    private String type;
+    private BigDecimal money;
+}
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TClaimVo.java b/src/main/java/com/stylefeng/guns/modular/system/model/TClaimVo.java
index 2611414..9eced13 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TClaimVo.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TClaimVo.java
@@ -67,6 +67,8 @@
     )
     private Long orderId;
 
+    private Integer status;
+
 
 
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TCompany.java b/src/main/java/com/stylefeng/guns/modular/system/model/TCompany.java
index 2fecb9b..1a5d943 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TCompany.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TCompany.java
@@ -282,6 +282,16 @@
 
     private Integer remove;
 
+    public Integer getWork() {
+        return work;
+    }
+
+    public void setWork(Integer work) {
+        this.work = work;
+    }
+
+    private Integer work;
+
 
     public Integer getId() {
         return id;
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TCompanyBasic.java b/src/main/java/com/stylefeng/guns/modular/system/model/TCompanyBasic.java
index 6d21194..a047e46 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TCompanyBasic.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TCompanyBasic.java
@@ -1,12 +1,14 @@
 package com.stylefeng.guns.modular.system.model;
 
 import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
 
 @Data
+@TableName("t_company_basic")
 public class TCompanyBasic {
     private Integer id;
     @TableField("type")
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TCompanyDto.java b/src/main/java/com/stylefeng/guns/modular/system/model/TCompanyDto.java
index ae57314..a31bb9b 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TCompanyDto.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TCompanyDto.java
@@ -9,7 +9,7 @@
 import java.util.List;
 
 @Data
-public class    TCompanyDto {
+public class  TCompanyDto {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
     /**
@@ -68,5 +68,6 @@
      */
     private Integer status;
 
+    private Integer work;
     private List<TCompanyService> list;
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TDriverSelectVo.java b/src/main/java/com/stylefeng/guns/modular/system/model/TDriverSelectVo.java
index 447974b..24ac960 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TDriverSelectVo.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TDriverSelectVo.java
@@ -25,6 +25,9 @@
     @TableField("create_time")
     private Date createTime;
 
+    private String contactNumber;
+
+
 
 }
 
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TExamSite.java b/src/main/java/com/stylefeng/guns/modular/system/model/TExamSite.java
index 7a8dbb9..bc0b4d9 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TExamSite.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TExamSite.java
@@ -75,7 +75,16 @@
      * 0正常  1删除
      */
     private Integer remove;
+    @TableField("contact_phone")
+    private String contactPhone;
 
+    public String getContactPhone() {
+        return contactPhone;
+    }
+
+    public void setContactPhone(String contactPhone) {
+        this.contactPhone = contactPhone;
+    }
 
     @TableField(exist = false)
     @ApiModelProperty("country名称")
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java b/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java
index 1898622..40737fa 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java
@@ -232,6 +232,16 @@
     @TableField("pay_carriers_time")
     private Date payCarriersTime;
 
+    public String getNote() {
+        return note;
+    }
+
+    public void setNote(String note) {
+        this.note = note;
+    }
+
+    private String note;
+
     public Date getOrderOkTime() {
         return orderOkTime;
     }
@@ -264,6 +274,8 @@
         this.paid = paid;
     }
 
+    @TableField("pickup_time_truck")
+    private Date pickupTimeTruck;
 
     public Integer getPayStatus() {
         return payStatus;
@@ -336,6 +348,48 @@
     @TableField("truck_company")
     private String truckCompany;
 
+    @TableField("admin_invoice")
+    private Integer adminInvoice;
+    @TableField("admin_bill")
+    private Integer adminBill;
+
+    public Integer getAdminInvoice() {
+        return adminInvoice;
+    }
+
+    public void setAdminInvoice(Integer adminInvoice) {
+        this.adminInvoice = adminInvoice;
+    }
+
+    public Integer getAdminBill() {
+        return adminBill;
+    }
+
+    public void setAdminBill(Integer adminBill) {
+        this.adminBill = adminBill;
+    }
+
+    public Integer getCompanyInvoice() {
+        return companyInvoice;
+    }
+
+    public void setCompanyInvoice(Integer companyInvoice) {
+        this.companyInvoice = companyInvoice;
+    }
+
+    public Integer getCompanyBill() {
+        return companyBill;
+    }
+
+    public void setCompanyBill(Integer companyBill) {
+        this.companyBill = companyBill;
+    }
+
+    @TableField("company_invoice")
+    private Integer companyInvoice;
+    @TableField("company_bill")
+    private Integer companyBill;
+
     public String getTruckCompany() {
         return truckCompany;
     }
@@ -352,8 +406,6 @@
         this.pickupTimeTruck = pickupTimeTruck;
     }
 
-    @TableField("pickup_time_truck")
-    private Date pickupTimeTruck;
 
     public Integer getStreetTurn() {
         return streetTurn;
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnits.java b/src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnits.java
index 91f14c1..d74affb 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnits.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnits.java
@@ -31,7 +31,7 @@
 
     private static final long serialVersionUID=1L;
 
-    @TableId(value = "id", type = IdType.UUID)
+    @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     @TableField("company_id")
@@ -124,6 +124,12 @@
      */
      @ApiModelProperty("1是车头 2是车架")
     private Integer type;
+    @TableField("chassises_type")
+     private String chassisesType;
+    @TableField("chassises_number")
+     private String chassisesNumber;
+    @TableField("size")
+     private String size;
 
 
     @Override
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnitsVo.java b/src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnitsVo.java
index 59233f6..8b4c644 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnitsVo.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TPowerUnitsVo.java
@@ -1,6 +1,7 @@
 package com.stylefeng.guns.modular.system.model;
 
 import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.baomidou.mybatisplus.enums.IdType;
@@ -52,10 +53,12 @@
 
     private Date dotExpiration;
 
-    private Date insuranceExpiration;
+    private Date inspectionExpriation;
 
     private Date createTime;
 
+    private String chassisesType;
+    private String chassisesNumber;
 
 
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TUser.java b/src/main/java/com/stylefeng/guns/modular/system/model/TUser.java
index 917a297..27a368f 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TUser.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TUser.java
@@ -163,6 +163,16 @@
     @TableField("residue_limit")
     private String residueLimit;
 
+    public String getHeadImg() {
+        return headImg;
+    }
+
+    public void setHeadImg(String headImg) {
+        this.headImg = headImg;
+    }
+
+    private String headImg;
+
     public Integer getId() {
         return id;
     }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TUserAddress.java b/src/main/java/com/stylefeng/guns/modular/system/model/TUserAddress.java
index fa606b8..13aa300 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TUserAddress.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TUserAddress.java
@@ -66,6 +66,8 @@
     private Integer remove;
     private String type;
 
+
+
     public String getType() {
         return type;
     }
@@ -73,8 +75,6 @@
     public void setType(String type) {
         this.type = type;
     }
-
-
     public Integer getId() {
         return id;
     }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TUserBasicInfo.java b/src/main/java/com/stylefeng/guns/modular/system/model/TUserBasicInfo.java
index f007f65..82a4971 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TUserBasicInfo.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TUserBasicInfo.java
@@ -47,4 +47,6 @@
     @TableField(exist = false)
     private String address;
 
+    private String headImg;
+
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TWarehouse.java b/src/main/java/com/stylefeng/guns/modular/system/model/TWarehouse.java
index 158eb3a..b3a9c22 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TWarehouse.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TWarehouse.java
@@ -55,6 +55,10 @@
     private BigDecimal warePrice;
     @TableField("port_id")
     private Integer portId;
+    @TableField("zipcode")
+    private String zipCode;
+    private String city;
+    private String state;
 
     @Override
     protected Serializable pkVal() {
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/TransportInfo.java b/src/main/java/com/stylefeng/guns/modular/system/model/TransportInfo.java
index ece0afe..d4362e9 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/TransportInfo.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/TransportInfo.java
@@ -1,5 +1,6 @@
 package com.stylefeng.guns.modular.system.model;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
@@ -24,4 +25,17 @@
     private Date pickupTime;
 
     private Integer streetTurn;
+
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer lineHold;
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer customHold;
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer pierpass;
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer CTF;
+
+    private String LFD;
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer closedArea;
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/model/dto/UserAddInfoDto.java b/src/main/java/com/stylefeng/guns/modular/system/model/dto/UserAddInfoDto.java
index 9153fe2..84676a4 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/model/dto/UserAddInfoDto.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/model/dto/UserAddInfoDto.java
@@ -30,5 +30,4 @@
 
     private String img;
 
-
 }
diff --git a/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCompanyServiceImpl.java b/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCompanyServiceImpl.java
index 50f0048..d00e22f 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCompanyServiceImpl.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCompanyServiceImpl.java
@@ -152,7 +152,7 @@
                 TCompanyResp tCompanyResp = new TCompanyResp();
                 tCompanyResp.setOrderId(order.getId());
                 tCompanyResp.setName(price.getType());
-                tCompanyResp.setPrice(price.getPrice());
+                tCompanyResp.setPrice(price.getCarPrice());
                 tCompanyRespList.add(tCompanyResp);
             }
             BigDecimal bigDecimal = tCompanyRespList.stream().map(TCompanyResp::getPrice).reduce(BigDecimal::add).orElse(new BigDecimal(0.00));
diff --git a/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java b/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
index bddcba0..143bd67 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
@@ -102,7 +102,7 @@
 
     @Override
     public List<ShouldPayVo> getPayList(Page<ShouldPayVo> receivableVoPage, String time, String name) {
-        List<ShouldPayVo> list = this.baseMapper.getPayList(receivableVoPage,name);
+        List<ShouldPayVo> list = this.baseMapper.getPayList(receivableVoPage,name,1);
 
         Calendar instance = Calendar.getInstance();
         instance.setTime(new Date());
@@ -141,7 +141,7 @@
             sTime = time.split(" - ")[0]+" 00:00:01";
             eTime = time.split(" - ")[1]+" 23:59:59";
         }
-        List<ReceivablesList> receivablesLists = this.baseMapper.listOfReceivables(receivableVoPage, sTime, eTime, name, invoicesId, orderId, state);
+        List<ReceivablesList> receivablesLists = this.baseMapper.listOfReceivables(receivableVoPage, sTime, eTime, name, invoicesId, orderId, state,1);
         for (ReceivablesList receivablesList : receivablesLists) {
            Integer id= this.baseMapper.getPayStatus(receivablesList.getOrderId());
             if(id==null){
@@ -161,7 +161,7 @@
             sTime = time.split(" - ")[0]+" 00:00:01";
             eTime = time.split(" - ")[1]+" 23:59:59";
         }
-        List<PayList> list = this.baseMapper.listOfPay(receivableVoPage, sTime, eTime, name, billId, orderId, state);
+        List<PayList> list = this.baseMapper.listOfPay(receivableVoPage, sTime, eTime, name, billId, orderId, state,1);
         return list;
     }
 
@@ -502,10 +502,13 @@
         Integer groupId = tUser.getGroupId();
         if(groupId!=null) {
             TGroup tGroup = tGroupMapper.selectById(groupId);
-            orderInfo.setSalesGroup(tGroup.getName());
-            Integer salesId = tGroup.getSalesId();
-            User user = userMapper.selectById(salesId);
-            orderInfo.setSales(user.getName());
+            if(tGroup!=null){
+                orderInfo.setSalesGroup(tGroup.getName());
+                Integer salesId = tGroup.getSalesId();
+                User user = userMapper.selectById(salesId);
+                orderInfo.setSales(user.getName());
+            }
+
         }
         // 获取码头id  获取码头地址  pickup信息
         Integer portId = tOrder.getPort();
diff --git a/src/main/java/com/stylefeng/guns/modular/system/utils/PaymentProcessor.java b/src/main/java/com/stylefeng/guns/modular/system/utils/PaymentProcessor.java
index 4113b63..4950298 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/utils/PaymentProcessor.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/utils/PaymentProcessor.java
@@ -1,87 +1,147 @@
 package com.stylefeng.guns.modular.system.utils;
 
+import com.alibaba.fastjson.JSON;
 import com.stripe.Stripe;
-import com.stripe.exception.SignatureVerificationException;
-import com.stripe.exception.StripeException;
+import com.stripe.exception.*;
 import com.stripe.model.Customer;
 import com.stripe.model.PaymentIntent;
+import com.stripe.model.PaymentMethod;
+import com.stripe.model.PaymentMethodCollection;
 import com.stripe.net.Webhook;
 import com.stripe.param.CustomerCreateParams;
 import com.stripe.param.PaymentIntentCreateParams;
 import com.stripe.param.PaymentIntentUpdateParams;
+import com.stripe.param.PaymentMethodListParams;
 
 import java.util.HashMap;
 import java.util.logging.Logger;
 
 public class PaymentProcessor {
 
+    public static String getMethod(String customer) throws StripeException {
+
+
+        PaymentMethodListParams params =
+                PaymentMethodListParams.builder()
+                        .setCustomer(customer)
+                        .setType(PaymentMethodListParams.Type.CARD)
+                        .build();
+
+        PaymentMethodCollection paymentMethods = PaymentMethod.list(params);
+        String s = JSON.toJSONString(paymentMethods);
+        return s;
+    }
+
+
+    public static Boolean pay(String cus,String method,Long money) throws StripeException {
+        Stripe.apiKey = "sk_test_51Mu5D0KDN0sswRVwUNL5998QrX1VJkNrLsflVUXkEFH0cY2l9StrCc5O4c9gtzs7tLbVmeaTfyNL6pnrtw1tRClA00ZVfbNb3d";
+        PaymentIntentCreateParams params =
+                PaymentIntentCreateParams.builder()
+                        .setCurrency("usd")
+                        .setAmount(money)
+                        .setCustomer(cus)
+                        .setPaymentMethod(method)
+                        .setErrorOnRequiresAction(true)
+                        .setConfirm(true)
+                        .build();
+        try {
+            PaymentIntent paymentIntent = PaymentIntent.create(params);
+            return true;
+        } catch (CardException err) {
+            // Error code will be authentication_required if authentication is needed
+            String paymentIntentId = err.getStripeError().getPaymentIntent().getId();
+            PaymentIntent paymentIntent = PaymentIntent.retrieve(paymentIntentId);
+            System.out.println(paymentIntent.getId());
+            return false;
+        }catch (RateLimitException e) {
+            // Too many requests made to the API too quickly
+
+            return false;
+        } catch (InvalidRequestException e) {
+            // Invalid parameters were supplied to Stripe's API
+            return false;
+        } catch (AuthenticationException e) {
+            // Authentication with Stripe's API failed
+            // (maybe you changed API keys recently)
+            return false;
+        } catch (StripeException e) {
+            // Display a very generic error to the user, and maybe send
+            // yourself an email
+            return false;
+        } catch (Exception e) {
+            // Something else happened, completely unrelated to Stripe
+            return false;
+        }
+    }
+
+
     // 定义 Stripe API 密钥
-    private static final String STRIPE_API_KEY = "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";
-
-    public PaymentProcessor() {
-        // 初始化 Stripe 对象并设置 API 密钥
-        Stripe.apiKey = STRIPE_API_KEY;
-    }
-
-    /**
-     * 创建一个 Stripe 客户,并保存他们的信用卡信息,以备将来使用。
-     * 支持多种付款方式,例如支付宝、微信等。这里只是演示如何使用信用卡进行支付。
-     *
-     * @param email     客户电子邮件地址
-     * @param cardToken 由 Stripe.js 获取的信用卡令牌
-     * @return Stripe 客户对象
-     * @throws StripeException 如果创建客户或付款交易时出现错误
-     */
-    public Customer createCustomer(String email, String cardToken) throws StripeException {
-
-        // 构造付款交易参数
-        PaymentIntentCreateParams params = PaymentIntentCreateParams.builder()
-                .setAmount(1000L) // 设置要收取的金额,以美分为单位(例如 $10.00 = 1000 美分)
-                .setCurrency("usd") // 设置货币类型:USD(美元)
-                .setPaymentMethod(cardToken) // 设置由 Stripe.js 获取的信用卡令牌
-                .build();
-
-        // 创建付款交易
-        PaymentIntent paymentIntent = PaymentIntent.create(params);
-
-        // 创建一个 Stripe 客户,将他们的付款方法与 Stripe 帐户关联在一起
-        Customer customer = Customer.create(
-                CustomerCreateParams.builder()
-                        .setEmail(email) // 设置客户的电子邮件地址
-                        .setPaymentMethod(paymentIntent.getPaymentMethod()) // 将付款方法与客户端 Stripe 帐户相关联
-                        .build()
-        );
-
-        // 返回创建的 Stripe 客户对象
-        return customer;
-    }
-
-    /**
-     * 从一个 Stripe 客户处收取付款。
-     *
-     * @param customerId Stripe 客户 ID
-     * @param amount     要收取的金额,以美分为单位
-     * @return Stripe 付款交易对象
-     * @throws StripeException 如果捕获到 Stripe API 返回的错误
-     */
-    public static PaymentIntent charge(String customerId, long amount) throws StripeException {
-
-        // 构造付款交易参数
-        PaymentIntentCreateParams params = PaymentIntentCreateParams.builder()
-                .setCustomer(customerId) // 使用客户 ID 作为付款目标
-                .setAmount(amount) // 设置要收取的金额,以美分为单位
-                .setCurrency("usd").setDescription("1").setReturnUrl("") // 设置货币类型:USD(美元)
-                .build();
-
-        // 创建付款交易
-        PaymentIntent paymentIntent = PaymentIntent.create(params);
-
-        // 确认付款
-        paymentIntent.confirm();
-
-        // 返回创建的 Stripe 付款交易对象
-        return paymentIntent;
-    }
+//    private static final String STRIPE_API_KEY = "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";
+//
+//    public PaymentProcessor() {
+//        // 初始化 Stripe 对象并设置 API 密钥
+//        Stripe.apiKey = STRIPE_API_KEY;
+//    }
+//
+//    /**
+//     * 创建一个 Stripe 客户,并保存他们的信用卡信息,以备将来使用。
+//     * 支持多种付款方式,例如支付宝、微信等。这里只是演示如何使用信用卡进行支付。
+//     *
+//     * @param email     客户电子邮件地址
+//     * @param cardToken 由 Stripe.js 获取的信用卡令牌
+//     * @return Stripe 客户对象
+//     * @throws StripeException 如果创建客户或付款交易时出现错误
+//     */
+//    public Customer createCustomer(String email, String cardToken) throws StripeException {
+//
+//        // 构造付款交易参数
+//        PaymentIntentCreateParams params = PaymentIntentCreateParams.builder()
+//                .setAmount(1000L) // 设置要收取的金额,以美分为单位(例如 $10.00 = 1000 美分)
+//                .setCurrency("usd") // 设置货币类型:USD(美元)
+//                .setPaymentMethod(cardToken) // 设置由 Stripe.js 获取的信用卡令牌
+//                .build();
+//
+//        // 创建付款交易
+//        PaymentIntent paymentIntent = PaymentIntent.create(params);
+//
+//        // 创建一个 Stripe 客户,将他们的付款方法与 Stripe 帐户关联在一起
+//        Customer customer = Customer.create(
+//                CustomerCreateParams.builder()
+//                        .setEmail(email) // 设置客户的电子邮件地址
+//                        .setPaymentMethod(paymentIntent.getPaymentMethod()) // 将付款方法与客户端 Stripe 帐户相关联
+//                        .build()
+//        );
+//
+//        // 返回创建的 Stripe 客户对象
+//        return customer;
+//    }
+//
+//    /**
+//     * 从一个 Stripe 客户处收取付款。
+//     *
+//     * @param customerId Stripe 客户 ID
+//     * @param amount     要收取的金额,以美分为单位
+//     * @return Stripe 付款交易对象
+//     * @throws StripeException 如果捕获到 Stripe API 返回的错误
+//     */
+//    public static PaymentIntent charge(String customerId, long amount) throws StripeException {
+//
+//        // 构造付款交易参数
+//        PaymentIntentCreateParams params = PaymentIntentCreateParams.builder()
+//                .setCustomer(customerId) // 使用客户 ID 作为付款目标
+//                .setAmount(amount) // 设置要收取的金额,以美分为单位
+//                .setCurrency("usd").setDescription("1").setReturnUrl("") // 设置货币类型:USD(美元)
+//                .build();
+//
+//        // 创建付款交易
+//        PaymentIntent paymentIntent = PaymentIntent.create(params);
+//
+//        // 确认付款
+//        paymentIntent.confirm();
+//
+//        // 返回创建的 Stripe 付款交易对象
+//        return paymentIntent;
+//    }
 
 
 }
\ No newline at end of file
diff --git a/src/main/java/com/stylefeng/guns/modular/system/utils/StripePayUtils.java b/src/main/java/com/stylefeng/guns/modular/system/utils/StripePayUtils.java
index 16642ed..5c48b8b 100644
--- a/src/main/java/com/stylefeng/guns/modular/system/utils/StripePayUtils.java
+++ b/src/main/java/com/stylefeng/guns/modular/system/utils/StripePayUtils.java
@@ -84,7 +84,7 @@
      * @param stripeCardId 银行卡stripeId
      * @throws StripeException
      */
-    public void updateStripeDefaultCard(String stripeMemberId, String stripeCardId) throws StripeException {
+    public static void updateStripeDefaultCard(String stripeMemberId, String stripeCardId) throws StripeException {
         Stripe.apiKey = key;
         Map<String, Object> retrieveParams = new HashMap<>();
         List<String> expandList = new ArrayList<>();
diff --git a/src/main/java/com/stylefeng/guns/modular/system/utils/TerminalInterfaceAcquisitionUtil.java b/src/main/java/com/stylefeng/guns/modular/system/utils/TerminalInterfaceAcquisitionUtil.java
new file mode 100644
index 0000000..478c5c1
--- /dev/null
+++ b/src/main/java/com/stylefeng/guns/modular/system/utils/TerminalInterfaceAcquisitionUtil.java
@@ -0,0 +1,135 @@
+package com.stylefeng.guns.modular.system.utils;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.warpper.TerminaleDataWarpper;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *   码头-车场-客户 运输状态 第三方接口获取数据 APM码头——Import Availability
+ *
+ * </p>
+ *
+ * @Author: lisy
+ * @date: 2023-05-18 16:52
+ * @Description:
+ */
+
+public class TerminalInterfaceAcquisitionUtil {
+
+    //Sandbox Interface
+    private static final String url  = "https://api-sandbox.apmterminals.com/import-availability";
+
+    //Production Interface
+    private static final String proUrl  = "https://api.apmterminals.com/import-availability";
+    private static final String auth_url  = "https://api.apmterminals.com/oauth/client_credential/accesstoken";
+
+    private static final String KEY  = "di3RgCcM9zlgb5BG1UiYSIxwYdmYUxTo";
+    private static final String SECRET  = "AIJczPxBeocsEjtI";
+    private static String bearerToken  = "5dDHq3LwPW3EYZ6rtPGK0zqWsRA5";
+
+
+    /**
+     *
+     * @param containerId 容器id
+     * @param enums 设施编码
+     * @return
+     */
+    public static TerminaleDataWarpper getTerminalStatus(String containerId,String enums){
+        String us = url+ "?assetId="+containerId+"&facilityCode="+enums;
+        HttpResponse execute = HttpRequest.get(us).header("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36")
+                .header("cookie", "_ga=GA1.2.1226281326.1675309614; _gid=GA1.2.1467106222.1675309614; _ga=GA1.4.1226281326.1675309614; _gid=GA1.4.1467106222.1675309614; AWSALB=1bWqINVI+LJP87FTEXfEw1Ob1nkbr+I4baSbUGUmu5+/LdiqL9ic04Nj7F0Vz3rvharAG7a8dVe3MX6YMNEbUINVr++CCv/UBw6JeCRS0PcbRLxK7wVHb1lPT8Jl; AWSALBCORS=1bWqINVI+LJP87FTEXfEw1Ob1nkbr+I4baSbUGUmu5+/LdiqL9ic04Nj7F0Vz3rvharAG7a8dVe3MX6YMNEbUINVr++CCv/UBw6JeCRS0PcbRLxK7wVHb1lPT8Jl")
+                .header("path", "?assetId=" + containerId + "&facilityCode=" + enums)
+                .header("Authorization", "Bearer " + bearerToken)
+                .execute();
+        String body = execute.body();
+        int status = execute.getStatus();
+        if (status != 200){
+            getAuth();
+            getTerminalStatus(containerId,enums);
+        }
+        ObjectMapper objectMapper = new ObjectMapper();
+        JsonNode jsonArray = null;
+        TerminaleDataWarpper warpper = new TerminaleDataWarpper();
+        try {
+            jsonArray = objectMapper.readTree(body);
+            for (JsonNode jsonNode : jsonArray) {
+                String appointmentDateTimeLocal = jsonNode.get("appointmentDateTimeLocal").asText();
+                warpper.setLfd(appointmentDateTimeLocal);
+                String appointmentNumber = jsonNode.get("containerId").asText();
+                warpper.setAppointmentNumber(appointmentNumber);
+                String containerHolds = jsonNode.get("containerHolds").asText();
+                List<String> collect = new ArrayList<>();
+                if (ToolUtil.isEmpty(containerHolds)){
+                    return warpper;
+                }
+                if (containerHolds.contains(",")){
+                    String[] split = containerHolds.split(",");
+                    collect =  Arrays.stream(split).collect(Collectors.toList());
+                    if (collect.contains("LINE")){
+                        warpper.setLineHold(1);
+                    }
+                    if (collect.contains("TMF")){
+                        warpper.setCustomHold(1);
+                    }
+                    if (collect.contains("PIER")){
+                        warpper.setPierpass(1);
+                    }
+                    if (collect.contains("CTF")){
+                        warpper.setCtf(1);
+                    }
+                    if (collect.contains("AREA")){
+                        warpper.setClosedArea(1);
+                    }
+                }else {
+                    if (containerHolds.equals("LINE")){
+                        warpper.setLineHold(1);
+                    }
+                    if (containerHolds.equals("TMF")){
+                        warpper.setCustomHold(1);
+                    }
+                    if (containerHolds.equals("PIER")){
+                        warpper.setPierpass(1);
+                    }
+                    if (containerHolds.equals("CTF")){
+                        warpper.setCtf(1);
+                    }
+                    if (containerHolds.equals("AREA")){
+                        warpper.setClosedArea(1);
+                    }
+                }
+            }
+
+
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        return warpper;
+    }
+
+
+    public static void getAuth(){
+        String us = auth_url+ "?grant_type=client_credentials";
+        String body = HttpRequest.post(us)
+                .form("client_id", KEY)
+                .form("client_id", SECRET)
+                .execute().body();
+        JSONObject object = JSONObject.parseObject(body);
+        Object o = object.get("access_token");
+        if (ToolUtil.isNotEmpty(o)){
+            bearerToken = (String) o;
+        }
+    }
+
+
+}
diff --git a/src/main/java/com/stylefeng/guns/modular/system/warpper/TerminaleDataWarpper.java b/src/main/java/com/stylefeng/guns/modular/system/warpper/TerminaleDataWarpper.java
new file mode 100644
index 0000000..88af94e
--- /dev/null
+++ b/src/main/java/com/stylefeng/guns/modular/system/warpper/TerminaleDataWarpper.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * <p>
+ *    订单详情——运输安排
+ * </p>
+ *
+ * @Author: lisy
+ * @date: 2023-05-22 16:52
+ * @Description:
+ */
+
+@Data
+public class TerminaleDataWarpper {
+
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer lineHold = 2;
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer customHold = 2;
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer pierpass = 2;
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer ctf = 2;
+
+    private String lfd;
+    @ApiModelProperty(value = "1:YES 2:NO")
+    private Integer closedArea = 2;
+
+    private String appointmentNumber;
+
+}

--
Gitblit v1.7.1