From 8d7dbd6d2c0775d45043474c1525ad827b4cd3bd Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期四, 31 八月 2023 11:59:55 +0800 Subject: [PATCH] 用户端代码 49码头 --- src/main/java/com/stylefeng/guns/modular/system/controller/DemandController.java | 481 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 380 insertions(+), 101 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 1c6862b..f473abd 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.*; @@ -133,14 +131,14 @@ tQuote.setUserId(demandDto.getUserId()); quoteService.insert(tQuote); -// List<TUserFeeSetting> tUserFeeSettings=null; -// //获取当前用户的sale -// Integer userId = demandDto.getUserId(); + 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())); -// + tUserFeeSettings = userFeeSettingService.selectList(new EntityWrapper<TUserFeeSetting>().eq("user_id",userId).isNotNull("fee").gt("fee",0)); + // } @@ -224,7 +222,6 @@ 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()); @@ -264,18 +261,37 @@ List<GoodsDto> list = goodsListDto.getList(); ArrayList<TGoods> tGoods1 = new ArrayList<>(); + objects = new ArrayList<>(); + Long orderId= null; for (GoodsDto goodsDto : list) { + tPrices = new ArrayList<>(); + objects = new ArrayList<>(); TCompanyResp tCompanyResp = new TCompanyResp(); if("0".equals(demandDto.getWarehouse())){ tCompanyResp=new 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; +// breakNum=1; +// count++; +// break; }else { tCompanyResp.setName(demandDto.getDelivery()); - tCompanyResp.setPrice(feeSetting.getSetValue()); + 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); } @@ -283,33 +299,69 @@ 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(address1 ); + 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 @@ -319,7 +371,23 @@ 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 { @@ -338,7 +406,20 @@ 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 { @@ -353,37 +434,57 @@ 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); +// 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)); - arg2=tWarehouse.getCity(); + if(tWarehouse==null){ + breakNum=1; + count++; + break; + } + arg2=tWarehouse.getZipCode(); }else { - arg2 = AddressLookup.getAddress(demandDto.getZipCode()); + arg2 = demandDto.getZipCode(); } -// DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(tPort.getAddress(), arg2); -// String arg3=String.valueOf(distancematrix.getDistance()); -// String arg4= demandDto.getList().get(0).getShippingLine(); -// String arg5 = demandDto.getType(); -// GoodsDto goodsDto1 = demandDto.getList().get(0).getList().get(0); -// String arg6 =goodsDto1.getType(); -// String arg7="None"; -// String arg8 = goodsDto1.getKg(); -// BigDecimal days = new BigDecimal(ChassisRentalDaysUtil.chassisRentalDays(1, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)); - if(between==0){ - between=1; - } + 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){ @@ -393,7 +494,20 @@ }else { tCompanyResp=new TCompanyResp(); tCompanyResp.setName(UserFeeSettingEnum.OVERWEIGHT.getDesc()); - tCompanyResp.setPrice(feeSetting.getSetValue()); + 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")); @@ -404,8 +518,21 @@ }else { tCompanyResp=new TCompanyResp(); tCompanyResp.setName(UserFeeSettingEnum.CHASSIS_FEE.getDesc()); -// tCompanyResp.setPrice(feeSetting1.getSetValue().multiply(days)); - tCompanyResp.setPrice(feeSetting1.getSetValue().multiply(new BigDecimal(between))); + 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 { @@ -417,8 +544,23 @@ count++; break; }else { -// tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); - tCompanyResp.setPrice(feeSetting.getSetValue().multiply(new BigDecimal(between))); + 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); } @@ -431,9 +573,21 @@ tCompanyResp.setName(UserFeeSettingEnum.PREPULL.getDesc()); tCompanyResp.setPrice(new BigDecimal(0)); }else { - BigDecimal setValue = feeSetting.getSetValue(); + 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()); - tCompanyResp.setPrice(setValue); } // BigDecimal setValue = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id",ratesId).eq("set_name", UserFeeSettingEnum.PREPULL.getDesc())).getSetValue(); @@ -443,34 +597,91 @@ 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()); +// 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(3, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)); -// TCompanyFeeSetting storage = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("rates_id", ratesId).eq("set_name", UserFeeSettingEnum.STORAGE.getDesc())); -// if(storage!=null){ -// tCompanyResp.setName(UserFeeSettingEnum.STORAGE.getDesc()); -// tCompanyResp.setPrice(feeSetting.getSetValue().multiply(days)); -// }else { -// tCompanyResp.setName(UserFeeSettingEnum.STORAGE.getDesc()); -// tCompanyResp.setPrice(new BigDecimal(0)); -// } + 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()); +// 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; @@ -485,7 +696,23 @@ 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()); - tCompanyResp.setPrice(feeSetting1.getSetValue()); + + + 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; @@ -500,7 +727,20 @@ 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()); - tCompanyResp.setPrice(feeSetting1.getSetValue()); + 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; @@ -514,7 +754,20 @@ 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()); - tCompanyResp.setPrice(feeSetting1.getSetValue()); + 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; @@ -549,7 +802,7 @@ tOrder.setType(demandDto.getType()); tOrder.setZipCode(demandDto.getZipCode()); if("0".equals(demandDto.getWarehouse())){ - tOrder.seteAddress(demandDto.getZipCode()); + 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()); @@ -565,7 +818,7 @@ 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()); @@ -577,6 +830,24 @@ 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); + } } if(tGoods1.size()>0){ @@ -584,21 +855,7 @@ } - String randomNumber = ToolUtil.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); - } - if(tPrices.size()>0){ - priceService.insertBatch(tPrices); - } + } tCompanyCalculationResp.setOrderList(tOrders); @@ -679,7 +936,11 @@ } + private String getStr(String str){ + if(str==null){ + return null; + } String s = ""; String[] split = str.split(","); if(split.length==1){ @@ -691,7 +952,7 @@ } }else { for (int i = 0; i < split.length; i++) { - if(!split[i].equals("CTF")&&!split[i].equals("URGENT FEE") && !split[i].equals("CTF")){ + if(!split[i].equals("CTF")&&!split[i].equals("URGENT FEE") && !split[i].equals("PIPERPASS")){ if(i==split.length-1){ s+=split[i]; }else { @@ -775,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); @@ -785,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) { @@ -797,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); -- Gitblit v1.7.1