liujie
2023-08-15 434088b7d4ee12c1206cfb194da2b600f4815f94
src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java
@@ -1,12 +1,17 @@
package com.stylefeng.guns.modular.system.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
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;
@@ -17,12 +22,10 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.FileNameMap;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.*;
@Controller
@Api(tags = "订单")
@@ -138,8 +141,19 @@
    @GetMapping(value = "/getOrderInfo")
    @ResponseBody
    public Object getOrderInfo( Long orderId) {
        OrderInfo orderInfo = orderService.getOrderInfo(orderId);
        HashMap<String, Object> orderInfo = orderService.getOrderInfo(orderId);
        return new SuccessTip(orderInfo);
    }
    @ApiOperation(value = "订单详情--修改reference numbers",notes="订单详情--修改reference numbers")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    @PostMapping(value = "/updateReference")
    @ResponseBody
    public Object updateReference( TGoods tGoods) {
        boolean b = goodsService.updateById(tGoods);
        return new SuccessTip();
    }
    @Resource
@@ -178,10 +192,21 @@
        if(driverIdOne!=null){
            driverIds.add(driverIdOne);
        }
        TGoods tGoods = goodsService.selectOne(new EntityWrapper<TGoods>().eq("order_id", tOrder.getId()));
        List<TTransportation> tTransportations = tTransportationService.selectList(new EntityWrapper<TTransportation>().eq("order_id", orderId).in("driver_id", driverIds));
        TerminaleDataWarpper terminalStatus =new TerminaleDataWarpper();
        try {
            terminalStatus = TerminalInterfaceAcquisitionUtil.getTerminalStatus(tGoods.getContainerNumber(), FacilityCodeEnum.USLAX.getMsg());
        }catch (Exception e){
            e.printStackTrace();
            terminalStatus =new TerminaleDataWarpper();
        }
        for (TTransportation tDriver : tTransportations) {
            OrderDriverInfo orderDriverInfo = new OrderDriverInfo();
            orderDriverInfo.setId(tDriver.getId());
            orderDriverInfo.setDriverId(tDriver.getDriverId());
            if(tDriver.getId().equals(sDriverIdOne)&&tDriver.getType()==2){
                orderDriverInfo.setPickUp(tDriver.getPickDate());
            }
@@ -197,8 +222,7 @@
            orderDriverInfo.setTPowerUnits(powerUnitsService.selectById(tDriver.getPowerUnit()));
            orderDriverInfo.setChassiess(powerUnitsService.selectById(tDriver.getChassises()));
            // TODO 第三方  目前不知道对接那个
            orderDriverInfo.setAppointmentNumber(null);
            orderDriverInfo.setAppointmentNumber(terminalStatus.getAppointmentNumber());
            orderDriverInfos.add(orderDriverInfo);
@@ -206,6 +230,14 @@
        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)){
@@ -257,7 +289,7 @@
                            BigDecimal subtract = price.getPrice().subtract(multiply);
                            priceInfo.setCarrierCost(subtract);
                            priceInfo.setSalesProfit(new BigDecimal(commission));
                            priceInfo.setMargin(multiply);
                            priceInfo.setMargin(multiply.setScale(2, RoundingMode.HALF_UP));
                        }else {
                            priceInfo.setMargin(new BigDecimal(0));
                            priceInfo.setSalesProfit(new BigDecimal(commission));
@@ -298,6 +330,22 @@
        return new SuccessTip(page);
    }
    @ApiOperation(value = "卡车公司--save time",notes="卡车公司--save time")
    @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 = "time", value = "time", required = true, dataType = "String"),
    })
    @PostMapping(value = "/updateSaveTime")
    @ResponseBody
    public Object updateSaveTime( Long  orderId,String time){
        TOrder tOrder = orderService.selectById(orderId);
        Date date = DateUtil.parse(time).toJdkDate();
        tOrder.setShipmentDate(date);
        orderService.updateById(tOrder);
        return new SuccessTip();
    }
    @ApiOperation(value = "卡车公司--安排司机",notes="卡车公司--安排司机")
@@ -315,11 +363,14 @@
            List<TTransportation> list = companySelectDriverDto.getList();
            tOrder.setsDriverid(list.get(0).getDriverId());
            tOrder.setsDriverIdOne(list.get(1).getDriverId());
            tOrder.seteDriverid(list.get(2).getDriverId());
            tOrder.seteDriverIdOne(list.get(3).getDriverId());
            if(companySelectDriverDto.getStreetTurn()==1){
                tOrder.seteDriverid(list.get(2).getDriverId());
                tOrder.seteDriverIdOne(list.get(3).getDriverId());
            }
            tOrder.setTruckCompany(companySelectDriverDto.getTruckCompany());
            tOrder.setPickupTimeTruck(companySelectDriverDto.getPickupTime());
            tOrder.setStreetTurn(companySelectDriverDto.getStreetTurn());
            companySelectDriverDto.getList().forEach(e->e.setOrderId(orderId));
            // 添加司机信息
            tTransportationService.insertBatch(companySelectDriverDto.getList());
            // 更改订单信息
@@ -345,17 +396,20 @@
            // 找出这个订单
            TOrder tOrder = orderService.selectById(orderId);
            List<TTransportation> list = companySelectDriverDto.getList();
            list.forEach(e->e.setOrderId(companySelectDriverDto.getOrderId()));
            tOrder.setsDriverid(list.get(0).getDriverId());
            tOrder.setsDriverIdOne(list.get(1).getDriverId());
            tOrder.seteDriverid(list.get(2).getDriverId());
            tOrder.seteDriverIdOne(list.get(3).getDriverId());
            if(companySelectDriverDto.getStreetTurn()==1){
                tOrder.seteDriverid(list.get(2).getDriverId());
                tOrder.seteDriverIdOne(list.get(3).getDriverId());
            }
            tOrder.setTruckCompany(companySelectDriverDto.getTruckCompany());
            tOrder.setPickupTimeTruck(companySelectDriverDto.getPickupTime());
            tOrder.setStreetTurn(companySelectDriverDto.getStreetTurn());
            // 删除原来的司机信息
            tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId));
            // 添加新司机信息
            tTransportationService.insertBatch(companySelectDriverDto.getList());
            tTransportationService.insertBatch(list);
            // 更改订单信息
            orderService.updateById(tOrder);
            return new SuccessTip();
@@ -379,18 +433,19 @@
            // 找出这个订单
            TOrder tOrder = orderService.selectById(orderId);
            TTransportation list = companySelectDriverSingleDto.getList();
            list.setOrderId(companySelectDriverSingleDto.getOrderId());
            Integer type = companySelectDriverSingleDto.getType();
            if(type==1){
                tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.getsDriverid()));
                tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.getsDriverid()).eq("type",1));
                tOrder.setsDriverid(list.getDriverId());
            }else if(type==2){
                tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.getsDriverIdOne()));
                tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.getsDriverIdOne()).eq("type",2));
                tOrder.setsDriverIdOne(list.getDriverId());
            }else if(type==3){
                tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.geteDriverid()));
                tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.geteDriverid()).eq("type",3));
                tOrder.seteDriverid(list.getDriverId());
            }else {
                tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.geteDriverIdOne()));
                tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.geteDriverIdOne()).eq("type",4));
                tOrder.seteDriverIdOne(list.getDriverId());
            }
            tTransportationService.insert(list);
@@ -422,22 +477,22 @@
            // 找出这个订单
            TOrder tOrder = orderService.selectById(orderId);
            Integer type = companyLocationDto.getType();
            if(type==1){
                TTransportation tTransportation = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", orderId).eq("driver_id", tOrder.getsDriverIdOne()));
            if(type==2){
                TTransportation tTransportation = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", orderId).eq("driver_id", tOrder.getsDriverIdOne()).eq("type",2));
                if(tTransportation!=null){
                    Integer yardId = tTransportation.getYardId();
                    TYard tYard = yardService.selectById(yardId);
                    return new SuccessTip(tYard);
                }
            }else if(type==2){
                TTransportation tTransportation = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", orderId).eq("driver_id", tOrder.geteDriverid()));
            }else if(type==3){
                TTransportation tTransportation = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", orderId).eq("driver_id", tOrder.geteDriverid()).eq("type",3));
                if(tTransportation!=null) {
                    Integer yardId = tTransportation.getYardId();
                    TYard tYard = yardService.selectById(yardId);
                    return new SuccessTip(tYard);
                }
            }else if(type==3){
                TTransportation tTransportation = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", orderId).eq("driver_id", tOrder.geteDriverIdOne()));
            }else if(type==4){
                TTransportation tTransportation = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", orderId).eq("driver_id", tOrder.geteDriverIdOne()).eq("type",4));
                if(tTransportation!=null) {
                    Integer portId = tTransportation.getPortId();
                    TPort tPort = portService.selectById(portId);
@@ -529,7 +584,21 @@
            }
            record.setType(type);
        }
        orderFilePage.setRecords(records);
        TOrder tOrder = orderService.selectById(orderId);
        if("9".equals(tOrder.getStatus()) || "18".equals(tOrder.getStatus())){
            ArrayList<TOrderFile> tOrderFiles = new ArrayList<>();
            TOrderFile tOrderFile = new TOrderFile();
            tOrderFile.setName("Bill of lading.pdf");
            tOrderFile.setId(0);
            tOrderFile.setType("file");
            tOrderFiles.add(tOrderFile);
            tOrderFiles.addAll(records);
            orderFilePage.setRecords(tOrderFiles);
        }else {
            orderFilePage.setRecords(records);
        }
        return new SuccessTip(orderFilePage);
    }