From 871efa21e6c95520e9825ae1f2338c9a919fdd5d Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期日, 15 十月 2023 17:57:48 +0800 Subject: [PATCH] 用户端代码 --- src/main/java/com/stylefeng/guns/modular/system/controller/DemandController.java | 859 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 650 insertions(+), 209 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 abbdcab..82416bd 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 @@ -11,13 +11,10 @@ import com.stylefeng.guns.modular.system.enums.UserFeeSettingEnum; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; -import com.stylefeng.guns.modular.system.utils.AddressLookup; -import com.stylefeng.guns.modular.system.utils.ExcelUtil; +import com.stylefeng.guns.modular.system.utils.*; 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.PointInPolygon; -import com.stylefeng.guns.modular.system.utils.UserInfoUtil; import com.stylefeng.guns.modular.system.utils.tips.SuccessTip; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -34,6 +31,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -115,6 +113,10 @@ @ResponseBody @Transactional(propagation = Propagation.REQUIRES_NEW) public Object addDemand(@RequestBody DemandDto demandDto) throws Exception { + + int breakNum=0; + // 计数 + int count=0; Integer id = demandDto.getId(); String s1 = System.currentTimeMillis() + ToolUtil.getRandomString(5); String s2 = System.currentTimeMillis() + ToolUtil.getRandomString(5); @@ -132,12 +134,12 @@ 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())); +// TUser tUser = userService.selectById(userId); +// if(tUser.getGroupId()!=null){ +// TGroup tGroup = groupService.selectById(tUser.getGroupId()); + tUserFeeSettings = userFeeSettingService.selectList(new EntityWrapper<TUserFeeSetting>().eq("user_id",userId).isNotNull("fee").gt("fee",0)); - } +// } String accessorialStr = demandDto.getAccessorialStr(); @@ -151,8 +153,14 @@ } List<TCompanyService> companyServiceList = new ArrayList<>(); + + String accessorialStr1 = getStr(demandDto.getAccessorialStr()); + + + + // - if(ToolUtil.isNotEmpty(demandDto.getAccessorialStr())){ + if(ToolUtil.isNotEmpty(accessorialStr1) && !"".equals(accessorialStr1)){ for (Map.Entry<String, String> entry : map.entrySet()) { if(!entry.getKey().equals("CTF")&& !entry.getKey().equals("URGENT FEE")&&!entry.getKey().equals("PIPERPASS")) { companyServiceList.addAll(tCompanyServiceService.selectList(new EntityWrapper<TCompanyService>() @@ -172,15 +180,15 @@ 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).eq("work",1)); - if(Objects.nonNull(company)){ - tCompanyList.add(company); - } +// 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).eq("work",1)); + if(Objects.nonNull(company)){ + tCompanyList.add(company); } +// } } // 符合规则的公司id集合 @@ -207,11 +215,13 @@ Integer portId = demandDto.getPortId(); TPort tPort = itPortService.selectById(portId); + GeocodeVo geocode = googleMapUtil.getGeocode(tPort.getAddress()); + + // 获取码头上级id TCountry city = countryService.selectById(tPort.getCity()); TCountry state = countryService.selectById(city.getParentId()); String address = tPort.getAddress(); -// GeocodeVo geocode = googleMapUtil.getGeocode(address); List<TCompanyCalculationResp> tCompanyCalculationRespList = new ArrayList<>(tCompanyList.size()); @@ -219,10 +229,11 @@ // 没有满足公司 if(CollectionUtils.isEmpty(set)){ quoteService.deleteById(tQuote.getId()); - return new ErrorTip(5001,"No truck company was matched to meet the demand"); + return new com.stylefeng.guns.modular.system.utils.tips.ErrorTip(5001,"No truck company was matched to meet the demand"); }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<>(); // 超重 价格 @@ -234,172 +245,123 @@ if(tRates1!=null){ ratesId=tRates1.getId(); }else { - ratesId=tCountry.getId(); + tRates1 = ratesService.selectOne(new EntityWrapper<TRates>().eq("metro_id", tCountry.getId()).eq("type", 1).eq("company_id", company.getId())); + if(tRates1!=null){ + ratesId=tRates1.getId(); + }else { + break; + } } for (GoodsListDto goodsListDto : list1) { + if(breakNum==1){ + break; + } 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<>(); + objects = new ArrayList<>(); + Long orderId= null; 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); - + tPrices = new ArrayList<>(); + objects = new ArrayList<>(); TCompanyResp tCompanyResp = new TCompanyResp(); - // 是否超重 - Integer weight = goodsDto.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())); - 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("rates_id",ratesId).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("rates_id",ratesId).eq("set_name", "Pool chassis")); - if(feeSetting==null){ - - }else { - 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("rates_id",ratesId).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("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.DETENTION_CONGESTION.getDesc())).getSetValue(); - tCompanyResp.setName(UserFeeSettingEnum.DETENTION_CONGESTION.getDesc()); - tCompanyResp.setPrice(setValue); - objects.add(tCompanyResp); - - if(goodsDto.getDanger()==1){ - tCompanyResp=new TCompanyResp(); - BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).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("rates_id",ratesId).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("rates_id",ratesId).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("rates_id",ratesId).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("rates_id",ratesId).eq("set_name", demandDto.getDelivery())).getSetValue(); - tCompanyResp.setName(demandDto.getDelivery()); - tCompanyResp.setPrice(setValue1); - objects.add(tCompanyResp); + TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", demandDto.getDelivery())); + if(feeSetting==null){ +// breakNum=1; +// count++; +// break; + }else { + tCompanyResp.setName(demandDto.getDelivery()); + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(demandDto.getDelivery())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting.getSetValue()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting.getSetValue().add(bigDecimal)); + tCompanyResp.setPrice(feeSetting.getSetValue()); + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue()); + tCompanyResp.setPrice(feeSetting.getSetValue()); + } + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue()); + tCompanyResp.setPrice(feeSetting.getSetValue()); + } +// tCompanyResp.setPrice(feeSetting.getSetValue()); +// tCompanyResp.setAdminPrice(feeSetting.getSetValue()); + objects.add(tCompanyResp); + } // 基础价格 String zipCode = demandDto.getZipCode(); // 地址信息 String address1 = AddressLookup.getAddress(zipCode); + System.out.println("地址信息+"+address1); + + if(address1==null){ + return new com.stylefeng.guns.modular.system.utils.tips.ErrorTip(5001,"Please enter the correct zipcode"); + } + List<TCompanyBasic> tCompanyBasic = companyBasicService.selectList(new EntityWrapper<TCompanyBasic>().eq("port_id",ratesId).eq("zip_code", zipCode).eq("type", 1)); + System.out.println(tCompanyBasic); + if(tCompanyBasic.size()>0){ + System.out.println("点对点++++++++++++"); tCompanyResp=new TCompanyResp(); - tCompanyResp.setPrice(tCompanyBasic.get(0).getFee()); + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals("LH+FSC")).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(tCompanyBasic.get(0).getFee()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setPrice(tCompanyBasic.get(0).getFee()); + tCompanyResp.setAdminPrice(tCompanyBasic.get(0).getFee().add(bigDecimal)); + }else { + tCompanyResp.setPrice(tCompanyBasic.get(0).getFee()); + tCompanyResp.setAdminPrice(tCompanyBasic.get(0).getFee()); + } + }else { + tCompanyResp.setPrice(tCompanyBasic.get(0).getFee()); + tCompanyResp.setAdminPrice(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)); + System.out.println(type); + tCompanyResp=new TCompanyResp(); if(type.size()>0){ - GeocodeVo geocode1 = googleMapUtil.getGeocode(zipCode); + GeocodeVo geocode1 = googleMapUtil.getGeocode(address1); + System.out.println("谷歌终点经纬度"+geocode1.getLat()+"|"+geocode1.getLng()); 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()); + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals("LH+FSC")).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(companyBasic.getFee()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setPrice(companyBasic.getFee()); + tCompanyResp.setAdminPrice(companyBasic.getFee().add(bigDecimal)); + }else { + tCompanyResp.setPrice(companyBasic.getFee()); + tCompanyResp.setAdminPrice(companyBasic.getFee()); + } + }else { + tCompanyResp.setPrice(companyBasic.getFee()); + tCompanyResp.setAdminPrice(companyBasic.getFee()); + } + +// tCompanyResp.setPrice(companyBasic.getFee()); +// tCompanyResp.setAdminPrice(companyBasic.getFee()); tCompanyResp.setName("LH+FSC"); objects.add(tCompanyResp); break; } } - if(tCompanyResp==null){ + if(tCompanyResp==null || "".equals(tCompanyResp.getName()) || tCompanyResp.getName()==null){ // 距离 tCompanyResp=new TCompanyResp(); // 1条数据 不需要zipcode @@ -409,13 +371,29 @@ 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); + + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals("LH+FSC")).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal1 = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(multiply).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setPrice(multiply); + tCompanyResp.setAdminPrice(multiply.add(bigDecimal1)); + }else { + tCompanyResp.setPrice(multiply); + tCompanyResp.setAdminPrice(multiply); + } + }else { + tCompanyResp.setPrice(multiply); + tCompanyResp.setAdminPrice(multiply); + } +// tCompanyResp.setPrice(multiply); +// tCompanyResp.setAdminPrice(multiply); tCompanyResp.setName("LH+FSC"); objects.add(tCompanyResp); }else { - tCompanyResp.setPrice(new BigDecimal(0)); - tCompanyResp.setName("LH+FSC"); - objects.add(tCompanyResp); + breakNum=1; + count++; + break; } } }else { @@ -428,13 +406,26 @@ 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); + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals("LH+FSC")).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal1 = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(multiply).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setPrice(multiply); + tCompanyResp.setAdminPrice(multiply.add(bigDecimal1)); + }else { + tCompanyResp.setPrice(multiply); + tCompanyResp.setAdminPrice(multiply); + } + }else { + tCompanyResp.setPrice(multiply); + tCompanyResp.setAdminPrice(multiply); + } tCompanyResp.setName("LH+FSC"); objects.add(tCompanyResp); }else { - tCompanyResp.setPrice(new BigDecimal(0)); - tCompanyResp.setName("LH+FSC"); - objects.add(tCompanyResp); + breakNum=1; + count++; + break; } } } @@ -443,18 +434,391 @@ 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)){ + if(Objects.nonNull(tWarehouse) && tWarehouse.getWarePrice().doubleValue()>0){ tCompanyResp.setPrice(tWarehouse.getWarePrice()); + tCompanyResp.setAdminPrice(tWarehouse.getWarePrice()); }else { - tCompanyResp.setPrice(new BigDecimal("0")); + breakNum=1; + count++; + break; } objects.add(tCompanyResp); } + + // 是否超重 + Integer weight = goodsDto.getWeight(); +// long between = DateUtil.between(demandDto.getShipmentDate(), demandDto.getDeliveryDate(), DateUnit.DAY); + String arg1 = tPort.getName(); + String arg2=""; + if(!"0".equals(demandDto.getWarehouse())){ + System.out.println("公司id:"+company.getId()); + System.out.println("公司ratesId:"+ratesId); + TWarehouse tWarehouse = warehouseService.selectOne(new EntityWrapper<TWarehouse>().eq("company_id", company.getId()).eq("code", demandDto.getWarehouse()).eq("port_id",ratesId)); + if(tWarehouse==null){ + breakNum=1; + count++; + break; + } + arg2=tWarehouse.getZipCode(); + }else { + arg2 = demandDto.getZipCode(); + } + System.out.println("arg2:"+arg2); + DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(tPort.getAddress(), arg2); + String arg3=String.valueOf(distancematrix.getDistance()/1609); + String arg4= demandDto.getList().get(0).getShippingLine(); + String arg5 = demandDto.getType(); + GoodsDto goodsDto1 = demandDto.getList().get(0).getList().get(0); + String arg6 =goodsDto1.getSize()+"ft"; + String arg7="None"; + String arg8 = goodsDto1.getKg(); + System.out.println("参数:"+arg1+"|"+arg2+"|"+arg3+"|"+arg4+"|"+arg5+"|"+arg6+"|"+arg7+"|"+arg8); +// arg1="WBCT"; +// arg2="Ontario"; +// arg3="55"; +// arg4="COSCO"; +// arg5="Drop & hook"; +// arg6="40ft"; +// arg7="None"; +// arg8="44806"; + BigDecimal days = new BigDecimal(ChassisRentalDaysUtil.chassisRentalDays(1, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)).setScale(0, RoundingMode.HALF_UP); +// 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())); + if(feeSetting==null){ + breakNum=1; + count++; + break; + }else { + tCompanyResp=new TCompanyResp(); + tCompanyResp.setName(UserFeeSettingEnum.OVERWEIGHT.getDesc()); + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.OVERWEIGHT.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting.getSetValue()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting.getSetValue().add(bigDecimal)); + tCompanyResp.setPrice(feeSetting.getSetValue()); + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue()); + tCompanyResp.setPrice(feeSetting.getSetValue()); + } + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue()); + 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")); + if(feeSetting1==null){ + breakNum=1; + count++; + break; + }else { + tCompanyResp=new TCompanyResp(); + tCompanyResp.setName(UserFeeSettingEnum.CHASSIS_FEE.getDesc()); + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.CHASSIS_FEE.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting1.getSetValue()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting1.getSetValue().add(bigDecimal)); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + tCompanyResp.setDay(days.toString()); + 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("rates_id",ratesId).eq("set_name", "Pool chassis")); + if(feeSetting==null){ + breakNum=1; + count++; + break; + }else { + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.CHASSIS_FEE.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting.getSetValue().multiply(days)).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting.getSetValue().multiply(days).add(bigDecimal)); + tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue().multiply(days)); + tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); + } + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue().multiply(days)); + tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); + } + + tCompanyResp.setDay(days.toString()); +// 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())); + if(feeSetting==null){ + tCompanyResp.setName(UserFeeSettingEnum.PREPULL.getDesc()); + tCompanyResp.setPrice(new BigDecimal(0)); + }else { + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.PREPULL.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting.getSetValue()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting.getSetValue().add(bigDecimal)); + tCompanyResp.setPrice(feeSetting.getSetValue()); + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue()); + tCompanyResp.setPrice(feeSetting.getSetValue()); + } + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue()); + tCompanyResp.setPrice(feeSetting.getSetValue()); + } + tCompanyResp.setName(UserFeeSettingEnum.PREPULL.getDesc()); + } +// BigDecimal setValue = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.PREPULL.getDesc())).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())); + if(feeSetting!=null){ + days = new BigDecimal(ChassisRentalDaysUtil.chassisRentalDays(4, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)).setScale(0, RoundingMode.HALF_UP); + tCompanyResp.setName(UserFeeSettingEnum.DETENTION_CONGESTION.getDesc()); +// tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); + tCompanyResp.setDay(days.toString()); + + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.DETENTION_CONGESTION.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting.getSetValue().multiply(days)).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting.getSetValue().multiply(days).add(bigDecimal)); + tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue().multiply(days)); + tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); + } + }else { + tCompanyResp.setAdminPrice(feeSetting.getSetValue().multiply(days)); + tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); + } + + }else { + tCompanyResp.setName(UserFeeSettingEnum.DETENTION_CONGESTION.getDesc()); + tCompanyResp.setPrice(new BigDecimal(0)); + tCompanyResp.setAdminPrice(new BigDecimal(0)); + } +// BigDecimal setValue = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.DETENTION_CONGESTION.getDesc())).getSetValue(); + + objects.add(tCompanyResp); + + // 仓储费 + tCompanyResp=new TCompanyResp(); + days = new BigDecimal(ChassisRentalDaysUtil.chassisRentalDays(2, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)).add(new BigDecimal(ChassisRentalDaysUtil.chassisRentalDays(3, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8))).setScale(0, RoundingMode.HALF_UP); + System.out.println("仓储费"+days); + TCompanyFeeSetting storage = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", UserFeeSettingEnum.STORAGE.getDesc())); + System.out.println(storage); + if(storage!=null){ + tCompanyResp.setName(UserFeeSettingEnum.STORAGE.getDesc()); +// tCompanyResp.setPrice(storage.getSetValue().multiply(days)); + + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.STORAGE.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(storage.getSetValue().multiply(days)).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(storage.getSetValue().multiply(days).add(bigDecimal)); + tCompanyResp.setPrice(storage.getSetValue().multiply(days)); + }else { + tCompanyResp.setAdminPrice(storage.getSetValue().multiply(days)); + tCompanyResp.setPrice(storage.getSetValue().multiply(days)); + } + }else { + tCompanyResp.setAdminPrice(storage.getSetValue().multiply(days)); + tCompanyResp.setPrice(storage.getSetValue().multiply(days)); + } + + + tCompanyResp.setDay(days.toString()); + objects.add(tCompanyResp); + }else { + tCompanyResp.setName(UserFeeSettingEnum.STORAGE.getDesc()); + tCompanyResp.setPrice(new BigDecimal(0)); + objects.add(tCompanyResp); + } + + + if(goodsDto.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())); + if(feeSetting1!=null){ + tCompanyResp.setName(UserFeeSettingEnum.HAZMAT.getDesc()); +// tCompanyResp.setPrice(feeSetting1.getSetValue()); + + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.HAZMAT.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting1.getSetValue()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting1.getSetValue().add(bigDecimal)); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + objects.add(tCompanyResp); + }else { + breakNum=1; + count++; + break; + } +// BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.HAZMAT.getDesc())).getSetValue(); + + } + 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())); + if(feeSetting1!=null){ + tCompanyResp.setName(UserFeeSettingEnum.URGENT_SEE.getDesc()); + + + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.URGENT_SEE.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting1.getSetValue()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting1.getSetValue().add(bigDecimal)); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } +// tCompanyResp.setPrice(feeSetting1.getSetValue()); + objects.add(tCompanyResp); + }else { + breakNum=1; + count++; + break; + } +// BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.URGENT_SEE.getDesc())).getSetValue(); + + } + 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())); + if(feeSetting1!=null){ + tCompanyResp.setName(UserFeeSettingEnum.PIERPASS.getDesc()); + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.PIERPASS.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting1.getSetValue()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting1.getSetValue().add(bigDecimal)); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + objects.add(tCompanyResp); + }else { + breakNum=1; + count++; + break; + } +// BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.PIERPASS.getDesc())).getSetValue(); + } + 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())); + if(feeSetting1!=null){ + tCompanyResp.setName(UserFeeSettingEnum.CTF.getDesc()); + if(tUserFeeSettings!=null){ + List<TUserFeeSetting> collect = tUserFeeSettings.stream().filter(e -> e.getName().equals(UserFeeSettingEnum.CTF.getDesc())).collect(Collectors.toList()); + if(collect.size()>0){ + BigDecimal bigDecimal = new BigDecimal(collect.get(0).getFee().doubleValue() / 100).multiply(feeSetting1.getSetValue()).setScale(2, RoundingMode.HALF_UP); + tCompanyResp.setAdminPrice(feeSetting1.getSetValue().add(bigDecimal)); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + }else { + tCompanyResp.setAdminPrice(feeSetting1.getSetValue()); + tCompanyResp.setPrice(feeSetting1.getSetValue()); + } + objects.add(tCompanyResp); + }else { + breakNum=1; + count++; + break; + } +// BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.CTF.getDesc())).getSetValue(); +// tCompanyResp.setName(UserFeeSettingEnum.CTF.getDesc()); +// tCompanyResp.setPrice(setValue1); +// 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(String.valueOf(geocode.getLat())); + tOrder.setStartLon(String.valueOf(geocode.getLng())); + tOrder.setDeliveryStr(demandDto.getDelivery()); + tOrder.setType(demandDto.getType()); + tOrder.setZipCode(demandDto.getZipCode()); + if("0".equals(demandDto.getWarehouse())){ + tOrder.seteAddress(AddressLookup.getAddress(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())); - + orderId= tOrder.getId(); TGoods tGoods = new TGoods(); tGoods.setShippingLine(goodsListDto.getShippingLine()); tGoods.setDanger(goodsListDto.getDanger()); @@ -466,23 +830,32 @@ tGoods.setTypeClass(goodsDto.getTypeClass()); tGoods.setLineStr(goodsDto.getLineStr()); tGoods1.add(tGoods); + + String randomNumber = ToolUtil.getRandomNumber(10); + for (TCompanyResp object : objects) { + TPrice tPrice = new TPrice(); + tPrice.setCreateTime(new Date()); + tPrice.setOrderId(orderId); + tPrice.setState("1"); + tPrice.setPrice(object.getAdminPrice()); + tPrice.setCarPrice(object.getPrice()); + tPrice.setType(object.getName()); + tPrice.setStatus(1); + tPrice.setNumber(randomNumber); + tPrice.setDay(object.getDay()); + tPrices.add(tPrice); + } + if(tPrices.size()>0){ + priceService.insertBatch(tPrices); + } } - goodsService.insertBatch(tGoods1); + if(tGoods1.size()>0){ + + goodsService.insertBatch(tGoods1); + } - String randomNumber = getRandomNumber(10); - 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()); - tPrice.setStatus(1); - tPrice.setNumber(randomNumber); - tPrices.add(tPrice); - } - priceService.insertBatch(tPrices); + } tCompanyCalculationResp.setOrderList(tOrders); @@ -529,31 +902,67 @@ tCompanyCalculationResp.setStartLat(String.valueOf(1)); // 目的地经纬度 - if("0".equals(demandDto.getWarehouse())){ + if(!"0".equals(demandDto.getWarehouse())){ TWarehouse tWarehouse = warehouseService.selectOne(new EntityWrapper<TWarehouse>().eq("company_id", company.getId()).eq("code", demandDto.getWarehouse()).eq("port_id",ratesId)); + System.out.println(company.getId()); + System.out.println(ratesId); GeocodeVo geocode1 = googleMapUtil.getGeocode(tWarehouse.getAddress()); tCompanyCalculationResp.setEndLon(String.valueOf(geocode1.getLng())); tCompanyCalculationResp.setEndLat(String.valueOf(geocode1.getLat())); tCompanyCalculationRespList.add(tCompanyCalculationResp); }else { String zipCode = demandDto.getZipCode(); -// GeocodeVo geocode1 = googleMapUtil.getGeocode(zipCode); -// tCompanyCalculationResp.setEndLon(String.valueOf(geocode1.getLng())); -// tCompanyCalculationResp.setEndLat(String.valueOf(geocode1.getLat())); + GeocodeVo geocode1 = googleMapUtil.getGeocode(AddressLookup.getAddress(zipCode)); + tCompanyCalculationResp.setEndLon(String.valueOf(geocode1.getLng())); + tCompanyCalculationResp.setEndLat(String.valueOf(geocode1.getLat())); +// tCompanyCalculationResp.setEndLon(String.valueOf(1)); +// tCompanyCalculationResp.setEndLat(String.valueOf(1)); tCompanyCalculationRespList.add(tCompanyCalculationResp); } } - + if(count==companies.size()){ + return new com.stylefeng.guns.modular.system.utils.tips.ErrorTip(5001,"No truck company was matched to meet the demand"); + } } for (TCompanyCalculationResp tCompanyCalculationResp : tCompanyCalculationRespList) { tCompanyCalculationResp.setQuoteId(tQuote.getId()); + } + if(0==tCompanyCalculationRespList.size()){ + return new com.stylefeng.guns.modular.system.utils.tips.ErrorTip(5001,"No truck company was matched to meet the demand"); } return new SuccessTip(tCompanyCalculationRespList); } + + private String getStr(String str){ + if(str==null){ + return null; + } + String s = ""; + String[] split = str.split(","); + if(split.length==1){ + if(split[0].equals("CTF") || split[0].equals("URGENT FEE") || split[0].equals("PIPERPASS")){ + return s; + }else { + s=split[0]; + return s; + } + }else { + for (int i = 0; i < split.length; i++) { + if(!split[i].equals("CTF")&&!split[i].equals("URGENT FEE") && !split[i].equals("PIPERPASS")){ + if(i==split.length-1){ + s+=split[i]; + }else { + s+=split[i]+","; + } + } + } + return s; + } + } public static String getRandomNumber(int length) { String base = "0123456789"; @@ -583,16 +992,30 @@ 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); + bigDecimal=bigDecimal.add(prices.stream().map(TPrice::getPrice).reduce(BigDecimal.ZERO,BigDecimal::add)); } + 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="发布需求-第二步/修改需求") @@ -613,9 +1036,22 @@ List<TOrder> orders = new ArrayList<>(); for (DemandDtoTwo dtoTwo : demandDtoTwo.getDemandDtoTwo()) { TOrder tOrder = new TOrder(); - BeanUtil.copyProperties(dtoTwo,tOrder); - orders.add(tOrder); + TOrder tOrder1 = orderService.selectById(dtoTwo.getId()); + List<TOrder> orders1 = orderService.selectList(new EntityWrapper<TOrder>().eq("e_zip_z", tOrder1.geteZipZ())); + for (TOrder order : orders1) { + order.setsName(dtoTwo.getSName()); + order.setsPhone(dtoTwo.getSPhone()); + order.setsEmail(dtoTwo.getSEmail()); + order.setePhone(dtoTwo.getEPhone()); + order.seteEmail(dtoTwo.getEEmail()); + order.seteName(dtoTwo.getEName()); + if(dtoTwo.getEAddress()!=null && !"".equals(dtoTwo.getEAddress())){ + order.seteAddress(dtoTwo.getEAddress()); + } + orders.add(order); + } } + orderService.updateBatchById(orders); List<TUserFeeSetting> tUserFeeSettings =null; Long next = integers.iterator().next(); TOrder tOrder1 = orderService.selectById(next); @@ -623,7 +1059,9 @@ 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())); + if(tGroup!=null) { + tUserFeeSettings = userFeeSettingService.selectList(new EntityWrapper<TUserFeeSetting>().eq("user_id", tGroup.getSalesId())); + } } for (Long order : integers) { @@ -635,27 +1073,30 @@ tOrder.setStatus("0"); BigDecimal bigDecimal = new BigDecimal(0); // 通过每个订单 找出当前的用户的sale 找出提成算出应给卡车公司的价格 - List<TPrice> prices = priceService.selectList(new EntityWrapper<TPrice>().eq("order_id", order)); - if(tUserFeeSettings!=null){ - for (TUserFeeSetting tUserFeeSetting : tUserFeeSettings) { - for (TPrice price : prices) { - if(tUserFeeSetting.getName().equals(price.getType())){ - double v = (double) tUserFeeSetting.getFee() / 100; - BigDecimal multiply = price.getPrice().multiply(new BigDecimal(v)); - // 付卡车的钱 - BigDecimal subtract = price.getPrice().subtract(multiply); - price.setCarPrice(subtract); - bigDecimal = bigDecimal.add(subtract); - }else { - price.setCarPrice(price.getPrice()); - bigDecimal = bigDecimal.add(price.getPrice()); - } - } - } - }else { - prices.stream().forEach(e->e.setCarPrice(e.getPrice())); + List<TPrice> prices = priceService.selectList(new EntityWrapper<TPrice>().eq("order_id", order).eq("status",1)); +// if(tUserFeeSettings!=null && tUserFeeSettings.size()>0){ +// for (TUserFeeSetting tUserFeeSetting : tUserFeeSettings) { +// for (TPrice price : prices) { +// if(tUserFeeSetting.getName().equals(price.getType())){ +// double v = (double) tUserFeeSetting.getFee() / 100; +// BigDecimal multiply = price.getPrice().multiply(new BigDecimal(v)); +// // 付卡车的钱 +// BigDecimal subtract = price.getPrice().subtract(multiply); +// price.setCarPrice(subtract); +// bigDecimal = bigDecimal.add(subtract); +// }else { +// price.setCarPrice(price.getPrice()); +// bigDecimal = bigDecimal.add(price.getPrice()); +// } +// } +// } +// }else { +// prices.stream().forEach(e->e.setCarPrice(e.getPrice())); +// } +// priceService.updateBatchById(prices); + for (TPrice price : prices) { + bigDecimal = bigDecimal.add(price.getPrice()); } - priceService.updateBatchById(prices); tOrder.setPayMoney(bigDecimal); orderService.updateById(tOrder); @@ -835,9 +1276,9 @@ 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); + tWarehouseEntityWrapper.like("code",address); } Page<TWarehouse> tWarehousePage1 = warehouseService.selectPage(tWarehousePage, tWarehouseEntityWrapper); -- Gitblit v1.7.1