feature:明细合并

release
gaorl 2 years ago
parent 6e18397dd4
commit 9d8933529d
  1. 2
      order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java
  2. 2
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderCommonService.java
  3. 4
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java
  4. 8
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderMergeServiceImpl.java

@ -1080,6 +1080,8 @@ public enum OrderInfoEnum {
*/
MERGE_COMMODITY_RULE_TYPE_0("0", "商品名称、规格型号、税率、单价、税收分类编码均一致"),
MERGE_COMMODITY_RULE_TYPE_1("1", "商品名称、规格型号、税率、税收分类编码均一致"),
MERGE_COMMODITY_RULE_TYPE_2("2", "发票行性质、商品名称、物料编码、规格型号、单位、单价、税编、税率均一致"),
MERGE_COMMODITY_RULE_TYPE_3("3", "发票行性质、商品名称、物料编码、规格型号、单位、税编、税率均一致"),
/**
* 是否全电发票

@ -184,6 +184,6 @@ public interface OrderCommonService {
List<OrderInfoEsc> insertOrderEsc, List<OrderInfoJdc> insertOrderJdc, List<String> shList);
@Transactional
void saveItemMergeOrderInfo(CommonOrderInfo commonOrderInfo);
void saveItemMergeOrderInfo(CommonOrderInfo commonOrderInfo,List<String> deleteItem);
}

@ -1558,12 +1558,12 @@ public class OrderCommonServiceImpl implements OrderCommonService {
}
@Override
public void saveItemMergeOrderInfo(CommonOrderInfo commonOrderInfo){
public void saveItemMergeOrderInfo(CommonOrderInfo commonOrderInfo,List<String> deleteItem){
List<OrderItemInfo> orderItemInfoList = commonOrderInfo.getOrderItemInfo();
OrderInfo orderInfo = commonOrderInfo.getOrderInfo();
OrderProcessInfo processInfo = commonOrderInfo.getProcessInfo();
if(!orderItemInfoList.isEmpty()){
orderItemInfoMapper.deleteItemByItemId(orderItemInfoList.stream().map(t->t.getId()).collect(Collectors.toList()));
orderItemInfoMapper.deleteItemByItemId(deleteItem);
orderItemInfoMapper.insertOrderItemByList(orderItemInfoList);
}

@ -913,7 +913,7 @@ public class OrderMergeServiceImpl implements OrderMergeService {
baseInfoQueryBO.setUserId(String.valueOf(userInfoService.getUser().getUserId()));
List<SysBaseInfoEntity> sysBaseInfoEntityList = baseInfoService.queryInfoByCache(baseInfoQueryBO);
//合并同类商品规则类型,默认为 ‘商品名称、规格型号、税率、单价、税收分类编码均一致’
String mergeCommodityRuleType = OrderInfoEnum.MERGE_COMMODITY_RULE_TYPE_0.getKey();
String mergeCommodityRuleType = OrderInfoEnum.MERGE_COMMODITY_RULE_TYPE_2.getKey();
if(CollectionUtil.isNotEmpty(sysBaseInfoEntityList) && Objects.nonNull(sysBaseInfoEntityList.get(0))){
SysBaseInfoEntity sysBaseInfoEntity = sysBaseInfoEntityList.get(0);
String value = sysBaseInfoEntity.getValue();
@ -937,6 +937,8 @@ public class OrderMergeServiceImpl implements OrderMergeService {
List<OrderItemInfo> mergeOutItem = orderItemInfos.stream().filter(t -> !mergeInItem.contains(t)).collect(Collectors.toList());
String sksbCode = orderInfo.getSksbCode();
boolean termType = OrderInfoEnum.TAX_EQUIPMENT_FGBW.equals(sksbCode) || OrderInfoEnum.TAX_EQUIPMENT_FGUKEY.equals(sksbCode);
//获取合并规则
String mergeRuleType = queryMergeCommodityRuleType(orderInfo.getNsrsbh());
//根据配置去判断合并规则
Map<String, List<OrderItemInfo>> collect1 = orderItemInfos.stream().map(t->{
t.setXmmc(StringUtils.isBlank(t.getXmmc())?"":t.getXmmc());
@ -944,7 +946,7 @@ public class OrderMergeServiceImpl implements OrderMergeService {
t.setGgxh(StringUtils.isBlank(t.getGgxh())?"":t.getGgxh());
t.setZxbm(StringUtils.isBlank(t.getZxbm())?"":t.getZxbm());
return t;
}).collect(Collectors.groupingBy(t -> t.getFphxz() + t.getXmmc() + t.getXmdw() + t.getGgxh() + t.getSl() + t.getSpbm() + t.getZxbm()));
}).collect(Collectors.groupingBy(t->OrderMergeUtil.getOrderItemInfoKey(t, mergeRuleType)));
List<OrderItemInfo> orderItemInfoList = new ArrayList<>();
List<String> deleteItem = new ArrayList<>();
log.debug("明细合并前明细数据,{}",JSONObject.toJSONString(orderItemInfos));
@ -1024,7 +1026,7 @@ public class OrderMergeServiceImpl implements OrderMergeService {
commonOrderInfo.setOrderInfo(orderInfoNew);
commonOrderInfo.setProcessInfo(orderProcessInfoNew);
try {
apiInvoiceCommonService.saveItemMergeOrderInfo(commonOrderInfo);
apiInvoiceCommonService.saveItemMergeOrderInfo(commonOrderInfo,deleteItem);
} catch (Exception e) {
log.error("明细合并更新数据库出错{}",e);
return R.error();

Loading…
Cancel
Save