package com.stylefeng.guns.modular.system.controller;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.date.DateUnit;
|
import cn.hutool.core.date.DateUtil;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.stylefeng.guns.core.base.controller.BaseController;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
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.ExcelUtil;
|
import com.stylefeng.guns.modular.system.utils.GoogleMap.DistancematrixVo;
|
import com.stylefeng.guns.modular.system.utils.GoogleMap.GeocodeVo;
|
import com.stylefeng.guns.modular.system.utils.GoogleMap.GoogleMapUtil;
|
import com.stylefeng.guns.modular.system.utils.UserInfoUtil;
|
import com.stylefeng.guns.modular.system.utils.tips.ErrorTip;
|
import com.stylefeng.guns.modular.system.utils.tips.SuccessTip;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.OutputStream;
|
import java.math.BigDecimal;
|
import java.text.DateFormat;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* 控制器
|
*
|
* @author fengshuonan
|
* @Date 2022-12-28 09:33:09
|
*/
|
@Controller
|
@Api(tags = "主页")
|
@RequestMapping("/api/demand")
|
public class DemandController extends BaseController {
|
|
@Autowired
|
private ITOrderService orderService;
|
|
@Autowired
|
private ITCountryService service;
|
|
@Autowired
|
private ITPortService itPortService;
|
|
@Autowired
|
private IWarehouseService warehouseService;
|
|
@Autowired
|
private GoogleMapUtil googleMapUtil;
|
|
@Autowired
|
private ITCompanyServiceService tCompanyServiceService;
|
@Autowired
|
private ITCompanyService tCompanyService;
|
|
@Autowired
|
private ITCompanyBasicService companyBasicService;
|
|
@Autowired
|
private ITCompanyFeeSettingService companyFeeSettingService;
|
|
@Autowired
|
private ITPortService portService;
|
|
@Autowired
|
private ITQuoteService quoteService;
|
|
@Autowired
|
private ITGoodsService goodsService;
|
|
@Autowired
|
private ITRatesService ratesService;
|
|
@Autowired
|
private ITCountryService countryService;
|
|
@Autowired
|
private ITCompanyService companyService;
|
|
@Autowired
|
private ITPriceService priceService;
|
|
@Autowired
|
private ITUserService userService;
|
|
@Autowired
|
private ITGroupService groupService;
|
|
@Autowired
|
private ITUserFeeSettingService userFeeSettingService;
|
|
|
@ApiOperation(value = "发布需求-第一步",notes="发布需求-第一步")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
})
|
@PostMapping(value = "/addDemand")
|
@ResponseBody
|
public Object addDemand(@RequestBody DemandDto demandDto) throws Exception {
|
Integer id = UserInfoUtil.getId();
|
String s1 = System.currentTimeMillis() + ToolUtil.getRandomString(5);
|
String s2 = System.currentTimeMillis() + ToolUtil.getRandomString(5);
|
// 生成需求
|
TQuote tQuote = new TQuote();
|
tQuote.setCreateTime(new Date());
|
tQuote.setOrderId(s1);
|
// 总重量
|
tQuote.setTotal(demandDto.getTotal());
|
tQuote.setState(0);
|
tQuote.setUserId(demandDto.getUserId());
|
tQuote.setCreateId(id);
|
quoteService.insert(tQuote);
|
|
List<TUserFeeSetting> tUserFeeSettings=null;
|
//获取当前用户的sale
|
Integer userId = demandDto.getUserId();
|
TUser tUser = userService.selectById(userId);
|
if(tUser.getGroupId()!=null){
|
TGroup tGroup = groupService.selectById(tUser.getGroupId());
|
tUserFeeSettings = userFeeSettingService.selectList(new EntityWrapper<TUserFeeSetting>().eq("user_id",tGroup.getSalesId()));
|
|
}
|
|
|
String accessorialStr = demandDto.getAccessorialStr();
|
String[] split = accessorialStr.split(",");
|
Map<String,String> map = new HashMap<>(split.length);
|
for (String s :split){
|
map.put(s,s);
|
}
|
|
List<TCompanyService> companyServiceList = new ArrayList<>();
|
//
|
for (Map.Entry<String, String> entry : map.entrySet()) {
|
companyServiceList.addAll(tCompanyServiceService.selectList(new EntityWrapper<TCompanyService>()
|
.eq("service_name", entry.getKey()).ne("service_value", 0)));
|
}
|
|
// TODO size 是否包含 收费 收费站、收费基础
|
|
// 根据公司id去重
|
List<TCompanyService> companyServices = companyServiceList.stream().collect(Collectors.
|
collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(TCompanyService::getCompanyId))),ArrayList::new));
|
// 拿出符合规则的公司id
|
List<Integer> companyIds = companyServices.stream().map(TCompanyService::getCompanyId).collect(Collectors.toList());
|
|
List<TCompany> tCompanyList = new ArrayList<>();
|
for (Integer companyId : companyIds) {
|
List<TCompanyService> collect = companyServiceList.stream().filter(company -> company.getCompanyId().equals(companyId)).collect(Collectors.toList());
|
if(map.size() == collect.size()){
|
// 找出符合规则的公司
|
TCompany company = tCompanyService.selectOne(new EntityWrapper<TCompany>().eq("status", 1)
|
.eq("id",companyId));
|
if(Objects.nonNull(company)){
|
tCompanyList.add(company);
|
}
|
}
|
}
|
|
// 符合规则的公司id集合
|
List<Integer> companyIdList = tCompanyList.stream().map(TCompany::getId).collect(Collectors.toList());
|
|
HashSet<Integer> set = new HashSet<>();
|
|
// 找出目前公司是否符合添加的码头
|
// 看当前码头是否为特殊码头
|
// 找出当前码头所在的cityid
|
TPort tPort1 = portService.selectById(demandDto.getPortId());
|
TCountry tCountry = countryService.selectById(tPort1.getCity());
|
List<Integer> integers = Arrays.asList(demandDto.getPortId(), tCountry.getId());
|
List<TRates> tRates = ratesService.selectList(new EntityWrapper<TRates>().in("metro_id", integers));
|
// 满足码头的公司
|
companyIdList.stream().forEach(t->{
|
for (TRates tRate : tRates) {
|
if(tRate.getCompanyId().equals(t)){
|
set.add(t);
|
}
|
}
|
});
|
|
Integer portId = demandDto.getPortId();
|
TPort tPort = itPortService.selectById(portId);
|
String address = tPort.getAddress();
|
// GeocodeVo geocode = googleMapUtil.getGeocode(address);
|
|
List<TCompanyCalculationResp> tCompanyCalculationRespList = new ArrayList<>(tCompanyList.size());
|
|
|
// 没有满足公司
|
if(CollectionUtils.isEmpty(set)){
|
quoteService.deleteById(tQuote.getId());
|
return new ErrorTip(5001,"No truck company was matched to meet the demand");
|
}else {
|
for (TCompany company : tCompanyList) {
|
TCompanyCalculationResp tCompanyCalculationResp = new TCompanyCalculationResp();
|
ArrayList<TOrder> tOrders = new ArrayList<>();
|
// 超重 价格
|
ArrayList<TCompanyResp> objects = new ArrayList<>();
|
List<GoodsListDto> list1 = demandDto.getList();
|
// 判断是否特殊码头
|
TRates tRates1 = ratesService.selectOne(new EntityWrapper<TRates>().eq("metro_id", demandDto.getPortId()).eq("type", 2).eq("company_id", company.getId()));
|
int ratesId=0;
|
if(tRates1!=null){
|
ratesId=tRates1.getId();
|
}else {
|
ratesId=tCountry.getId();
|
}
|
|
for (GoodsListDto goodsListDto : list1) {
|
ArrayList<TPrice> tPrices = new ArrayList<>();
|
// 生成订单
|
TOrder tOrder = new TOrder();
|
tOrder.setUserId(demandDto.getUserId());
|
tOrder.setAccessorial(demandDto.getAccessorial());
|
tOrder.setAccessorialStr(demandDto.getAccessorialStr());
|
tOrder.setPort(demandDto.getPortId());
|
tOrder.setShipmentDate(demandDto.getShipmentDate());
|
tOrder.setDeliveryDate(demandDto.getDeliveryDate());
|
tOrder.seteZipZ(s1);
|
tOrder.setCreateTime(new Date());
|
tOrder.setStartLat("1");
|
tOrder.setStartLon("1");
|
tOrder.setDeliveryStr(demandDto.getDelivery());
|
tOrder.setType(demandDto.getType());
|
tOrder.setZipCode(demandDto.getZipCode());
|
tOrder.setWarehouse(demandDto.getWarehouse());
|
tOrder.setStatus("0");
|
tOrder.setInvoiceNumber(s2);
|
tOrder.setCompanyId(company.getId());
|
tOrder.setCreateTime(new Date());
|
orderService.insert(tOrder);
|
tOrders.add(tOrder);
|
|
List<GoodsDto> list = goodsListDto.getList();
|
ArrayList<TGoods> tGoods1 = new ArrayList<>();
|
for (GoodsDto goodsDto : list) {
|
TGoods tGoods = new TGoods();
|
tGoods.setShippingLine(goodsListDto.getShippingLine());
|
tGoods.setDanger(goodsListDto.getDanger());
|
tGoods.setKg(goodsDto.getKg());
|
tGoods.setOrderId(tOrder.getId());
|
tGoods.setSize(goodsDto.getSize());
|
tGoods.setType(goodsDto.getType());
|
tGoods.setWeight(goodsListDto.getWeight());
|
tGoods.setTypeClass(goodsDto.getTypeClass());
|
tGoods1.add(tGoods);
|
}
|
goodsService.insertBatch(tGoods1);
|
|
TCompanyResp tCompanyResp = new TCompanyResp();
|
// 是否超重
|
Integer weight = goodsListDto.getWeight();
|
long between = DateUtil.between(demandDto.getShipmentDate(), demandDto.getDeliveryDate(), DateUnit.DAY);
|
if(between==0){
|
between=1;
|
}
|
if(weight==1){
|
TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.OVERWEIGHT.getDesc()));
|
tCompanyResp.setName(UserFeeSettingEnum.OVERWEIGHT.getDesc());
|
tCompanyResp.setPrice(feeSetting.getSetValue());
|
objects.add(tCompanyResp);
|
TCompanyFeeSetting feeSetting1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", "trl-axle chassis"));
|
tCompanyResp=new TCompanyResp();
|
tCompanyResp.setName(UserFeeSettingEnum.CHASSIS_FEE.getDesc());
|
tCompanyResp.setPrice(feeSetting1.getSetValue().multiply(new BigDecimal(between)));
|
objects.add(tCompanyResp);
|
}else {
|
tCompanyResp=new TCompanyResp();
|
tCompanyResp.setName(UserFeeSettingEnum.CHASSIS_FEE.getDesc());
|
TCompanyFeeSetting feeSetting = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", "Pool chassis"));
|
|
tCompanyResp.setPrice(feeSetting.getSetValue().multiply(new BigDecimal(between)));
|
objects.add(tCompanyResp);
|
}
|
// type
|
if ("Live Unload".equals(demandDto.getType())) {
|
// 计算当前公司的价格
|
tCompanyResp=new TCompanyResp();
|
BigDecimal setValue = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.PREPULL.getDesc())).getSetValue();
|
tCompanyResp.setName(UserFeeSettingEnum.PREPULL.getDesc());
|
tCompanyResp.setPrice(setValue);
|
objects.add(tCompanyResp);
|
}
|
// 滞留费
|
tCompanyResp=new TCompanyResp();
|
BigDecimal setValue = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.DETENTION_CONGESTION.getDesc())).getSetValue();
|
tCompanyResp.setName(UserFeeSettingEnum.DETENTION_CONGESTION.getDesc());
|
tCompanyResp.setPrice(setValue);
|
objects.add(tCompanyResp);
|
|
if(goodsListDto.getDanger()==1){
|
tCompanyResp=new TCompanyResp();
|
BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.HAZMAT.getDesc())).getSetValue();
|
tCompanyResp.setName(UserFeeSettingEnum.HAZMAT.getDesc());
|
tCompanyResp.setPrice(setValue1);
|
objects.add(tCompanyResp);
|
}
|
if(demandDto.getUrgent()==1){
|
tCompanyResp=new TCompanyResp();
|
BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.URGENT_SEE.getDesc())).getSetValue();
|
tCompanyResp.setName(UserFeeSettingEnum.URGENT_SEE.getDesc());
|
tCompanyResp.setPrice(setValue1);
|
objects.add(tCompanyResp);
|
}
|
if(demandDto.getPiperpass()==1){
|
tCompanyResp=new TCompanyResp();
|
BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.PIERPASS.getDesc())).getSetValue();
|
tCompanyResp.setName(UserFeeSettingEnum.PIERPASS.getDesc());
|
tCompanyResp.setPrice(setValue1);
|
objects.add(tCompanyResp);
|
}
|
if(demandDto.getCTF()==1){
|
tCompanyResp=new TCompanyResp();
|
BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", UserFeeSettingEnum.CTF.getDesc())).getSetValue();
|
tCompanyResp.setName(UserFeeSettingEnum.CTF.getDesc());
|
tCompanyResp.setPrice(setValue1);
|
objects.add(tCompanyResp);
|
}
|
|
|
if("0".equals(demandDto.getWarehouse())){
|
tCompanyResp=new TCompanyResp();
|
BigDecimal setValue1 = companyFeeSettingService.selectOne(new EntityWrapper<TCompanyFeeSetting>().eq("company_id", company.getId()).eq("set_name", demandDto.getDelivery())).getSetValue();
|
tCompanyResp.setName(demandDto.getDelivery());
|
tCompanyResp.setPrice(setValue1);
|
objects.add(tCompanyResp);
|
|
// 基础价格
|
String zipCode = demandDto.getZipCode();
|
TCompanyBasic tCompanyBasic = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("port_id",ratesId).eq("zip_code", zipCode).eq("type", 1));
|
if(Objects.nonNull(tCompanyBasic)){
|
tCompanyResp=new TCompanyResp();
|
tCompanyResp.setPrice(tCompanyBasic.getFee());
|
tCompanyResp.setName("LH+FSC");
|
objects.add(tCompanyResp);
|
}else {
|
// 画圈 拿到的zipcode集合 去对比当前zipcode是否在集合中
|
TCompanyBasic type = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("type", 2).eq("port_id",ratesId).like("zip_code", zipCode));
|
if(Objects.nonNull(type)){
|
tCompanyResp=new TCompanyResp();
|
tCompanyResp.setPrice(type.getFee());
|
tCompanyResp.setName("LH+FSC");
|
objects.add(tCompanyResp);
|
}else {
|
tCompanyResp=new TCompanyResp();
|
// 1条数据 不需要zipcode
|
TCompanyBasic type1 = companyBasicService.selectOne(new EntityWrapper<TCompanyBasic>().eq("type", 3).eq("port_id",ratesId));
|
DistancematrixVo distancematrix = googleMapUtil.getDistancematrix(address, type1.getAddress());
|
double distance = distancematrix.getDistance().doubleValue();
|
BigDecimal bigDecimal = new BigDecimal(distance * 0.0006214);
|
BigDecimal multiply = type1.getFee().multiply(bigDecimal);
|
tCompanyResp.setPrice(multiply);
|
tCompanyResp.setName("LH+FSC");
|
objects.add(tCompanyResp);
|
}
|
}
|
|
}else {
|
tCompanyResp=new TCompanyResp();
|
TWarehouse tWarehouse = warehouseService.selectOne(new EntityWrapper<TWarehouse>().eq("company_id", company.getId()).eq("code", demandDto.getWarehouse()).eq("port_id",ratesId));
|
tCompanyResp.setName(UserFeeSettingEnum.LH_FSH.getDesc());
|
if(Objects.nonNull(tWarehouse)){
|
tCompanyResp.setPrice(tWarehouse.getWarePrice());
|
}else {
|
tCompanyResp.setPrice(new BigDecimal("0"));
|
}
|
objects.add(tCompanyResp);
|
}
|
BigDecimal bigDecimal = objects.stream().map(e -> e.getPrice()).reduce(BigDecimal::add).get();
|
tOrder.setAllTotal(bigDecimal);
|
orderService.updateById(tOrder);
|
objects.stream().forEach(e->e.setOrderId(tOrder.getId()));
|
|
for (TCompanyResp object : objects) {
|
TPrice tPrice = new TPrice();
|
tPrice.setCreateTime(new Date());
|
tPrice.setOrderId(object.getOrderId());
|
tPrice.setState("1");
|
tPrice.setPrice(object.getPrice());
|
tPrice.setType(object.getName());
|
tPrices.add(tPrice);
|
}
|
priceService.insertBatch(tPrices);
|
}
|
|
tCompanyCalculationResp.setOrderList(tOrders);
|
|
|
// if(CollectionUtil.isNotEmpty(tUserFeeSettings)){
|
// for (TCompanyResp object : objects) {
|
// TPrice tPrice = new TPrice();
|
// tPrice.setCreateTime(new Date());
|
// tPrice.setOrderId(object.getOrderId());
|
// tPrice.setState("1");
|
// tPrice.setPrice(object.getPrice());
|
// tPrice.setType(object.getName());
|
// tPrices.add(tPrice);
|
// for (TUserFeeSetting tUserFeeSetting : tUserFeeSettings) {
|
// if(object.getName().equals(tUserFeeSetting.getName())){
|
// double i = (double)tUserFeeSetting.getFee() / 100;
|
// BigDecimal multiply = object.getPrice().multiply(new BigDecimal(i));
|
// }
|
// }
|
// }
|
// }else {
|
// for (TCompanyResp object : objects) {
|
// TPrice tPrice = new TPrice();
|
// tPrice.setCreateTime(new Date());
|
// tPrice.setOrderId(object.getOrderId());
|
// tPrice.setState("1");
|
// tPrice.setPrice(object.getPrice());
|
// tPrice.setType(object.getName());
|
// tPrices.add(tPrice);
|
//
|
// }
|
// }
|
// priceService.insertBatch(tPrices);
|
tCompanyCalculationResp.setList(objects);
|
tCompanyCalculationResp.setCarGoNumber(String.valueOf(company.getMcNumber()));
|
tCompanyCalculationResp.setCompanyId(company.getId());
|
tCompanyCalculationResp.setCompanyName(company.getName());
|
tCompanyCalculationResp.setImg(company.getHeadImg());
|
tCompanyCalculationResp.setExpirationDate(company.getExpirationTime());
|
|
// 起点经纬度
|
tCompanyCalculationResp.setStartLon(String.valueOf(1));
|
tCompanyCalculationResp.setStartLat(String.valueOf(1));
|
|
|
// 目的地经纬度
|
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));
|
GeocodeVo geocode1 = googleMapUtil.getGeocode(tWarehouse.getAddress());
|
tCompanyCalculationResp.setEndLon(String.valueOf(geocode1.getLng()));
|
tCompanyCalculationResp.setEndLat(String.valueOf(geocode1.getLat()));
|
tCompanyCalculationRespList.add(tCompanyCalculationResp);
|
}else {
|
// TODO
|
String zipCode = demandDto.getZipCode();
|
// GeocodeVo geocode1 = googleMapUtil.getGeocode(zipCode);
|
tCompanyCalculationResp.setEndLon(String.valueOf(1));
|
tCompanyCalculationResp.setEndLat(String.valueOf(1));
|
tCompanyCalculationRespList.add(tCompanyCalculationResp);
|
}
|
|
|
}
|
|
}
|
for (TCompanyCalculationResp tCompanyCalculationResp : tCompanyCalculationRespList) {
|
tCompanyCalculationResp.setQuoteId(tQuote.getId());
|
}
|
return new SuccessTip(tCompanyCalculationRespList);
|
}
|
|
@ApiOperation(value = "发布需求-第二步/修改需求",notes="发布需求-第二步/修改需求")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
})
|
@PostMapping(value = "/updateDemandTwo")
|
@ResponseBody
|
public Object updateDemandTwo(@RequestBody DemandTwoDto demandDtoTwo) {
|
Set<Long> integers = new HashSet<>();
|
for (DemandDtoTwo dtoTwo : demandDtoTwo.getDemandDtoTwo()) {
|
List<TGoods> list = dtoTwo.getList();
|
for (TGoods tGoods : list) {
|
integers.add(tGoods.getOrderId());
|
}
|
goodsService.updateBatchById(list);
|
}
|
List<TOrder> orders = new ArrayList<>();
|
for (DemandDtoTwo dtoTwo : demandDtoTwo.getDemandDtoTwo()) {
|
TOrder tOrder = new TOrder();
|
BeanUtil.copyProperties(dtoTwo,tOrder);
|
orders.add(tOrder);
|
}
|
List<TUserFeeSetting> tUserFeeSettings =null;
|
Long next = integers.iterator().next();
|
TOrder tOrder1 = orderService.selectById(next);
|
Integer userId = tOrder1.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()));
|
}
|
|
for (Long order : integers) {
|
TOrder tOrder = orderService.selectById(order);
|
String s = tOrder.geteZipZ();
|
TQuote quote = quoteService.selectOne(new EntityWrapper<TQuote>().eq("order_id", s));
|
quote.setState(1);
|
quoteService.updateById(quote);
|
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);
|
bigDecimal = bigDecimal.add(subtract);
|
}else {
|
bigDecimal = bigDecimal.add(price.getPrice());
|
}
|
}
|
}
|
}
|
tOrder.setPayMoney(bigDecimal);
|
orderService.updateById(tOrder);
|
|
|
|
|
|
|
}
|
return new SuccessTip();
|
}
|
|
@ApiOperation(value = "发布需求-第二步-通过订单id查询货物",notes="发布需求-第二步-通过订单id查询货物")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
})
|
@PostMapping(value = "/queryDemandTwo")
|
@ResponseBody
|
public Object queryDemandTwo(@RequestBody String ids) {
|
List<String> strings = Arrays.asList(ids.split(","));
|
|
List<TGoods> goods = goodsService.selectList(new EntityWrapper<TGoods>().in("order_id", strings));
|
return new SuccessTip(goods);
|
|
}
|
|
@ApiOperation(value = "需求列表",notes="需求列表")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
})
|
@PostMapping(value = "/queryDemandList")
|
@ResponseBody
|
public Object queryDemandList( @RequestBody QueryDemandListDto queryDemandListDto ) {
|
Page<DemandListVo> objectPage = new Page<>(queryDemandListDto.getPageNumber(),queryDemandListDto.getPageSize());
|
List<DemandListVo> list = new ArrayList<>();
|
list = quoteService.queryDemandList(objectPage,queryDemandListDto.getTime(),queryDemandListDto.getState(),queryDemandListDto.getUserId(),queryDemandListDto.getAccount());
|
objectPage.setRecords(list);
|
return new SuccessTip(objectPage);
|
}
|
|
@ApiOperation(value = "需求列表导出",notes="需求列表导出")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
})
|
@GetMapping(value = "/demandListExport")
|
@ResponseBody
|
public Object demandListExport( String time,Integer state,Integer userId,String account, HttpServletResponse response ) {
|
List<DemandListVo> list = new ArrayList<>();
|
list = quoteService.queryDemandListExport(time,state,userId,account);
|
try {
|
Date date = new Date();
|
DateFormat format = new SimpleDateFormat("yyyyMMdd");
|
String time1 = format.format(date);
|
String fileName = "Quote"+time1+".xls";
|
String[] title = new String[] {"ID","CUSTOMER","PICKUP DATE","ORIGIN","DESTINATION",
|
"LOAD","STATE"};
|
String[][] values = new String[list.size()][];
|
for (int i = 0; i < list.size(); i++) {
|
DemandListVo d = list.get(i);
|
values[i] = new String[title.length];
|
values[i][0] = d.getId().toString();
|
values[i][1] = d.getUserCompanyName()+"、"+d.getUserId();
|
values[i][2] = d.getPickupDate()==null?"":d.getPickupDate().toString();
|
values[i][3] = d.getOrigin();
|
values[i][4] = d.getDestination();
|
values[i][5] = d.getWeight();
|
values[i][6] = d.getState()==0?"In quotation":(d.getState()==1?"Pending payment":"canceled");
|
}
|
HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Quote"+time1, title, values, null);
|
this.setResponseHeader(response, fileName);
|
OutputStream os = response.getOutputStream();
|
wb.write(os);
|
os.flush();
|
os.close();
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
return new ErrorTip(5001,"ERROR");
|
}
|
return SUCCESS_TIP;
|
|
|
}
|
|
private void setResponseHeader(HttpServletResponse response, String fileName) {
|
try {
|
/*try {
|
fileName = new String(fileName.getBytes(), "UTF-8");
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
}*/
|
response.setContentType("application/octet-stream;charset=UTF-8");
|
response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(),"iso-8859-1"));
|
response.addHeader("Pargam", "no-cache");
|
response.addHeader("Cache-Control", "no-cache");
|
} catch (Exception ex) {
|
ex.printStackTrace();
|
}
|
}
|
|
@ApiOperation(value = "删除需求",notes="删除需求")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(name = "id", value = "需求id", required = true, dataType = "Long"),
|
})
|
@PostMapping(value = "/deleteDemand")
|
@ResponseBody
|
public Object deleteDemand( Long id ) {
|
TQuote tQuote = quoteService.selectById(id);
|
tQuote.setState(3);
|
quoteService.updateById(tQuote);
|
return new SuccessTip();
|
}
|
|
|
|
@ApiOperation(value = "获取state",notes="获取state")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(name = "name", value = "state name", required = false, dataType = "String"),
|
})
|
@GetMapping(value = "/getState")
|
@ResponseBody
|
public Object getState( String name) {
|
EntityWrapper<TCountry> tCountryEntityWrapper = new EntityWrapper<>();
|
tCountryEntityWrapper.eq("type",2).eq("remove",0);
|
if(Objects.nonNull(name)){
|
tCountryEntityWrapper.like("name",name);
|
}
|
List<TCountry> tCountries = service.selectList(tCountryEntityWrapper);
|
return new SuccessTip(tCountries);
|
}
|
|
@ApiOperation(value = "获取city",notes="获取city")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(name = "name", value = "city name", required = false, dataType = "String"),
|
@ApiImplicitParam(name = "id", value = "state id", required = true, dataType = "String"),
|
})
|
@GetMapping(value = "/getCity")
|
@ResponseBody
|
public Object getState( String name,Integer id) {
|
EntityWrapper<TCountry> tCountryEntityWrapper = new EntityWrapper<>();
|
tCountryEntityWrapper.eq("type",3).eq("remove",0).eq("parent_id",id);
|
if(Objects.nonNull(name)){
|
tCountryEntityWrapper.like("name",name);
|
}
|
List<TCountry> tCountries = service.selectList(tCountryEntityWrapper);
|
return new SuccessTip(tCountries);
|
}
|
|
|
@ApiOperation(value = "获取port",notes="获取port")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(name = "name", value = "port name", required = false, dataType = "String"),
|
@ApiImplicitParam(name = "id", value = "city id", required = true, dataType = "String"),
|
})
|
@GetMapping(value = "/getPort")
|
@ResponseBody
|
public Object getPort( String name,Integer id) {
|
EntityWrapper<TPort> wrapper = new EntityWrapper<>();
|
wrapper.eq("remove",0).eq("city",id);
|
if(Objects.nonNull(name)){
|
wrapper.like("name",name);
|
}
|
List<TPort> tCountries = itPortService.selectList(wrapper);
|
return new SuccessTip(tCountries);
|
}
|
|
|
@ApiOperation(value = "获取亚马逊仓库",notes="获取亚马逊仓库")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(name = "address", value = "address", required = false, dataType = "String"),
|
@ApiImplicitParam(name = "pageNumber", value = "pageNumber", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "String"),
|
})
|
@GetMapping(value = "/getWarehouse")
|
@ResponseBody
|
public Object getWarehouse( String address,int pageNumber,int pageSize) {
|
Page<TWarehouse> tWarehousePage = new Page<>(pageNumber, pageSize);
|
|
EntityWrapper<TWarehouse> tWarehouseEntityWrapper = new EntityWrapper<>();
|
tWarehouseEntityWrapper.eq("company_id",1);
|
if(Objects.nonNull(address)){
|
tWarehouseEntityWrapper.like("address",address);
|
}
|
Page<TWarehouse> tWarehousePage1 = warehouseService.selectPage(tWarehousePage, tWarehouseEntityWrapper);
|
|
return new SuccessTip(tWarehousePage1);
|
}
|
|
@ApiOperation(value = "获取服务",notes="获取服务")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
})
|
@GetMapping(value = "/getServices")
|
@ResponseBody
|
public Object getServices() {
|
List<TCompanyService> companyServiceList = tCompanyServiceService.selectList(new EntityWrapper<TCompanyService>().eq("company_id", 2));
|
return new SuccessTip(companyServiceList);
|
}
|
|
@ApiOperation(value = "根据需求id获取需求",notes="根据需求id获取需求")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(name = "id", value = "需求id", required = true, dataType = "Long"),
|
})
|
@GetMapping(value = "/getQuotaFromId")
|
@ResponseBody
|
public Object getQuotaFromId(Long id) {
|
TCompanyCalculationRespOne list =tCompanyService.getQuotaFromId(id);
|
return new SuccessTip(list);
|
}
|
|
|
@ApiOperation(value = "根据需求id获取需求-选择公司",notes="根据需求id获取需求-选择公司")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(name = "id", value = "需求id", required = true, dataType = "Long"),
|
@ApiImplicitParam(name = "companyId", value = "companyId", required = true, dataType = "int"),
|
})
|
@GetMapping(value = "/getQuotaFromIdAndCompanyId")
|
@ResponseBody
|
public Object getQuotaFromIdAndCompanyId(Long id,Integer companyId) {
|
TCompanyCalculationRespOne list =tCompanyService.getQuotaFromIdAndCompanyId(id,companyId);
|
return new SuccessTip(list);
|
}
|
|
|
}
|