| | |
| | | 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; |
| | |
| | | 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.*; |
| | |
| | | @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); |
| | |
| | | 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(); |
| | |
| | | } |
| | | |
| | | 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>() |
| | |
| | | |
| | | 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集合 |
| | |
| | | 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()); |
| | | |
| | |
| | | // 没有满足公司 |
| | | 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<>(); |
| | | // 超重 价格 |
| | |
| | | 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 |
| | |
| | | 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 { |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | 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()); |
| | |
| | | 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); |
| | |
| | | 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"; |
| | |
| | | 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="发布需求-第二步/修改需求") |
| | |
| | | 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); |
| | |
| | | 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) { |
| | |
| | | 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); |
| | | |
| | |
| | | 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); |
| | | |