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