package com.stylefeng.guns.modular.system.controller; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.util.ToolUtil; 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.PortUtil.FortyNineUtil; import com.stylefeng.guns.modular.system.utils.PortUtil.SCACEnum; import com.stylefeng.guns.modular.system.utils.PortUtil.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; import io.swagger.annotations.ApiOperation; 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.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.net.FileNameMap; import java.net.URLConnection; import java.util.*; @Controller @Api(tags = "订单") @RequestMapping("/api/order") public class OrderController { @Autowired private ITOrderService orderService; @Autowired private ITDriverService driverService; @Autowired private ITExamSiteService examSiteService; @Autowired private ITUserFeeSettingService feeSettingService; @Autowired private ITGroupService groupService; @Autowired private ITUserService itUserService; @Autowired private ITPriceService priceService; @Autowired private IUserService service; @Autowired private ITOrderLogService orderLogService; @Autowired private ITOrderFileService fileService; @Autowired private ITUserAddressService addressService; @Autowired private ITPortService portService; @Resource private ITGoodsService goodsService; @Resource private TUserBankService bankService; /** * company 订单 * @param dto * @return */ @ApiOperation(value = "用户端-订单列表",notes="用户端-订单列表") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/getOrderList") @ResponseBody public Object getOrderList(@RequestBody OrderListDto dto) { Page orderListVoPage = new Page<>(dto.getPageNumber(), dto.getPageSize()); List list = orderService.getOrderList(orderListVoPage,dto); orderListVoPage.setRecords(list); return new SuccessTip(orderListVoPage); } /** * 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 = "/affirm") @ResponseBody public Object affirm( Long orderId) { TOrder tOrder = orderService.selectById(orderId); tOrder.setStatus("1"); orderService.updateById(tOrder); 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({ @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 = "type", value = "1信用支付 2卡支付 ", required = true, dataType = "int"), @ApiImplicitParam(name = "cardId", value = "卡id", required = true, dataType = "int"), }) @GetMapping(value = "/pay") @ResponseBody @Transactional(propagation = Propagation.REQUIRES_NEW) public Object pay(Long orderId,int type,int cardId){ TOrder tOrder = orderService.selectById(orderId); BigDecimal allTotal = tOrder.getAllTotal(); if(type==1){ Integer userId = tOrder.getUserId(); TUser tUser = itUserService.selectById(userId); // 剩余额度 String reditLimit = tUser.getResidueLimit(); // 信用额度 BigDecimal bigDecimal = new BigDecimal(reditLimit); if(bigDecimal.doubleValue() list = orderService.getGoodsInfo(orderId); return new SuccessTip(list); } @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"), }) @GetMapping(value = "/deleteOrder") @ResponseBody public Object deleteOrder( Long orderId) { TOrder tOrder = orderService.selectById(orderId); if(tOrder.getStatus().equals("16")){ orderService.deleteById(tOrder); return new SuccessTip(); }else { return new ErrorTip(5006,"The order status cannot be deleted"); } } @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"), }) @GetMapping(value = "/getOrderInfo") @ResponseBody public Object getOrderInfo( Long orderId) { HashMap orderInfo = orderService.getOrderInfo(orderId); return new SuccessTip(orderInfo); } @ApiOperation(value = "根据zipcode获取用户地址",notes="根据zipcode获取用户地址") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "zipcode", value = "zipcode", required = true, dataType = "String"), @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Integer"), }) @GetMapping(value = "/getAddressByCode") @ResponseBody public Object getAddressByCode( String zipcode,Integer id) { List addresses = addressService.selectList(new EntityWrapper().eq("user_id", id).eq("zip_code", zipcode).eq("remove",0)); return new SuccessTip(addresses); } @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 private TTransportationService tTransportationService; @Resource private TPowerUnitsService powerUnitsService; @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"), }) @GetMapping(value = "/getTransportInfo") @ResponseBody public Object getTransportInfo(@RequestParam Long orderId) { TransportInfo transportInfo = new TransportInfo(); ArrayList orderDriverInfos = new ArrayList<>(); ArrayList driverIds = new ArrayList<>(); TOrder tOrder = orderService.selectById(orderId); TPort tPort = portService.selectById(tOrder.getPort()); // 第一个开始司机id Integer sDriverid = tOrder.getsDriverid(); if(sDriverid!=null){ driverIds.add(sDriverid); } // 第2个开始司机id Integer sDriverIdOne = tOrder.getsDriverIdOne(); if(sDriverIdOne!=null){ driverIds.add(sDriverIdOne); } Integer driverid = tOrder.geteDriverid(); if(driverid!=null){ driverIds.add(driverid); } Integer driverIdOne = tOrder.geteDriverIdOne(); if(driverIdOne!=null){ driverIds.add(driverIdOne); } TGoods tGoods = goodsService.selectOne(new EntityWrapper().eq("order_id", tOrder.getId())); List tTransportations = tTransportationService.selectList(new EntityWrapper().eq("order_id", orderId).in("driver_id", driverIds).orderBy("type")); TerminaleDataWarpper terminalStatus=new TerminaleDataWarpper(); try { if("LBCT".equals(tPort.getName()) || "APM".equals(tPort.getName())){ terminalStatus = TerminalInterfaceAcquisitionUtil.getTerminalStatus(tPort.getName(),tGoods.getContainerNumber(), FacilityCodeEnum.USLAX.getMsg()); }else { // 去查是否存了containerid if(ToolUtil.isNotEmpty(tGoods.getShipmentId()) && !"0".equals(tGoods.getShipmentId())){ terminalStatus = FortyNineUtil.getContainerNo(tGoods.getShipmentId(), tGoods.getContainerNumber()); }else { String shippingLine = tGoods.getShippingLine(); SCACEnum scacEnum = SCACEnum.fromCode(shippingLine); String s; if(ToolUtil.isEmpty(tGoods.getTrackingId()) || "0".equals(tGoods.getTrackingId())){ s = FortyNineUtil.trackingRequest(tGoods.getBillNumber(), scacEnum.getDesc()); if(ToolUtil.isEmpty(s)){ s = FortyNineUtil.trackingList(tGoods.getBillNumber()); } tGoods.setTrackingId(s); goodsService.updateById(tGoods); }else { s = tGoods.getTrackingId(); } String shipmentId = FortyNineUtil.getShipmentId(s); if(ToolUtil.isNotEmpty(shipmentId)){ tGoods.setShipmentId(shipmentId); goodsService.updateById(tGoods); }else { tGoods.setShipmentId("0"); tGoods.setTrackingId("0"); goodsService.updateById(tGoods); } terminalStatus = FortyNineUtil.getContainerNo(shipmentId, tGoods.getContainerNumber()); } } }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.getDriverId().equals(sDriverIdOne)&&tDriver.getType()==1){ orderDriverInfo.setPickUp(tDriver.getPickDate()); } if(tDriver.getDriverId().equals(sDriverIdOne)&&tDriver.getType()==2){ orderDriverInfo.setPickUp(tDriver.getPickDate()); } if(tDriver.getDriverId().equals(driverid) &&tDriver.getType()==3){ orderDriverInfo.setEmptyDate(tDriver.getEmptyDate()); } if(tDriver.getDriverId().equals(driverIdOne) &&tDriver.getType()==4){ orderDriverInfo.setReturnDate(tDriver.getReturnDate()); } orderDriverInfo.setContactEmail(tDriver.getEmail()); orderDriverInfo.setContactName(tDriver.getName()); orderDriverInfo.setContactPhone(tDriver.getPhone()); orderDriverInfo.setTPowerUnits(powerUnitsService.selectById(tDriver.getPowerUnit())); orderDriverInfo.setChassiess(powerUnitsService.selectById(tDriver.getChassises())); // TODO 第三方 目前不知道对接那个 orderDriverInfo.setAppointmentNumber(terminalStatus.getAppointmentNumber()); orderDriverInfos.add(orderDriverInfo); } 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.setAvailable(terminalStatus.getAvailability()); transportInfo.setList(orderDriverInfos); Integer examSite = tOrder.getExamSite(); if(Objects.nonNull(examSite)){ TExamSite tExamSite = examSiteService.selectById(examSite); transportInfo.setAddress(tExamSite.getAddress()); transportInfo.setContactEmail(tExamSite.getContactEmail()); transportInfo.setContactName(tExamSite.getContactName()); transportInfo.setExamSiteName(tExamSite.getExamSiteName()); transportInfo.setZipCode(tExamSite.getZipCode()); } return new SuccessTip(transportInfo); } @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 = "lon", value = "lon", required = true, dataType = "String"), @ApiImplicitParam(name = "lat", value = "lat", required = true, dataType = "String"), }) @GetMapping(value = "/getLonLat") @ResponseBody public Object getLonLat(Long orderId){ // 通过司机id获取订单 List> orders = orderService.getLonLat(orderId); return new SuccessTip(orders); } @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"), }) @GetMapping(value = "/getPriceInfo") @ResponseBody public Object getPriceInfo(Long orderId){ TOrder tOrder = orderService.selectById(orderId); Integer userId = tOrder.getUserId(); // 获取用户所i在分组 TUser tUser = itUserService.selectById(userId); List prices = priceService.selectList(new EntityWrapper().eq("order_id", tOrder.getId())); ArrayList priceInfos = new ArrayList<>(); if(false){ TGroup tGroup = groupService.selectById(tUser.getGroupId()); User user = service.selectById(tGroup.getSalesId()); // 提成 Double commission = user.getCommission(); // 获取分组sale List tUserFeeSettings = feeSettingService.selectList(new EntityWrapper().eq("user_id", tGroup.getSalesId())); // 提成一个 根据价格判断 for (TPrice price : prices) { for (TUserFeeSetting tUserFeeSetting : tUserFeeSettings) { if(price.getType().equals(tUserFeeSetting.getName())){ PriceInfo priceInfo = new PriceInfo(); priceInfo.setName(price.getType()); priceInfo.setCustomerCost(price.getPrice()); if(tUserFeeSetting.getFee()!=null && tUserFeeSetting.getFee()!=0) { double v = ((double) tUserFeeSetting.getFee()) / 100; BigDecimal multiply = price.getPrice().multiply(new BigDecimal(v)); BigDecimal subtract = price.getPrice().subtract(multiply); }else { } priceInfos.add(priceInfo); break; } } } }else { for (TPrice price : prices) { PriceInfo priceInfo = new PriceInfo(); priceInfo.setCustomerCost(price.getPrice()); priceInfo.setName(price.getType()); priceInfos.add(priceInfo); } } return new SuccessTip(priceInfos); } @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 = "pageNumber", value = "pageNumber", required = true, dataType = "int"), @ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "int"), }) @GetMapping(value = "/getOrderLog") @ResponseBody public Object getOrderLog(Long orderId,int pageNumber,int pageSize){ Page tOrderLogPage = new Page<>(pageNumber, pageSize); Page page = orderLogService.selectPage(tOrderLogPage, new EntityWrapper().eq("order_id", orderId).orderBy("create_time",false)); return new SuccessTip(page); } @ApiOperation(value = "卡车公司--安排司机",notes="卡车公司--安排司机") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/selectDriver") @ResponseBody public Object selectDriver(@RequestBody CompanySelectDriverDto companySelectDriverDto){ try { Long orderId = companySelectDriverDto.getOrderId(); // 找出这个订单 TOrder tOrder = orderService.selectById(orderId); List 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()); tOrder.setTruckCompany(companySelectDriverDto.getTruckCompany()); tOrder.setPickupTimeTruck(companySelectDriverDto.getPickupTime()); tOrder.setStreetTurn(companySelectDriverDto.getStreetTurn()); // 添加司机信息 tTransportationService.insertBatch(companySelectDriverDto.getList()); // 更改订单信息 orderService.updateById(tOrder); return new SuccessTip(); }catch (Exception e){ e.printStackTrace(); } return new ErrorTip(500,"ERROR"); } @ApiOperation(value = "卡车公司--修改安排司机(多个)",notes="卡车公司--修改安排司机(多个)") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/updateDriver") @ResponseBody public Object updateDriver(@RequestBody CompanySelectDriverDto companySelectDriverDto){ try { Long orderId = companySelectDriverDto.getOrderId(); // 找出这个订单 TOrder tOrder = orderService.selectById(orderId); List 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()); tOrder.setTruckCompany(companySelectDriverDto.getTruckCompany()); tOrder.setPickupTimeTruck(companySelectDriverDto.getPickupTime()); tOrder.setStreetTurn(companySelectDriverDto.getStreetTurn()); // 删除原来的司机信息 tTransportationService.delete(new EntityWrapper().eq("order_id",orderId)); // 添加新司机信息 tTransportationService.insertBatch(companySelectDriverDto.getList()); // 更改订单信息 orderService.updateById(tOrder); return new SuccessTip(); }catch (Exception e){ e.printStackTrace(); } return new ErrorTip(500,"ERROR"); } @ApiOperation(value = "卡车公司--修改安排司机(单个)",notes="卡车公司--修改安排司机(单个)") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/updateDriverSingle") @ResponseBody public Object updateDriverSingle(@RequestBody CompanySelectDriverSingleDto companySelectDriverSingleDto){ try { Long orderId = companySelectDriverSingleDto.getOrderId(); // 找出这个订单 TOrder tOrder = orderService.selectById(orderId); TTransportation list = companySelectDriverSingleDto.getList(); list.setOrderId(companySelectDriverSingleDto.getOrderId()); Integer type = companySelectDriverSingleDto.getList().getType(); if(type==1){ tTransportationService.delete(new EntityWrapper().eq("order_id",orderId).eq("driver_id",tOrder.getsDriverid()).eq("type",1)); tOrder.setsDriverid(list.getDriverId()); }else if(type==2){ tTransportationService.delete(new EntityWrapper().eq("order_id",orderId).eq("driver_id",tOrder.getsDriverIdOne()).eq("type",2)); tOrder.setsDriverIdOne(list.getDriverId()); }else if(type==3){ tTransportationService.delete(new EntityWrapper().eq("order_id",orderId).eq("driver_id",tOrder.geteDriverid()).eq("type",3)); tOrder.seteDriverid(list.getDriverId()); }else { tTransportationService.delete(new EntityWrapper().eq("order_id",orderId).eq("driver_id",tOrder.geteDriverIdOne()).eq("type",4)); tOrder.seteDriverIdOne(list.getDriverId()); } tTransportationService.insert(list); // 删除原来的司机信息 // 更改订单信息 orderService.updateById(tOrder); return new SuccessTip(); }catch (Exception e){ e.printStackTrace(); } return new ErrorTip(500,"ERROR"); } @Resource private TYardService yardService; @ApiOperation(value = "卡车公司--点击定位(场地/码头)",notes="卡车公司--点击定位(场地/码头)") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/getLocation") @ResponseBody public Object getLocation(@RequestBody CompanyLocationDto companyLocationDto){ try { Long orderId = companyLocationDto.getOrderId(); // 找出这个订单 TOrder tOrder = orderService.selectById(orderId); Integer type = companyLocationDto.getType(); if(type==1){ TTransportation tTransportation = tTransportationService.selectOne(new EntityWrapper().eq("order_id", orderId).eq("driver_id", tOrder.getsDriverIdOne())); 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().eq("order_id", orderId).eq("driver_id", tOrder.geteDriverid())); 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().eq("order_id", orderId).eq("driver_id", tOrder.geteDriverIdOne())); if(tTransportation!=null) { Integer portId = tTransportation.getPortId(); TPort tPort = portService.selectById(portId); return new SuccessTip(tPort); } } return new ErrorTip(5001,"not found"); }catch (Exception e){ e.printStackTrace(); } return new ErrorTip(500,"ERROR"); } @ApiOperation(value = "运输安排---选择公司司机",notes="运输安排---选择公司司机") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "pageNumber", value = "pageNumber", required = true, dataType = "int"), @ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "int"), @ApiImplicitParam(name = "id", value = "当前公司id", required = true, dataType = "int"), }) @GetMapping(value = "/getDriverSelect") @ResponseBody public Object getDriverSelect(int pageNumber,int pageSize,int id){ Page tDriverPage = new Page<>(pageNumber, pageSize); Page tDriverPage1 = driverService.selectPage(tDriverPage, new EntityWrapper().eq("is_carriers", 1).eq("company_id", id).eq("remove", 0)); ArrayList tDriverSelectVos = new ArrayList<>(); List records = tDriverPage1.getRecords(); records.forEach(e->{ TDriverSelectVo tDriverSelectVo = new TDriverSelectVo(); BeanUtil.copyProperties(e,tDriverSelectVo); tDriverSelectVos.add(tDriverSelectVo); }); Page page = new Page<>(); BeanUtil.copyProperties(tDriverPage1,page); page.setRecords(tDriverSelectVos); return new SuccessTip(page); } @ApiOperation(value = "运输安排---承运商选择司机",notes="运输安排---承运商选择司机") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "pageNumber", value = "pageNumber", required = true, dataType = "int"), @ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "int"), @ApiImplicitParam(name = "id", value = "承运商ud", required = true, dataType = "int"), }) @GetMapping(value = "/getDriverSelectFromCarriers") @ResponseBody public Object getDriverSelectFromCarriers(int pageNumber,int pageSize,int id){ Page tDriverPage = new Page<>(pageNumber, pageSize); Page tDriverPage1 = driverService.selectPage(tDriverPage, new EntityWrapper().eq("is_carriers", 2).eq("carriers_id", id).eq("remove", 0)); ArrayList tDriverSelectVos = new ArrayList<>(); List records = tDriverPage1.getRecords(); records.forEach(e->{ TDriverSelectVo tDriverSelectVo = new TDriverSelectVo(); BeanUtil.copyProperties(e,tDriverSelectVo); tDriverSelectVos.add(tDriverSelectVo); }); Page page = new Page<>(); BeanUtil.copyProperties(tDriverPage1,page); page.setRecords(tDriverSelectVos); return new SuccessTip(page); } @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 = "pageNumber", value = "pageNumber", required = true, dataType = "int"), @ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "int"), }) @GetMapping(value = "/getOrderFile") @ResponseBody public Object getOrderFile(Long orderId,int pageNumber,int pageSize){ Page tOrderFilePage = new Page<>(pageNumber, pageSize); Page orderFilePage = fileService.selectPage(tOrderFilePage, new EntityWrapper().eq("order_id", orderId).orderBy("create_time",false)); List records = orderFilePage.getRecords(); for (TOrderFile record : records) { FileNameMap fileNameMap = URLConnection.getFileNameMap(); String contentTypeFor = fileNameMap.getContentTypeFor(record.getFile()); String type=null; if(contentTypeFor==null){ type="video"; }else { type="img"; } record.setType(type); } TOrder tOrder = orderService.selectById(orderId); if(true){ ArrayList 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); } @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 = "url", value = "文件链接", required = true, dataType = "String"), @ApiImplicitParam(name = "name", value = "文件名称", required = true, dataType = "String"), }) @PostMapping(value = "/addOrderFile") @ResponseBody public Object addOrderFile(@RequestBody AddOrderFile addOrderFile){ Long orderId = addOrderFile.getOrderId(); List file = addOrderFile.getFile(); Boolean b =false; for (TOrderFileDto tOrderFileDto : file) { b = orderService.addOrderFile(orderId, tOrderFileDto.getUrl(), tOrderFileDto.getDeleteUrl()); } if(b){ return new SuccessTip(); } return new ErrorTip(500,"ERROR"); } @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"), }) @GetMapping(value = "/getOrderLading") @ResponseBody public Object getOrderLading(Long orderId){ try { OrderLading orderLading = new OrderLading(); TOrder tOrder = orderService.selectById(orderId); orderLading.setOrderId(tOrder.getId()); // 找出用户 TUser tUser = itUserService.selectById(tOrder.getUserId()); orderLading.setCustomerName(tUser.getCompanyName()); // 找出默认地址 List addresses = addressService.selectList(new EntityWrapper().eq("user_id", tUser.getId())); if(addresses.size()>0){ for (TUserAddress address : addresses) { if(address.getIsDefault()==1){ orderLading.setCustomerAddress(address.getAddress()); } } if(orderLading.getCustomerAddress()==null){ orderLading.setCustomerAddress(addresses.get(0).getAddress()); } } orderLading.setCustomerPhone(tUser.getPhone()); // 码头信息 TPort tPort = portService.selectById(tOrder.getPort()); orderLading.setPortAddress(tPort.getAddress()); orderLading.setOrderCreateTime(tOrder.getCreateTime()); orderLading.setShipmentDate(tOrder.getShipmentDate()); // 货物信息 TGoods tGoods = goodsService.selectList(new EntityWrapper().eq("order_id", orderId)).get(0); orderLading.setOurRef(tGoods.getOurRef()); orderLading.setSb(tGoods.getSb()); orderLading.setPo(tGoods.getPo()); orderLading.setCustRef(tGoods.getCustRef()); orderLading.setEntry(tGoods.getEntry()); orderLading.setLbNo(tGoods.getBillNumber()); String time =""; if(ToolUtil.isNotEmpty(tGoods.getShipmentId()) && !"0".equals(tGoods.getShipmentId())){ time= FortyNineUtil.getContainerNoOne(tGoods.getShipmentId(), tGoods.getContainerNumber()); }else { String shippingLine = tGoods.getShippingLine(); SCACEnum scacEnum = SCACEnum.fromCode(shippingLine); String s; if(ToolUtil.isEmpty(tGoods.getTrackingId()) || "0".equals(tGoods.getTrackingId())){ s = FortyNineUtil.trackingRequest(tGoods.getBillNumber(), scacEnum.getDesc()); if(ToolUtil.isEmpty(s)){ s = FortyNineUtil.trackingList(tGoods.getBillNumber()); } tGoods.setTrackingId(s); goodsService.updateById(tGoods); }else { s = tGoods.getTrackingId(); } String shipmentId = FortyNineUtil.getShipmentId(s); if(ToolUtil.isNotEmpty(shipmentId)){ tGoods.setShipmentId(shipmentId); goodsService.updateById(tGoods); }else { tGoods.setShipmentId("0"); tGoods.setTrackingId("0"); goodsService.updateById(tGoods); } time = FortyNineUtil.getContainerNoOne(shipmentId, tGoods.getContainerNumber()); } orderLading.setEta(time); String billNumber = tGoods.getBillNumber(); List goods = goodsService.selectList(new EntityWrapper().eq("bill_number", billNumber)); ArrayList> maps = new ArrayList<>(); for (TGoods good : goods) { HashMap map = new HashMap<>(); map.put("containerNo",good.getContainerNumber()); map.put("size",good.getSize()); map.put("weight",good.getKg()); maps.add(map); } orderLading.setGoodsInfo(maps); // 获取收货信息 orderLading.setEndCompanyName(tOrder.geteCompanyName()); orderLading.setEndCompanyAddress(tOrder.geteAddress()); orderLading.setEndContactName(tOrder.geteName()); orderLading.setEndContactPhone(tOrder.getePhone()); return new SuccessTip(orderLading); }catch (Exception e){ e.printStackTrace(); return new ErrorTip(500,"ERROR"); } } @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 = "type", value = "1平台给用户报价 2平台给卡车公司价格", required = true, dataType = "int"), }) @GetMapping(value = "/getPriceFromPlatform") @ResponseBody public Object getPriceFromPlatform(Long orderId,int type){ HashMap map = new HashMap<>(); TOrder tOrder = orderService.selectById(orderId); // 根据订单获取报价 map.put("invoice",tOrder.getInvoiceNumber()); map.put("pickUpDate",tOrder.getShipmentDate()); map.put("returnDate",tOrder.getOrderOkTime()); List prices = priceService.selectList(new EntityWrapper().eq("order_id", orderId)); if(type==1){ map.put("price",prices); }else{ // 找出订单用户 --> 获取销售--> 获取提成 --> 计算应给卡车公司金额 Integer userId = tOrder.getUserId(); TUser tUser = itUserService.selectById(userId); if(tUser.getGroupId()==null){ map.put("price",prices); }else { TGroup tGroup = groupService.selectById(tUser.getGroupId()); User user = service.selectById(tGroup.getSalesId()); List tUserFeeSettings = feeSettingService.selectList(new EntityWrapper().eq("user_id", user.getId())); for (TPrice price : prices) { for (TUserFeeSetting tUserFeeSetting : tUserFeeSettings) { if(price.getType().equals(tUserFeeSetting.getName())){ if(tUserFeeSetting.getFee()!=null && tUserFeeSetting.getFee()!=0) { double v = ((double) tUserFeeSetting.getFee()) / 100; BigDecimal multiply = price.getPrice().multiply(new BigDecimal(v)); BigDecimal subtract = price.getPrice().subtract(multiply); price.setPrice(subtract); }else { price.setPrice(price.getPrice()); } break; } } } map.put("price",prices); } } return new SuccessTip(map); } }