|
@@ -185,7 +185,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
private KtoEccsService ktoEccsService;
|
|
|
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public OrderEntity queryObject(Long id) {
|
|
|
return orderDao.queryObject(id);
|
|
@@ -421,9 +420,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
|
|
|
GoodsEntity goodsEntity = goodsService.queryObject(orderGoods.getGoodsId());
|
|
|
- BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity,orderGoods.getRetailPrice(),goodsService).setScale(3,RoundingMode.HALF_UP);
|
|
|
- goodsTax = goodsTax.multiply(new BigDecimal(orderGoods.getNumber())).setScale(2,RoundingMode.HALF_UP);
|
|
|
- taxTotal = taxTotal.add(goodsTax).setScale(2,RoundingMode.HALF_UP);
|
|
|
+ BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, orderGoods.getRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
|
|
|
+ goodsTax = goodsTax.multiply(new BigDecimal(orderGoods.getNumber())).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ taxTotal = taxTotal.add(goodsTax).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
|
Goods goods = new Goods(orderGoods.getGoodsName(),
|
|
|
orderGoods.getRetailPrice().toString(), // 含税价
|
|
@@ -482,13 +481,28 @@ public class OrderServiceImpl implements OrderService {
|
|
|
// }
|
|
|
}
|
|
|
TicketMailInfo mailInfo = new TicketMailInfo();
|
|
|
- mailInfo.setExprNo(orderEntity.getShippingNo());
|
|
|
- mailInfo.setExprLogoUrl("/statics/img/bestex_logo2.jpeg");
|
|
|
- byte[] barCode128 = BarcodeUtil.generateBarCode128(orderEntity.getShippingNo(), null, null, true, false);
|
|
|
+ String exprNo = orderProcessRecordEntity.getLogisticsNo();
|
|
|
+ mailInfo.setExprNo(exprNo);
|
|
|
+ mailInfo.setExprLogoUrl("/statics/img/bestex_logo3.png");
|
|
|
+ byte[] barCode128 = BarcodeUtil.generateBarCode128(exprNo, null, null, true, false);
|
|
|
String exprNoBase64Img = new String(Base64.getEncoder().encode(barCode128));
|
|
|
-// FileOutputStream fos = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\aaaaaaa.png"));
|
|
|
- BarcodeUtil.byte2image(barCode128, "C:\\Users\\Administrator\\Desktop\\aaaaaaa.png");
|
|
|
- mailInfo.setShopTel("0752 - 2688660");
|
|
|
+ mailInfo.setShopTel("0752-2688660");
|
|
|
+
|
|
|
+ // 发货人
|
|
|
+ mailInfo.setSenderTel("0752-2688660");
|
|
|
+ mailInfo.setSenderName("CW澳洲大药房");
|
|
|
+ mailInfo.setSenderProvince("广东省");
|
|
|
+ mailInfo.setSenderCity("深圳市");
|
|
|
+ mailInfo.setSenderDistrict("南山区");
|
|
|
+ mailInfo.setSenderAddress("前海综合保税区W104");
|
|
|
+
|
|
|
+ // 收货人
|
|
|
+ mailInfo.setConsigneeMob(new StringBuilder(orderEntity.getMobile()).replace(3, 7, "****").toString());
|
|
|
+ mailInfo.setConsigneeName(new StringBuilder(orderEntity.getConsignee()).replace(1, 2, "*").toString());
|
|
|
+ mailInfo.setConsigneeProvince(orderEntity.getProvince());
|
|
|
+ mailInfo.setConsigneeCity(orderEntity.getCity());
|
|
|
+ mailInfo.setConsigneeDistrict(orderEntity.getDistrict());
|
|
|
+ mailInfo.setConsigneeAddress(orderEntity.getAddress());
|
|
|
|
|
|
mailInfo.setExprNoBase64Img(exprNoBase64Img);
|
|
|
return TicketPrintUtil.print(head, goodsList, cashInfo, cusListing, mailInfo);
|
|
@@ -773,21 +787,21 @@ public class OrderServiceImpl implements OrderService {
|
|
|
ktoEccsEntity.setRequestData(JSON.toJSONString(orderGoodsEntity));
|
|
|
ktoEccsEntity.setRequestType("04");
|
|
|
ktoEccsEntity.setSendStatus("00");
|
|
|
- if(user != null){
|
|
|
- ktoEccsEntity.setCreaterSn(user.getUserId()+"");
|
|
|
- }else{
|
|
|
+ if (user != null) {
|
|
|
+ ktoEccsEntity.setCreaterSn(user.getUserId() + "");
|
|
|
+ } else {
|
|
|
ktoEccsEntity.setCreaterSn("9999");
|
|
|
}
|
|
|
ktoEccsEntity.setCreateTime(new Date());
|
|
|
ktoEccsEntities.add(ktoEccsEntity);
|
|
|
}
|
|
|
- if(ktoEccsEntities.size() > 0){
|
|
|
- if(ktoEccsEntities.size() > 50){
|
|
|
+ if (ktoEccsEntities.size() > 0) {
|
|
|
+ if (ktoEccsEntities.size() > 50) {
|
|
|
List<List<KtoEccsEntity>> partition = Lists.partition(ktoEccsEntities, 50);
|
|
|
for (List<KtoEccsEntity> ktoEccs : partition) {
|
|
|
ktoEccsService.saveBatch(ktoEccs);
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
ktoEccsService.saveBatch(ktoEccsEntities);
|
|
|
}
|
|
|
}
|
|
@@ -868,7 +882,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
if (goodsEntity != null) {
|
|
|
goodsEntity.setGoodsNumber(stockNum + orderGoodsEntity.getNumber());
|
|
|
// goodsEntity.setSellVolume(Integer.parseInt(goodsSellVolume.toString()));
|
|
|
- if("oms退单成功,恢复库存".equals(changeReason)){
|
|
|
+ if ("oms退单成功,恢复库存".equals(changeReason)) {
|
|
|
goodsEntity.setToBeRestored(goodsEntity.getToBeRestored() - orderGoodsEntity.getNumber());
|
|
|
}
|
|
|
goodsDao.update(goodsEntity);
|
|
@@ -876,7 +890,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
// storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString()));
|
|
|
// productStoreRelaDao.update(storeRelaEntity);
|
|
|
String username = "system";
|
|
|
- if(user != null){
|
|
|
+ if (user != null) {
|
|
|
username = user.getUsername();
|
|
|
}
|
|
|
|
|
@@ -912,14 +926,14 @@ public class OrderServiceImpl implements OrderService {
|
|
|
OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume, String changeReason, SysUserEntity user) {
|
|
|
storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString())); // 减退库存
|
|
|
storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
|
|
|
- if("oms退单成功,恢复库存".equals(changeReason)){
|
|
|
+ if ("oms退单成功,恢复库存".equals(changeReason)) {
|
|
|
storeRelaEntity.setToBeRestored(storeRelaEntity.getToBeRestored() - orderGoodsEntity.getNumber());
|
|
|
}
|
|
|
productStoreRelaDao.update(storeRelaEntity);
|
|
|
|
|
|
|
|
|
String username = "system";
|
|
|
- if(user != null){
|
|
|
+ if (user != null) {
|
|
|
username = user.getUsername();
|
|
|
}
|
|
|
StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
|
|
@@ -1814,7 +1828,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
Map<String, String> mapAddr = new HashMap<>();
|
|
|
if (status == 0) {
|
|
|
//省
|
|
|
- String cmbProvince = (String)param.get("cmbProvince");
|
|
|
+ String cmbProvince = (String) param.get("cmbProvince");
|
|
|
//市
|
|
|
String cmbCity = (String) param.get("cmbCity");
|
|
|
//区
|
|
@@ -1822,10 +1836,10 @@ public class OrderServiceImpl implements OrderService {
|
|
|
//详细地址
|
|
|
String addrUser = (String) param.get("addrUser");
|
|
|
|
|
|
- mapAddr.put("cmbProvince",cmbProvince);
|
|
|
- mapAddr.put("cmbCity",cmbCity);
|
|
|
- mapAddr.put("cmbArea",cmbArea);
|
|
|
- mapAddr.put("addrUser",addrUser);
|
|
|
+ mapAddr.put("cmbProvince", cmbProvince);
|
|
|
+ mapAddr.put("cmbCity", cmbCity);
|
|
|
+ mapAddr.put("cmbArea", cmbArea);
|
|
|
+ mapAddr.put("addrUser", addrUser);
|
|
|
}
|
|
|
|
|
|
try {
|
|
@@ -2084,9 +2098,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
// TODO 查询使用的优惠券,并减扣金额
|
|
|
String couponSn = (String) userInfo.get("couponSn");
|
|
|
// 获取当前时间
|
|
@@ -2118,7 +2129,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
// 生成订单
|
|
|
String merchOrderSn = "EMATO" + CommonUtil.generateOrderNumber();
|
|
|
|
|
|
- OrderVo order = setOrderVo(goodsEntities, userEntity, storeId.longValue(), user.getMerchSn(), disCountAmount, totalTax,status,mapAddr);
|
|
|
+ OrderVo order = setOrderVo(goodsEntities, userEntity, storeId.longValue(), user.getMerchSn(), disCountAmount, totalTax, status, mapAddr);
|
|
|
order.setStore_id(storeId.longValue());
|
|
|
// if(storeTopic != null){
|
|
|
// order.setActivity_id(storeTopic.getId().longValue());
|
|
@@ -2262,7 +2273,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
resultObj.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
|
|
|
resultObj.put("orderNo", order.getOrder_sn()); //
|
|
|
|
|
|
- resultObj.put("phone",(String) userInfo.get("customPhone"));
|
|
|
+ resultObj.put("phone", (String) userInfo.get("customPhone"));
|
|
|
// 通知WebSocket
|
|
|
WebSocketServer.sendMessage(sessionId, order.getOrder_sn(), order.getStore_id()
|
|
|
+ "");
|
|
@@ -2736,11 +2747,11 @@ public class OrderServiceImpl implements OrderService {
|
|
|
pickUpCodeService.update(pickUpCodeEntity);
|
|
|
|
|
|
// 判断该订单是否进入oms系统
|
|
|
- if(!arrivedOms(order.getOrderSn())){
|
|
|
+ if (!arrivedOms(order.getOrderSn())) {
|
|
|
// oms无该订单,则直接退款
|
|
|
restoreInventory(order, "收银端退款");
|
|
|
orderRefund.setRestore(1);
|
|
|
- } else{
|
|
|
+ } else {
|
|
|
// 如果oms有订单,统一进入锁库存情况
|
|
|
orderRefund.setRestore(0);
|
|
|
toBeRestoreInventory(order);
|
|
@@ -2794,11 +2805,11 @@ public class OrderServiceImpl implements OrderService {
|
|
|
pickUpCodeEntity.setPickUpCodeStatus("3");
|
|
|
pickUpCodeService.update(pickUpCodeEntity);
|
|
|
// 判断该订单是否进入oms系统
|
|
|
- if(!arrivedOms(order.getOrderSn())){
|
|
|
+ if (!arrivedOms(order.getOrderSn())) {
|
|
|
// oms无该订单,则直接退款
|
|
|
restoreInventory(order, "收银端退款");
|
|
|
orderRefund.setRestore(1);
|
|
|
- } else{
|
|
|
+ } else {
|
|
|
// 如果oms有订单,统一进入锁库存情况
|
|
|
orderRefund.setRestore(0);
|
|
|
toBeRestoreInventory(order);
|
|
@@ -2822,19 +2833,19 @@ public class OrderServiceImpl implements OrderService {
|
|
|
ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
|
|
|
.queryByGoodsIdAndStoreId(order.getStoreId().longValue(), orderGoodsEntity.getGoodsId().longValue());
|
|
|
Integer toBeRestored = storeRelaEntity.getToBeRestored();
|
|
|
- if(toBeRestored == null){
|
|
|
+ if (toBeRestored == null) {
|
|
|
toBeRestored = 0;
|
|
|
}
|
|
|
// 修改待退款的数量
|
|
|
- storeRelaEntity.setToBeRestored(toBeRestored +restoreNumber);
|
|
|
+ storeRelaEntity.setToBeRestored(toBeRestored + restoreNumber);
|
|
|
|
|
|
GoodsEntity goodsEntity = goodsDao.queryObject(orderGoodsEntity.getGoodsId());
|
|
|
|
|
|
toBeRestored = goodsEntity.getToBeRestored();
|
|
|
- if(toBeRestored == null){
|
|
|
+ if (toBeRestored == null) {
|
|
|
toBeRestored = 0;
|
|
|
}
|
|
|
- goodsEntity.setToBeRestored(toBeRestored+restoreNumber);
|
|
|
+ goodsEntity.setToBeRestored(toBeRestored + restoreNumber);
|
|
|
|
|
|
|
|
|
productStoreRelaDao.update(storeRelaEntity);
|
|
@@ -2845,6 +2856,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
/**
|
|
|
* 查询oms系统是否有该订单
|
|
|
+ *
|
|
|
* @param orderSn
|
|
|
* @return
|
|
|
*/
|
|
@@ -2852,17 +2864,17 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
Map<String, String> sParaTemp = new TreeMap<String, String>();
|
|
|
// sParaTemp.put("data","ZWCW2020122749351849");
|
|
|
- sParaTemp.put("data",orderSn);
|
|
|
- sParaTemp.put("merchId",omsMerchProperties.getMerchSn());
|
|
|
- String timestamp = String.valueOf(System.currentTimeMillis()/1000);
|
|
|
+ sParaTemp.put("data", orderSn);
|
|
|
+ sParaTemp.put("merchId", omsMerchProperties.getMerchSn());
|
|
|
+ String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
|
|
|
sParaTemp.put("timestamp", timestamp);
|
|
|
//生成要请求给oms秘钥
|
|
|
// String sign = OmsSign.sign(sParaTemp,cus.getWaybill().get("secret-key"));
|
|
|
LOGGER.info("md5混淆码参数:" + omsMerchProperties.getMd5Salt());
|
|
|
- String sign = OmsSign.sign(sParaTemp,omsMerchProperties.getMd5Salt());
|
|
|
+ String sign = OmsSign.sign(sParaTemp, omsMerchProperties.getMd5Salt());
|
|
|
sParaTemp.put("sign", sign);
|
|
|
//构建Request
|
|
|
- String url = omsMerchProperties.getQueryInveResponseUrl();
|
|
|
+ String url = omsMerchProperties.getQueryInveResponseUrl();
|
|
|
Request request = com.kmall.admin.utils.oms.OkHttpUtils.buildRequest(url, JSON.toJSONString(sParaTemp));
|
|
|
LOGGER.info("oms的请求报文:" + request);
|
|
|
// 同步访问,返回结果字符串
|
|
@@ -2875,16 +2887,16 @@ public class OrderServiceImpl implements OrderService {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
- LOGGER.info("oms的响应报文"+responseString);
|
|
|
+ LOGGER.info("oms的响应报文" + responseString);
|
|
|
//解析响应数据
|
|
|
Gson gson = new Gson();
|
|
|
ResponseMessage result = gson.fromJson(responseString, ResponseMessage.class);
|
|
|
- if(result == null){
|
|
|
+ if (result == null) {
|
|
|
String info = "解析响应数据Result失败";
|
|
|
LOGGER.error("--- {}", info);
|
|
|
throw new RuntimeException(info);
|
|
|
}
|
|
|
- if("oms无该订单".equals(result.getMsg())){
|
|
|
+ if ("oms无该订单".equals(result.getMsg())) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -2987,7 +2999,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
//
|
|
|
// dBefore = calendar.getTime(); //得到前一天的时间
|
|
|
|
|
|
- String defaultStartDate = comparedDate + " 00:00:00";
|
|
|
+ String defaultStartDate = comparedDate + " 00:00:00";
|
|
|
|
|
|
|
|
|
String defaultEndDate = comparedDate + " 23:59:59";
|
|
@@ -3008,11 +3020,11 @@ public class OrderServiceImpl implements OrderService {
|
|
|
@Override
|
|
|
public ExportExcelDto querySumAmount(String billDate, String storeId) {
|
|
|
ExportExcelDto exportExcelDto = new ExportExcelDto();
|
|
|
- ExportExcelDto totalAmount = orderDao.totalAmount(billDate,storeId);
|
|
|
- ExportExcelDto refundCurrentAmount = orderDao.refundCurrentAmount(billDate,storeId);
|
|
|
- ExportExcelDto refundPreviousAmount = orderDao.refundPreviousAmount(billDate,storeId);
|
|
|
- ExportExcelDto currentTax = orderDao.currentTax(billDate,storeId);
|
|
|
- ExportExcelDto refundPreviousTax = orderDao.refundPreviousTax(billDate,storeId);
|
|
|
+ ExportExcelDto totalAmount = orderDao.totalAmount(billDate, storeId);
|
|
|
+ ExportExcelDto refundCurrentAmount = orderDao.refundCurrentAmount(billDate, storeId);
|
|
|
+ ExportExcelDto refundPreviousAmount = orderDao.refundPreviousAmount(billDate, storeId);
|
|
|
+ ExportExcelDto currentTax = orderDao.currentTax(billDate, storeId);
|
|
|
+ ExportExcelDto refundPreviousTax = orderDao.refundPreviousTax(billDate, storeId);
|
|
|
|
|
|
// 以下是直接从数据库中查出来的
|
|
|
exportExcelDto.setTotalAmount(totalAmount.getTotalAmount()); // 总销售额
|
|
@@ -3026,71 +3038,71 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
// 以下是通过计算的出来的
|
|
|
// 销售净额
|
|
|
- exportExcelDto.setNetAmount( new BigDecimal(exportExcelDto.getTotalAmount()).subtract(new BigDecimal(exportExcelDto.getRefundPreviousAmount())).setScale(2,RoundingMode.HALF_UP).toString() );
|
|
|
+ exportExcelDto.setNetAmount(new BigDecimal(exportExcelDto.getTotalAmount()).subtract(new BigDecimal(exportExcelDto.getRefundPreviousAmount())).setScale(2, RoundingMode.HALF_UP).toString());
|
|
|
// 总税额
|
|
|
- exportExcelDto.setTotalTax(new BigDecimal(exportExcelDto.getCurrentTax()).add(new BigDecimal(exportExcelDto.getPreviousTax())).setScale(2,RoundingMode.HALF_UP).toString());
|
|
|
+ exportExcelDto.setTotalTax(new BigDecimal(exportExcelDto.getCurrentTax()).add(new BigDecimal(exportExcelDto.getPreviousTax())).setScale(2, RoundingMode.HALF_UP).toString());
|
|
|
// 税前总额
|
|
|
- exportExcelDto.setPreTaxTotalAmount(new BigDecimal(exportExcelDto.getNetAmount()).subtract(new BigDecimal(exportExcelDto.getTotalTax())).setScale(2,RoundingMode.HALF_UP).toString());
|
|
|
+ exportExcelDto.setPreTaxTotalAmount(new BigDecimal(exportExcelDto.getNetAmount()).subtract(new BigDecimal(exportExcelDto.getTotalTax())).setScale(2, RoundingMode.HALF_UP).toString());
|
|
|
// 成功单数
|
|
|
- exportExcelDto.setSuccessNumber(new BigDecimal(exportExcelDto.getTotalCount()).subtract(new BigDecimal(exportExcelDto.getRefundPreviousCount())).setScale(2,RoundingMode.HALF_UP).toString());
|
|
|
+ exportExcelDto.setSuccessNumber(new BigDecimal(exportExcelDto.getTotalCount()).subtract(new BigDecimal(exportExcelDto.getRefundPreviousCount())).setScale(2, RoundingMode.HALF_UP).toString());
|
|
|
// 退款总额
|
|
|
- exportExcelDto.setRefundAmount(new BigDecimal(exportExcelDto.getRefundCurrentAmount()).add(new BigDecimal(exportExcelDto.getRefundPreviousAmount())).setScale(2,RoundingMode.HALF_UP).toString());
|
|
|
+ exportExcelDto.setRefundAmount(new BigDecimal(exportExcelDto.getRefundCurrentAmount()).add(new BigDecimal(exportExcelDto.getRefundPreviousAmount())).setScale(2, RoundingMode.HALF_UP).toString());
|
|
|
// 退单单数
|
|
|
- exportExcelDto.setRefundCount(new BigDecimal(exportExcelDto.getRefundCurrentCount()).add(new BigDecimal(exportExcelDto.getRefundPreviousCount())).setScale(2,RoundingMode.HALF_UP).toString());
|
|
|
+ exportExcelDto.setRefundCount(new BigDecimal(exportExcelDto.getRefundCurrentCount()).add(new BigDecimal(exportExcelDto.getRefundPreviousCount())).setScale(2, RoundingMode.HALF_UP).toString());
|
|
|
|
|
|
return exportExcelDto;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Map<String,List<OrderEntity>> querySaleOrderList(String billDate, String storeId) {
|
|
|
- Map<String,List<OrderEntity>> result = new HashMap<>();
|
|
|
+ public Map<String, List<OrderEntity>> querySaleOrderList(String billDate, String storeId) {
|
|
|
+ Map<String, List<OrderEntity>> result = new HashMap<>();
|
|
|
// 查询当天所有订单
|
|
|
- List<OrderEntity> orderEntityList = orderDao.queryCurrentPreviousOrderList(billDate,storeId);
|
|
|
- result.put("current",orderEntityList);
|
|
|
+ List<OrderEntity> orderEntityList = orderDao.queryCurrentPreviousOrderList(billDate, storeId);
|
|
|
+ result.put("current", orderEntityList);
|
|
|
// 查询当天退前期订单
|
|
|
- List<OrderEntity> refundPreviousOrderList = orderDao.queryRefundPreviousOrderList(billDate,storeId);
|
|
|
- result.put("previous",refundPreviousOrderList);
|
|
|
+ List<OrderEntity> refundPreviousOrderList = orderDao.queryRefundPreviousOrderList(billDate, storeId);
|
|
|
+ result.put("previous", refundPreviousOrderList);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Map<String, List<TaxDetailDto>> queryTaxDetailList(String billDate, String storeId) {
|
|
|
- Map<String,List<TaxDetailDto>> result = new HashMap<>();
|
|
|
+ Map<String, List<TaxDetailDto>> result = new HashMap<>();
|
|
|
// 查询当天所有订单税单
|
|
|
- List<TaxDetailDto> taxDetailList = orderDao.queryCurrentTaxDetailList(billDate,storeId);
|
|
|
+ List<TaxDetailDto> taxDetailList = orderDao.queryCurrentTaxDetailList(billDate, storeId);
|
|
|
|
|
|
// 计算税前价,增值税,消费税
|
|
|
BigDecimal discountRate = new BigDecimal(0.7);
|
|
|
- if(taxDetailList != null && taxDetailList.size() != 0){
|
|
|
+ if (taxDetailList != null && taxDetailList.size() != 0) {
|
|
|
for (TaxDetailDto taxDetailDto : taxDetailList) {
|
|
|
// 获取实际支付价格
|
|
|
String postTaxPrice = taxDetailDto.getPostTaxPrice();
|
|
|
// 获取总税额
|
|
|
- String taxStr = taxDetailDto.getTax();
|
|
|
+ String taxStr = taxDetailDto.getTax();
|
|
|
// 税前金额
|
|
|
BigDecimal tax = new BigDecimal(taxStr);
|
|
|
BigDecimal pretaxPrice = new BigDecimal(postTaxPrice).subtract(tax).setScale(2, RoundingMode.HALF_UP);
|
|
|
// 计算综合税率
|
|
|
BigDecimal taxRate = tax.divide(pretaxPrice, 4, RoundingMode.HALF_UP);
|
|
|
// 消费税率
|
|
|
- BigDecimal saleTaxRate = new BigDecimal(taxDetailDto.getSaleTaxRate()).divide(new BigDecimal(100),2,RoundingMode.HALF_UP);
|
|
|
+ BigDecimal saleTaxRate = new BigDecimal(taxDetailDto.getSaleTaxRate()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
|
|
// 综合税率
|
|
|
- BigDecimal vatRate = new BigDecimal(taxDetailDto.getVatRate()).divide(new BigDecimal(100),2,RoundingMode.HALF_UP);
|
|
|
+ BigDecimal vatRate = new BigDecimal(taxDetailDto.getVatRate()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
|
|
// 消费税 = (明细商品总价 / (1-消费税税率)) * 消费税税率
|
|
|
// 增值税 = (明细商品总价 + 消费税) * 增值税税率
|
|
|
// 订单该商品总税费 = (商品消费税 + 商品增值税)* 0.7
|
|
|
// 如果大于,要算消费税
|
|
|
BigDecimal saleTax = new BigDecimal(0);
|
|
|
BigDecimal vat = new BigDecimal(0);
|
|
|
- if(taxRate.compareTo(new BigDecimal("0.23")) > 0){
|
|
|
+ if (taxRate.compareTo(new BigDecimal("0.23")) > 0) {
|
|
|
saleTax = pretaxPrice.divide(new BigDecimal(1).subtract(saleTaxRate), 2, RoundingMode.HALF_UP).multiply(saleTaxRate).
|
|
|
setScale(2, RoundingMode.HALF_UP);
|
|
|
vat = pretaxPrice.add(saleTax).multiply(vatRate).
|
|
|
multiply(discountRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
- saleTax = saleTax.multiply(discountRate).setScale(2,RoundingMode.HALF_UP);
|
|
|
+ saleTax = saleTax.multiply(discountRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// 不需要算消费税,增值税计算
|
|
|
vat = pretaxPrice.multiply(vatRate).multiply(discountRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
}
|
|
@@ -3099,48 +3111,48 @@ public class OrderServiceImpl implements OrderService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- result.put("current",taxDetailList);
|
|
|
+ result.put("current", taxDetailList);
|
|
|
// 查询当天退前期订单税单
|
|
|
- List<TaxDetailDto> refundPrevioustaxDetailList = orderDao.queryRefundPreviousTaxDetailList(billDate,storeId);
|
|
|
+ List<TaxDetailDto> refundPrevioustaxDetailList = orderDao.queryRefundPreviousTaxDetailList(billDate, storeId);
|
|
|
|
|
|
// 计算税前价,增值税,消费税
|
|
|
- if(refundPrevioustaxDetailList != null && refundPrevioustaxDetailList.size() != 0){
|
|
|
+ if (refundPrevioustaxDetailList != null && refundPrevioustaxDetailList.size() != 0) {
|
|
|
for (TaxDetailDto taxDetailDto : refundPrevioustaxDetailList) {
|
|
|
// 获取实际支付价格
|
|
|
String postTaxPrice = taxDetailDto.getPostTaxPrice();
|
|
|
// 获取总税额
|
|
|
- String taxStr = taxDetailDto.getPreTax();
|
|
|
+ String taxStr = taxDetailDto.getPreTax();
|
|
|
// 税前金额
|
|
|
BigDecimal tax = new BigDecimal(taxStr);
|
|
|
BigDecimal pretaxPrice = new BigDecimal(postTaxPrice).subtract(tax).setScale(2, RoundingMode.HALF_UP);
|
|
|
// 计算综合税率
|
|
|
BigDecimal taxRate = tax.divide(pretaxPrice, 4, RoundingMode.HALF_UP);
|
|
|
// 消费税率
|
|
|
- BigDecimal saleTaxRate = new BigDecimal(taxDetailDto.getPreSaleTax()).divide(new BigDecimal(100),2,RoundingMode.HALF_UP);
|
|
|
+ BigDecimal saleTaxRate = new BigDecimal(taxDetailDto.getPreSaleTax()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
|
|
// 综合税率
|
|
|
- BigDecimal vatRate = new BigDecimal(taxDetailDto.getPreVat()).divide(new BigDecimal(100),2,RoundingMode.HALF_UP);
|
|
|
+ BigDecimal vatRate = new BigDecimal(taxDetailDto.getPreVat()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
|
|
|
// 消费税 = (明细商品总价 / (1-消费税税率)) * 消费税税率
|
|
|
// 增值税 = (明细商品总价 + 消费税) * 增值税税率
|
|
|
// 订单该商品总税费 = (商品消费税 + 商品增值税)* 0.7
|
|
|
// 如果大于,要算消费税
|
|
|
BigDecimal saleTax = new BigDecimal(0);
|
|
|
BigDecimal vat = new BigDecimal(0);
|
|
|
- if(taxRate.compareTo(new BigDecimal("0.23")) > 0){
|
|
|
+ if (taxRate.compareTo(new BigDecimal("0.23")) > 0) {
|
|
|
saleTax = pretaxPrice.divide(new BigDecimal(1).subtract(saleTaxRate), 2, RoundingMode.HALF_UP).multiply(saleTaxRate).
|
|
|
multiply(discountRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
vat = pretaxPrice.add(saleTax).multiply(vatRate).
|
|
|
multiply(discountRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// 不需要算消费税,增值税计算
|
|
|
vat = pretaxPrice.multiply(vatRate).multiply(discountRate).setScale(2, RoundingMode.HALF_UP);
|
|
|
}
|
|
|
- taxDetailDto.setPreSaleTax(saleTax.compareTo(BigDecimal.ZERO)==0?saleTax.toString():"-"+saleTax.toString());
|
|
|
- taxDetailDto.setPreVat(vat.compareTo(BigDecimal.ZERO)==0?vat.toString():"-"+vat.toString());
|
|
|
+ taxDetailDto.setPreSaleTax(saleTax.compareTo(BigDecimal.ZERO) == 0 ? saleTax.toString() : "-" + saleTax.toString());
|
|
|
+ taxDetailDto.setPreVat(vat.compareTo(BigDecimal.ZERO) == 0 ? vat.toString() : "-" + vat.toString());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- result.put("previous",refundPrevioustaxDetailList);
|
|
|
+ result.put("previous", refundPrevioustaxDetailList);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
@@ -3148,17 +3160,17 @@ public class OrderServiceImpl implements OrderService {
|
|
|
@Override
|
|
|
public List<String> queryInveResponse(String orderSn) throws IOException {
|
|
|
Map<String, String> sParaTemp = new TreeMap<String, String>();
|
|
|
- sParaTemp.put("data",orderSn);
|
|
|
- sParaTemp.put("merchId",omsMerchProperties.getMerchSn());
|
|
|
- String timestamp = String.valueOf(System.currentTimeMillis()/1000);
|
|
|
+ sParaTemp.put("data", orderSn);
|
|
|
+ sParaTemp.put("merchId", omsMerchProperties.getMerchSn());
|
|
|
+ String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
|
|
|
sParaTemp.put("timestamp", timestamp);
|
|
|
//生成要请求给oms秘钥
|
|
|
// String sign = OmsSign.sign(sParaTemp,cus.getWaybill().get("secret-key"));
|
|
|
LOGGER.info("md5混淆码参数:" + omsMerchProperties.getMd5Salt());
|
|
|
- String sign = OmsSign.sign(sParaTemp,omsMerchProperties.getMd5Salt());
|
|
|
+ String sign = OmsSign.sign(sParaTemp, omsMerchProperties.getMd5Salt());
|
|
|
sParaTemp.put("sign", sign);
|
|
|
//构建Request
|
|
|
- String url = omsMerchProperties.getQueryInveResponseUrl();
|
|
|
+ String url = omsMerchProperties.getQueryInveResponseUrl();
|
|
|
Request request = com.kmall.admin.utils.oms.OkHttpUtils.buildRequest(url, JSON.toJSONString(sParaTemp));
|
|
|
LOGGER.info("oms的请求报文:" + request);
|
|
|
// 同步访问,返回结果字符串
|
|
@@ -3172,11 +3184,11 @@ public class OrderServiceImpl implements OrderService {
|
|
|
throw e;
|
|
|
}
|
|
|
|
|
|
- LOGGER.info("oms的响应报文"+responseString);
|
|
|
+ LOGGER.info("oms的响应报文" + responseString);
|
|
|
//解析响应数据
|
|
|
Gson gson = new Gson();
|
|
|
ResponseMessage result = gson.fromJson(responseString, ResponseMessage.class);
|
|
|
- if(result == null){
|
|
|
+ if (result == null) {
|
|
|
String info = "解析响应数据Result失败";
|
|
|
LOGGER.error("--- {}", info);
|
|
|
throw new RuntimeException(info);
|
|
@@ -3185,9 +3197,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
List rows = data.getRows();
|
|
|
List<String> resultMessage = new LinkedList<>();
|
|
|
for (Object row : rows) {
|
|
|
- if(row instanceof ArrayList){
|
|
|
+ if (row instanceof ArrayList) {
|
|
|
for (Object o : ((ArrayList<?>) row)) {
|
|
|
- if(o instanceof LinkedTreeMap){
|
|
|
+ if (o instanceof LinkedTreeMap) {
|
|
|
String cusReturnInfo = (String) ((LinkedTreeMap<?, ?>) o).get("cusReturnInfo");
|
|
|
resultMessage.add(cusReturnInfo);
|
|
|
}
|
|
@@ -3223,16 +3235,16 @@ public class OrderServiceImpl implements OrderService {
|
|
|
// 查询该订单在库存是否已经释放过,避免重复恢复库存
|
|
|
OrderEntity orderInfo = orderDao.queryObjectByOrderSn(orderSn);
|
|
|
OrderRefundEntity orderRefundEntity = orderRefundService.queryObjectByOrderId(orderInfo.getId());
|
|
|
- if(orderRefundEntity == null){
|
|
|
- LOGGER.error("该订单无退款记录,订单号{}",orderSn);
|
|
|
- throw new RuntimeException("该订单无退款记录,订单号:"+orderSn);
|
|
|
+ if (orderRefundEntity == null) {
|
|
|
+ LOGGER.error("该订单无退款记录,订单号{}", orderSn);
|
|
|
+ throw new RuntimeException("该订单无退款记录,订单号:" + orderSn);
|
|
|
}
|
|
|
Integer restore = orderRefundEntity.getRestore();
|
|
|
- if(restore == 1){
|
|
|
- LOGGER.error("该订单库存记录已恢复过,订单号{}",orderSn);
|
|
|
- throw new RuntimeException("该订单库存记录已恢复过,订单号:"+orderSn);
|
|
|
+ if (restore == 1) {
|
|
|
+ LOGGER.error("该订单库存记录已恢复过,订单号{}", orderSn);
|
|
|
+ throw new RuntimeException("该订单库存记录已恢复过,订单号:" + orderSn);
|
|
|
}
|
|
|
- restoreInventory(orderInfo,"oms退单成功,恢复库存");
|
|
|
+ restoreInventory(orderInfo, "oms退单成功,恢复库存");
|
|
|
orderRefundEntity.setRestore(1);
|
|
|
orderRefundService.update(orderRefundEntity);
|
|
|
|
|
@@ -3330,12 +3342,13 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
return orderInfo;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 设置订单数据
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- public OrderVo setOrderVo(List<GoodsEntity> goodsList, UserEntity loginUser, Long storeId, String merchSn, BigDecimal disCountAmount, BigDecimal totalTax,int status,Map mapAddr) {
|
|
|
+ public OrderVo setOrderVo(List<GoodsEntity> goodsList, UserEntity loginUser, Long storeId, String merchSn, BigDecimal disCountAmount, BigDecimal totalTax, int status, Map mapAddr) {
|
|
|
OrderVo orderInfo = new OrderVo();
|
|
|
|
|
|
BigDecimal goodsTotalPrice = new BigDecimal(0.00);
|
|
@@ -3375,9 +3388,9 @@ public class OrderServiceImpl implements OrderService {
|
|
|
orderInfo.setMobile(loginUser.getMobile());
|
|
|
orderInfo.setCountry("");
|
|
|
//根据 前端的选择方式 1 是柜取 0 是 邮寄
|
|
|
- if (status==0) {
|
|
|
+ if (status == 0) {
|
|
|
//省
|
|
|
- String cmbProvince = (String)mapAddr.get("cmbProvince");
|
|
|
+ String cmbProvince = (String) mapAddr.get("cmbProvince");
|
|
|
//市
|
|
|
String cmbCity = (String) mapAddr.get("cmbCity");
|
|
|
//区
|
|
@@ -3388,7 +3401,7 @@ public class OrderServiceImpl implements OrderService {
|
|
|
orderInfo.setCity(cmbCity);
|
|
|
orderInfo.setDistrict(cmbArea);
|
|
|
orderInfo.setAddress(addrUser);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
orderInfo.setProvince(storeEntity.getProvinceName());
|
|
|
orderInfo.setCity(storeEntity.getCityName());
|
|
|
orderInfo.setDistrict(storeEntity.getCountyName());
|
|
@@ -3464,8 +3477,6 @@ public class OrderServiceImpl implements OrderService {
|
|
|
orderGoodsVo.setSku(goodsDto.getSku());
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
BigDecimal number = new BigDecimal(Long.valueOf(goodsDto.getGoodsNumber()));
|
|
|
BigDecimal goodsTotal = goodsDto.getRetailPrice().multiply(number);//单商品总价
|
|
|
BigDecimal rate = goodsTotal.divide(orderInfo.getGoods_price(), 2, BigDecimal.ROUND_HALF_UP);//当前商品总价/订单总价(不含运费、不含优惠券)
|
|
@@ -3499,8 +3510,8 @@ public class OrderServiceImpl implements OrderService {
|
|
|
|
|
|
// 计算税费
|
|
|
GoodsEntity goodsEntity = goodsService.queryObject(goodsDto.getId().intValue());
|
|
|
- BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity,goodsDto.getStoreRetailPrice(),goodsService).setScale(3,RoundingMode.HALF_UP);
|
|
|
- goodsTax = goodsTax.multiply(number).setScale(2,RoundingMode.HALF_UP);
|
|
|
+ BigDecimal goodsTax = CalculateTax.calculateFinalTax(goodsEntity, goodsDto.getStoreRetailPrice(), goodsService).setScale(3, RoundingMode.HALF_UP);
|
|
|
+ goodsTax = goodsTax.multiply(number).setScale(2, RoundingMode.HALF_UP);
|
|
|
orderGoodsVo.setTaxPrice(goodsTax);
|
|
|
|
|
|
return orderGoodsVo;
|