Merge branch 'release' into test

release
gaorl 2 years ago
commit 9277fa730a
  1. 17
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java

@ -2021,6 +2021,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
public R mergeOrderItem(String entId, String orderInfoId,List<String> itemList) throws Exception{ public R mergeOrderItem(String entId, String orderInfoId,List<String> itemList) throws Exception{
List<OrderItemInfo> orderItemInfos = orderItemInfoMapper.selectAllByOrderId(Arrays.asList(orderInfoId), null); List<OrderItemInfo> orderItemInfos = orderItemInfoMapper.selectAllByOrderId(Arrays.asList(orderInfoId), null);
OrderInfo orderInfo = orderMapper.selectOrderInfoByOrderId(orderInfoId, null);
if(ObjectUtil.isNull(orderItemInfos)){ if(ObjectUtil.isNull(orderItemInfos)){
return R.error("根据订单号未查询到明细行信息"); return R.error("根据订单号未查询到明细行信息");
} }
@ -2033,6 +2034,12 @@ public class OrderInfoServiceImpl implements OrderInfoService {
}else{ }else{
collect = orderItemInfos; collect = orderItemInfos;
} }
TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(orderInfo.getNsrsbh(), entId);
if(taxEquipmentInfo == null ||StringUtils.isBlank(taxEquipmentInfo.getSksbCode())){
return R.error("税控设备查询为空");
}
String sksbCode = taxEquipmentInfo.getSksbCode();
boolean termType = OrderInfoEnum.TAX_EQUIPMENT_FGBW.equals(sksbCode) || OrderInfoEnum.TAX_EQUIPMENT_FGUKEY.equals(sksbCode);
Map<String, List<OrderItemInfo>> collect1 = collect.stream().map(t->{ Map<String, List<OrderItemInfo>> collect1 = collect.stream().map(t->{
t.setXmmc(StringUtils.isBlank(t.getXmmc())?"":t.getXmmc()); t.setXmmc(StringUtils.isBlank(t.getXmmc())?"":t.getXmmc());
t.setXmdw(StringUtils.isBlank(t.getXmdw())?"":t.getXmdw()); t.setXmdw(StringUtils.isBlank(t.getXmdw())?"":t.getXmdw());
@ -2070,8 +2077,8 @@ public class OrderInfoServiceImpl implements OrderInfoService {
} }
orderItemInfo.setCreateTime(new Date()); orderItemInfo.setCreateTime(new Date());
orderItemInfo.setSe(se.toString()); orderItemInfo.setSe(se.toString());
if(se.subtract(taxAmount).abs().doubleValue() > 0.06){ if((termType && se.subtract(taxAmount).abs().doubleValue() > 0.01) || (!termType &&se.subtract(taxAmount).abs().doubleValue() > 0.06)){
log.info("订单id:{}合并明细超过0.06",orderInfoId); log.info("订单id:{}合并明细误差超过额度",orderInfoId);
BigDecimal taxAndAmount = xmje.add(se); BigDecimal taxAndAmount = xmje.add(se);
BigDecimal taxAmountNew = taxAndAmount.divide(new BigDecimal("1").add(taxRate),0).multiply(taxRate).setScale(2,RoundingMode.HALF_UP); BigDecimal taxAmountNew = taxAndAmount.divide(new BigDecimal("1").add(taxRate),0).multiply(taxRate).setScale(2,RoundingMode.HALF_UP);
BigDecimal xmjeNew = taxAndAmount.subtract(taxAmountNew); BigDecimal xmjeNew = taxAndAmount.subtract(taxAmountNew);
@ -2079,7 +2086,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
orderItemInfo.setSe(taxAmountNew.toString()); orderItemInfo.setSe(taxAmountNew.toString());
if(StringUtils.isNotBlank(orderItemInfo.getXmsl())){ if(StringUtils.isNotBlank(orderItemInfo.getXmsl())){
BigDecimal xmdj = xmjeNew.divide(xmsl, 8, RoundingMode.HALF_UP); BigDecimal xmdj = xmjeNew.divide(xmsl, 8, RoundingMode.HALF_UP);
if(xmdj.multiply(xmsl).subtract(xmjeNew).longValue() > 0.01){ if(xmdj.multiply(xmsl).subtract(xmjeNew).doubleValue() > 0.01){
orderItemInfo.setXmsl(xmjeNew.divide(xmdj,8,RoundingMode.HALF_UP).toString()); orderItemInfo.setXmsl(xmjeNew.divide(xmdj,8,RoundingMode.HALF_UP).toString());
} }
orderItemInfo.setXmdj(xmdj.toString()); orderItemInfo.setXmdj(xmdj.toString());
@ -2092,12 +2099,14 @@ public class OrderInfoServiceImpl implements OrderInfoService {
deleteItem.addAll(value.stream().map(t->t.getId()).collect(Collectors.toList())); deleteItem.addAll(value.stream().map(t->t.getId()).collect(Collectors.toList()));
} }
log.debug("合并明细{}",JSONObject.toJSONString(orderItemInfoList)); log.debug("合并明细{}",JSONObject.toJSONString(orderItemInfoList));
if((termType && diffSe.abs().doubleValue() > 0.06) || (!termType && diffSe.abs().doubleValue() > 1.27)){
return R.error("合并失败,合并明细后价税合计超过总的误差范围");
}
if(!orderItemInfoList.isEmpty()){ if(!orderItemInfoList.isEmpty()){
orderItemInfoMapper.deleteItemByItemId(deleteItem); orderItemInfoMapper.deleteItemByItemId(deleteItem);
orderItemInfoMapper.insertOrderItemByList(orderItemInfoList); orderItemInfoMapper.insertOrderItemByList(orderItemInfoList);
} }
//更新清单标志 重新设置金额 //更新清单标志 重新设置金额
OrderInfo orderInfo = orderMapper.selectOrderInfoByOrderId(orderInfoId, null);
OrderInfo orderInfoNew = new OrderInfo(); OrderInfo orderInfoNew = new OrderInfo();
orderInfoNew.setId(orderInfoId); orderInfoNew.setId(orderInfoId);
orderInfoNew.setUpdateTime(new Date()); orderInfoNew.setUpdateTime(new Date());

Loading…
Cancel
Save