发货相关更新
This commit is contained in:
@@ -637,6 +637,12 @@ public class BuyOrderController {
|
||||
|
||||
}
|
||||
|
||||
@RequestMapping("/mytest")
|
||||
public R mytest() throws IOException {
|
||||
String mytest = buyOrderService.mytest();
|
||||
return R.ok().put("url",mytest);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品实际价格
|
||||
*
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.peanut.modules.book.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -8,6 +9,7 @@ import com.peanut.modules.book.entity.ExpressCompany;
|
||||
import com.peanut.modules.book.entity.ExpressOrder;
|
||||
import com.peanut.modules.book.service.ExpressCompanyService;
|
||||
import com.peanut.modules.book.service.ExpressOrderService;
|
||||
import com.peanut.modules.book.to.ExpressPrintDto;
|
||||
import com.peanut.modules.book.vo.ExpressCompanyVo;
|
||||
import com.peanut.modules.book.vo.response.PrintTemplateVo;
|
||||
import io.swagger.models.auth.In;
|
||||
@@ -45,6 +47,26 @@ public class ExpressController {
|
||||
return R.ok().put("result", expressCompanyList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取面单列表
|
||||
* @param expressPrintDto
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/getExpressPrints")
|
||||
public R getExpressPrints(@RequestBody ExpressPrintDto expressPrintDto){
|
||||
LambdaQueryWrapper<ExpressOrder> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(expressPrintDto.getExpressOrderSn()!=null,ExpressOrder::getExpressOrderSn,expressPrintDto.getExpressOrderSn());
|
||||
if(expressPrintDto.getDate()!=null){
|
||||
String startDate = expressPrintDto.getDate()+" 00:00:00";
|
||||
String endDate = expressPrintDto.getDate()+" 23:59:59";
|
||||
wrapper.between(ExpressOrder::getCreateTime,startDate,endDate);
|
||||
}
|
||||
wrapper.eq(expressPrintDto.getType()!=0,ExpressOrder::getTemplatePrinted,expressPrintDto.getType()==1?1:0);
|
||||
wrapper.orderByDesc(ExpressOrder::getCreateTime);
|
||||
Page<ExpressOrder> expressOrderPage = expressOrderService.getBaseMapper().selectPage(new Page<>(expressPrintDto.getPage(), expressPrintDto.getLimit()), wrapper);
|
||||
return R.ok().put("page",expressOrderPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取快递面单列表
|
||||
*
|
||||
|
||||
@@ -27,7 +27,7 @@ public class ExpressOrder {
|
||||
/**
|
||||
* 订单Sn
|
||||
*/
|
||||
// private String orderSn;
|
||||
private String orderSn;
|
||||
/**
|
||||
* 省份
|
||||
*/
|
||||
@@ -85,6 +85,10 @@ public class ExpressOrder {
|
||||
* 快递单号
|
||||
*/
|
||||
private String expressOrderSn;
|
||||
/**
|
||||
* 是否已打印0未打印1已打印
|
||||
*/
|
||||
private Integer templatePrinted;
|
||||
/**
|
||||
* 面单模板
|
||||
*/
|
||||
|
||||
@@ -10,6 +10,8 @@ import com.peanut.modules.book.vo.UserOrderVo;
|
||||
import com.peanut.modules.book.vo.request.BuyOrderListRequestVo;
|
||||
import com.peanut.modules.book.vo.response.BuyOrderResponseVo;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -57,5 +59,5 @@ public interface BuyOrderService extends IService<BuyOrder> {
|
||||
|
||||
Map<String, Object> decomposeShipment(BuyOrderListRequestVo requestVo);
|
||||
|
||||
|
||||
String mytest() throws IOException;
|
||||
}
|
||||
@@ -21,12 +21,18 @@ import com.peanut.modules.book.vo.ExpressOrderResponseVo;
|
||||
import com.peanut.modules.book.vo.UserOrderVo;
|
||||
import com.peanut.modules.book.vo.request.BuyOrderListRequestVo;
|
||||
import com.peanut.modules.book.vo.response.*;
|
||||
import com.peanut.modules.oss.service.OssService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.security.Timestamp;
|
||||
@@ -65,6 +71,8 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
private CityService cityService;
|
||||
@Autowired
|
||||
private ExpressOrderDao expressOrderDao;
|
||||
@Autowired
|
||||
private OssService ossService;
|
||||
|
||||
protected Logger logger = LoggerFactory.getLogger(BuyOrderServiceImpl.class);
|
||||
|
||||
@@ -398,11 +406,11 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
ExpressCommodity commodity = new ExpressCommodity();
|
||||
commodity.setGoodsName(product.getProductName());
|
||||
commodity.setGoodsquantity(buyOrderProduct.getQuantity());
|
||||
commodity.setGoodsWeight(product.getWeight().doubleValue());
|
||||
commodity.setGoodsWeight((product.getWeight().doubleValue())/1000);
|
||||
totalWeight = totalWeight.add(
|
||||
BigDecimal.valueOf(product.getWeight().doubleValue()).multiply(new BigDecimal(buyOrderProduct.getQuantity()))
|
||||
BigDecimal.valueOf(product.getWeight().doubleValue()).multiply(new BigDecimal(buyOrderProduct.getQuantity())).divide(BigDecimal.valueOf(1000),2,RoundingMode.HALF_UP)
|
||||
);
|
||||
totalWeight = totalWeight.setScale(0, RoundingMode.UP);//对数值做增量舍
|
||||
// totalWeight = totalWeight.setScale(0, RoundingMode.UP);//对数值做增量舍,单位是g
|
||||
commodityList.add(commodity);
|
||||
}
|
||||
|
||||
@@ -410,17 +418,23 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
Integer orderId = buyOrderProductList.get(0).getOrderId();
|
||||
|
||||
BuyOrder buyOrder = getById(orderId);
|
||||
|
||||
// System.out.println(buyOrder);
|
||||
|
||||
QueryWrapper<County> countyQueryWrapper = new QueryWrapper<>();
|
||||
countyQueryWrapper.eq("county_name", buyOrder.getDistrict());
|
||||
County county = countyService.getOne(countyQueryWrapper);
|
||||
|
||||
|
||||
// 计算快递费用
|
||||
BigDecimal expressFee = expressFeeService.calculateExpressFee(expressCompanyCode, totalWeight, county.getRegionCode());
|
||||
|
||||
ExpressOrder expressOrder = new ExpressOrder();
|
||||
expressOrder.setExpressFee(expressFee);
|
||||
expressOrder.setCreateTime(new Date());
|
||||
expressOrder.setTotalWeight(totalWeight);
|
||||
expressOrder.setCommodity(commodityList);
|
||||
// expressOrder.setOrderSn(buyOrder.getOrderSn());
|
||||
expressOrder.setOrderSn(getOrderByOS(buyOrder.getOrderSn()));
|
||||
expressOrder.setExpressCompanyCode(expressCompanyCode);
|
||||
expressOrder.setConsigneeName(buyOrder.getShippingUser());
|
||||
expressOrder.setConsigneeMobile(buyOrder.getUserPhone());
|
||||
@@ -431,7 +445,9 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
// 生成快递面单
|
||||
ExpressOrderResponseVo response = expressOrderService.placeExpressOrder(expressOrder);
|
||||
String expressOrderSn = response.getOrder().getLogisticCode();
|
||||
String printTemplate = response.getPrintTemplate();
|
||||
// String printTemplate = response.getPrintTemplate();
|
||||
String printTemplate = pushHtmlToOss(response.getPrintTemplate(),expressOrderSn+".html");
|
||||
|
||||
expressOrder.setExpressOrderSn(expressOrderSn);
|
||||
expressOrder.setPrintTemplate(printTemplate);
|
||||
expressOrderDao.insert(expressOrder);
|
||||
@@ -458,6 +474,19 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
updateBatchById(buyOrderList);
|
||||
}
|
||||
|
||||
public String mytest() throws IOException {
|
||||
String html = "";
|
||||
File file = new File("D:/1.html");
|
||||
FileReader fileReader = new FileReader(file);
|
||||
char[] charArray = new char[(int) file.length()];
|
||||
fileReader.read(charArray);
|
||||
String content = new String(charArray);
|
||||
fileReader.close();
|
||||
String name="test1.html";
|
||||
String s = pushHtmlToOss(content, name);
|
||||
return s;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BuyOrderResponseVo orderDetail(String orderSn) {
|
||||
QueryWrapper<BuyOrder> buyOrderQueryWrapper = new QueryWrapper<>();
|
||||
@@ -466,6 +495,27 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
return setBuyOrderInfo(buyOrder);
|
||||
}
|
||||
|
||||
|
||||
private String getOrderByOS(String order){
|
||||
char salt;
|
||||
if(order.indexOf('_')==-1){//没有组装过
|
||||
order = order+"_A";
|
||||
salt = 'A';
|
||||
}else {
|
||||
salt = order.charAt(order.length()-1);
|
||||
}
|
||||
ExpressOrder one = expressOrderService.getOne(new LambdaQueryWrapper<ExpressOrder>().eq(ExpressOrder::getOrderSn, order));
|
||||
if(one==null){
|
||||
return order;
|
||||
}else{
|
||||
return getOrderByOS(order.substring(0,order.indexOf('_'))+'_'+(char)(salt+1));
|
||||
}
|
||||
}
|
||||
|
||||
private String pushHtmlToOss(String html,String name){
|
||||
return ossService.uploadHtml(html,name);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置订单信息
|
||||
*
|
||||
|
||||
@@ -43,7 +43,7 @@ public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, Expres
|
||||
public ExpressOrderResponseVo placeExpressOrder(ExpressOrder expressOrder) {
|
||||
ExpressOrderRequestVo orderRequestVo = new ExpressOrderRequestVo();
|
||||
// 订单号
|
||||
// orderRequestVo.setOrderCode(expressOrder.getOrderSn());
|
||||
orderRequestVo.setOrderCode(expressOrder.getOrderSn());
|
||||
orderRequestVo.setIsReturnPrintTemplate(1);
|
||||
orderRequestVo.setShipperCode(expressOrder.getExpressCompanyCode());
|
||||
orderRequestVo.setPayType(3);
|
||||
@@ -54,7 +54,7 @@ public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, Expres
|
||||
orderRequestVo.setCustomerName(Constants.EXPRESS_YD_CUSTOMER_NAME);
|
||||
orderRequestVo.setCustomerPwd(Constants.EXPRESS_YD_CUSTOMER_PWD);
|
||||
}
|
||||
orderRequestVo.setExpType(1);
|
||||
orderRequestVo.setExpType(2);//1特快2标快
|
||||
orderRequestVo.setCost(expressOrder.getExpressFee().doubleValue());
|
||||
// 发货人
|
||||
ExpressUserInfoVo sender = new ExpressUserInfoVo();
|
||||
@@ -77,6 +77,7 @@ public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, Expres
|
||||
orderRequestVo.setCommodity(expressOrder.getCommodity());
|
||||
orderRequestVo.setWeight(expressOrder.getTotalWeight().doubleValue());
|
||||
orderRequestVo.setRemark(expressOrder.getRemark());
|
||||
orderRequestVo.setTemplateSize("130");
|
||||
String requestData = JSONObject.toJSONString(orderRequestVo);
|
||||
|
||||
Map<String, String> params = new HashMap<>();
|
||||
@@ -91,9 +92,9 @@ public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, Expres
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
params.put("DataType", "2");
|
||||
|
||||
String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_PLACE_ORDER_URL, params);
|
||||
return JSONObject.parseObject(response, ExpressOrderResponseVo.class);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.peanut.modules.book.to;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ExpressPrintDto {
|
||||
|
||||
/**
|
||||
* 时间2023-10-10
|
||||
*/
|
||||
private String date;
|
||||
|
||||
/**
|
||||
* 快递订单号
|
||||
*/
|
||||
private String expressOrderSn;
|
||||
|
||||
/**
|
||||
* 类型,0不限1已打印2未打印
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
private Integer limit;
|
||||
|
||||
private Integer page;
|
||||
}
|
||||
@@ -82,5 +82,10 @@ public class ExpressOrderRequestVo {
|
||||
* 快递客户密码
|
||||
*/
|
||||
private String CustomerPwd;
|
||||
|
||||
/**
|
||||
* 面单规格
|
||||
*/
|
||||
private String TemplateSize;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user