|
|
@ -1932,7 +1932,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
CommodityCodeEntity commodityCodeEntity = buildCommodity(itemInfo, param, spbmMap); |
|
|
|
CommodityCodeEntity commodityCodeEntity = buildCommodity(itemInfo, param, spbmMap); |
|
|
|
//判断是否已存在,同步中存在一样的是否需要过滤后期考虑
|
|
|
|
//判断是否已存在
|
|
|
|
int i = 0; |
|
|
|
int i = 0; |
|
|
|
//公司不维护
|
|
|
|
//公司不维护
|
|
|
|
CommodityCodeEntity commodityCodeOld = collect.get(itemInfo.getZxbm()); |
|
|
|
CommodityCodeEntity commodityCodeOld = collect.get(itemInfo.getZxbm()); |
|
|
@ -2033,7 +2033,6 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
}else{ |
|
|
|
}else{ |
|
|
|
collect = orderItemInfos; |
|
|
|
collect = orderItemInfos; |
|
|
|
} |
|
|
|
} |
|
|
|
log.debug("合并分组前{}",JSONObject.toJSONString(collect)); |
|
|
|
|
|
|
|
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()); |
|
|
@ -2043,12 +2042,10 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
}).collect(Collectors.groupingBy(t -> t.getFphxz() + t.getXmmc() + t.getXmdw() + t.getGgxh() + t.getSl() + t.getSpbm() + t.getZxbm())); |
|
|
|
}).collect(Collectors.groupingBy(t -> t.getFphxz() + t.getXmmc() + t.getXmdw() + t.getGgxh() + t.getSl() + t.getSpbm() + t.getZxbm())); |
|
|
|
List<OrderItemInfo> orderItemInfoList = new ArrayList<>(); |
|
|
|
List<OrderItemInfo> orderItemInfoList = new ArrayList<>(); |
|
|
|
List<String> deleteItem = new ArrayList<>(); |
|
|
|
List<String> deleteItem = new ArrayList<>(); |
|
|
|
log.debug("合并名称分组{}",JSONObject.toJSONString(collect1)); |
|
|
|
BigDecimal diffJe = new BigDecimal("0"); |
|
|
|
|
|
|
|
BigDecimal diffSe = new BigDecimal("0"); |
|
|
|
for (List<OrderItemInfo> value : collect1.values()) { |
|
|
|
for (List<OrderItemInfo> value : collect1.values()) { |
|
|
|
if(value.size() == 1){ |
|
|
|
if(value.size() == 1){continue;} |
|
|
|
log.debug("跳过合并{}",JSONObject.toJSONString(value)); |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
BigDecimal xmsl = new BigDecimal("0"); |
|
|
|
BigDecimal xmsl = new BigDecimal("0"); |
|
|
|
BigDecimal xmje = new BigDecimal("0"); |
|
|
|
BigDecimal xmje = new BigDecimal("0"); |
|
|
|
BigDecimal se = new BigDecimal("0"); |
|
|
|
BigDecimal se = new BigDecimal("0"); |
|
|
@ -2074,6 +2071,7 @@ 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().longValue() > 0.06){ |
|
|
|
if(se.subtract(taxAmount).abs().longValue() > 0.06){ |
|
|
|
|
|
|
|
log.info("订单id:{}合并明细超过0.06",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.multiply(taxAmountNew); |
|
|
|
BigDecimal xmjeNew = taxAndAmount.multiply(taxAmountNew); |
|
|
@ -2086,37 +2084,40 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
} |
|
|
|
} |
|
|
|
orderItemInfo.setXmdj(xmdj.toString()); |
|
|
|
orderItemInfo.setXmdj(xmdj.toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
log.info("订单id:{}合并明细超过0.06暂时不合并",orderInfoId); |
|
|
|
|
|
|
|
// return R.error("明细行号{}合并错误,合并明细超过0.06暂时不合并",orderItemInfo.getSphxh());
|
|
|
|
// return R.error("明细行号{}合并错误,合并明细超过0.06暂时不合并",orderItemInfo.getSphxh());
|
|
|
|
|
|
|
|
diffJe = diffJe.add(xmjeNew.subtract(xmje)); |
|
|
|
|
|
|
|
diffSe = diffSe.add(taxAmountNew.subtract(se)); |
|
|
|
} |
|
|
|
} |
|
|
|
orderItemInfoList.add(orderItemInfo); |
|
|
|
orderItemInfoList.add(orderItemInfo); |
|
|
|
deleteItem.addAll(value.stream().map(t->t.getId()).collect(Collectors.toList())); |
|
|
|
deleteItem.addAll(value.stream().map(t->t.getId()).collect(Collectors.toList())); |
|
|
|
} |
|
|
|
} |
|
|
|
// OrderInfo orderInfo = new OrderInfo();
|
|
|
|
|
|
|
|
// orderInfo.setId(orderInfoId);
|
|
|
|
|
|
|
|
// orderInfo.setHjse();
|
|
|
|
|
|
|
|
// orderInfo.setHjbhsje();
|
|
|
|
|
|
|
|
// orderInfo.setUpdateTime(new Date());
|
|
|
|
|
|
|
|
// orderMapper.updateOrderInfoByOrderId(orderInfo,null);
|
|
|
|
|
|
|
|
// OrderProcessInfo orderProcessInfo = new OrderProcessInfo();
|
|
|
|
|
|
|
|
// orderProcessInfo.setOrderInfoId(orderInfoId);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// orderProcessInfo.setHjbhsje();
|
|
|
|
|
|
|
|
// orderProcessInfo.setKpse();
|
|
|
|
|
|
|
|
// orderProcessService.updateOrderProcessInfoByProcessId(orderProcessInfo,null);
|
|
|
|
|
|
|
|
log.debug("合并明细{}",JSONObject.toJSONString(orderItemInfoList)); |
|
|
|
log.debug("合并明细{}",JSONObject.toJSONString(orderItemInfoList)); |
|
|
|
if(!orderItemInfoList.isEmpty()){ |
|
|
|
if(!orderItemInfoList.isEmpty()){ |
|
|
|
orderItemInfoMapper.deleteItemByItemId(deleteItem); |
|
|
|
orderItemInfoMapper.deleteItemByItemId(deleteItem); |
|
|
|
orderItemInfoMapper.insertOrderItemByList(orderItemInfoList); |
|
|
|
orderItemInfoMapper.insertOrderItemByList(orderItemInfoList); |
|
|
|
} |
|
|
|
} |
|
|
|
//更新清单标志
|
|
|
|
//更新清单标志 重新设置金额
|
|
|
|
OrderInfo orderInfo1 = orderMapper.selectOrderInfoByOrderId(orderInfoId, null); |
|
|
|
OrderInfo orderInfo = orderMapper.selectOrderInfoByOrderId(orderInfoId, null); |
|
|
|
if("1".equals(orderInfo1.getQdBz())&&orderItemInfos.size() - deleteItem.size() < 8 ){ |
|
|
|
OrderInfo orderInfoNew = new OrderInfo(); |
|
|
|
OrderInfo orderInfo = new OrderInfo(); |
|
|
|
orderInfoNew.setId(orderInfoId); |
|
|
|
orderInfo.setId(orderInfoId); |
|
|
|
orderInfoNew.setUpdateTime(new Date()); |
|
|
|
orderInfo.setQdBz("0"); |
|
|
|
OrderProcessInfo orderProcessInfo = orderProcessInfoMapper.selectByOrderId(orderInfoId, null); |
|
|
|
orderMapper.updateOrderInfoByOrderId(orderInfo,null); |
|
|
|
OrderProcessInfo orderProcessInfoNew = new OrderProcessInfo(); |
|
|
|
} |
|
|
|
orderProcessInfoNew.setId(orderProcessInfo.getId()); |
|
|
|
|
|
|
|
orderProcessInfoNew.setUpdateTime(new Date()); |
|
|
|
|
|
|
|
if("1".equals(orderInfo.getQdBz())&&orderItemInfos.size() - deleteItem.size() < 8 ){ |
|
|
|
|
|
|
|
orderInfoNew.setQdBz("0"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(diffJe.compareTo(BigDecimal.ZERO) != 0){ |
|
|
|
|
|
|
|
String bhsje = new BigDecimal(orderInfo.getKphjje()).add(diffJe).toString(); |
|
|
|
|
|
|
|
String se = new BigDecimal(orderInfo.getHjse()).add(diffSe).toString(); |
|
|
|
|
|
|
|
orderInfoNew.setHjbhsje(bhsje); |
|
|
|
|
|
|
|
orderInfoNew.setHjse(se); |
|
|
|
|
|
|
|
orderProcessInfoNew.setHjbhsje(bhsje); |
|
|
|
|
|
|
|
orderProcessInfoNew.setKpse(se); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
orderMapper.updateOrderInfoByOrderId(orderInfoNew,null); |
|
|
|
|
|
|
|
orderProcessInfoMapper.updateOrderProcessInfoByProcessId(orderProcessInfoNew,null); |
|
|
|
return R.ok(); |
|
|
|
return R.ok(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|