|
|
@@ -448,48 +448,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
item.setBillType(order.getBillType());
|
|
|
orderItemsMapper.updateById(item);
|
|
|
}
|
|
|
- //特殊颜色
|
|
|
- if (ObjectUtils.isNotNull(item.getPartsColourValue())) {
|
|
|
- JSONArray objects = JSONArray.parseArray(item.getPartsColourValue());
|
|
|
- List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
- saveOrderParts(categoryConstantInfos, item.getId(), "1", order.getId());
|
|
|
- }
|
|
|
- //特殊处理
|
|
|
- if (ObjectUtils.isNotNull(item.getParts_handleValue())) {
|
|
|
- JSONArray objects = JSONArray.parseArray(item.getParts_handleValue());
|
|
|
- List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
- saveOrderParts(categoryConstantInfos, item.getId(), "2", order.getId());
|
|
|
- }
|
|
|
- //瓶帽配件
|
|
|
- if (ObjectUtils.isNotNull(item.getPartsCapValue())) {
|
|
|
- JSONArray objects = JSONArray.parseArray(item.getPartsCapValue());
|
|
|
- List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
- saveOrderParts(categoryConstantInfos, item.getId(), "3", order.getId());
|
|
|
- }
|
|
|
- //阀门配件
|
|
|
- if (ObjectUtils.isNotNull(item.getPartsValveValue())) {
|
|
|
- JSONArray objects = JSONArray.parseArray(item.getPartsValveValue());
|
|
|
- List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
- saveOrderParts(categoryConstantInfos, item.getId(), "4", order.getId());
|
|
|
- }
|
|
|
- //包装方式
|
|
|
- if (ObjectUtils.isNotNull(item.getPartsModeValue())) {
|
|
|
- JSONArray objects = JSONArray.parseArray(item.getPartsModeValue());
|
|
|
- List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
- saveOrderParts(categoryConstantInfos, item.getId(), "5", order.getId());
|
|
|
- }
|
|
|
- //认证
|
|
|
- if (ObjectUtils.isNotNull(item.getPartsAuthenticationValue())) {
|
|
|
- JSONArray objects = JSONArray.parseArray(item.getPartsAuthenticationValue());
|
|
|
- List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
- saveOrderParts(categoryConstantInfos, item.getId(), "6", order.getId());
|
|
|
- }
|
|
|
- //其他
|
|
|
- if (ObjectUtils.isNotNull(item.getPartsOtherValue())) {
|
|
|
- JSONArray objects = JSONArray.parseArray(item.getPartsOtherValue());
|
|
|
- List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
- saveOrderParts(categoryConstantInfos, item.getId(), "7", order.getId());
|
|
|
- }
|
|
|
});
|
|
|
// List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
|
|
|
order.setOrderItemsList(order.getOrderItemsList());
|
|
|
@@ -1547,6 +1505,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
|
|
|
this.paymentApply(order, "收费", "销售");
|
|
|
}
|
|
|
+ } else if (OrderTypeEnum.EXPORT.getType().equals(order.getTradeType())) {
|
|
|
+ if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
|
|
|
+ this.paymentApplyFD(order, "收费", "销售");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -2445,6 +2407,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
orderMessage.setSales(salesUser.getData().getName());
|
|
|
}
|
|
|
}
|
|
|
+ orderMessage.setCurrentAmount(orderMessage.getDebitAmount().subtract(orderMessage.getSettlmentAmount()));
|
|
|
// 获取创建人中文名
|
|
|
R<User> createUser = userClient.userInfoById(orderMessage.getCreateUser());
|
|
|
if (!createUser.isSuccess() && createUser.getData() != null) {
|
|
|
@@ -2521,7 +2484,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq("tenant_id", SecureUtil.getTenantId()).eq("status", 0).eq("is_deleted", 0).orderByAsc("id"));
|
|
|
orderMessage.setOrderModifyList(orderModifyList);
|
|
|
//获取订单结算信息
|
|
|
- List<Settlement> settlementList = financeClient.selectListBySrcId(order.getId());
|
|
|
+ List<Settlement> settlementList = financeClient.selectListBySrcId(order.getId(), null);
|
|
|
orderMessage.setSettlementList(settlementList == null ? new ArrayList<>() : settlementList);
|
|
|
Acc acc = financeClient.selectBySrcId(orderMessage.getId());
|
|
|
if (ObjectUtils.isNotNull(acc)) {
|
|
|
@@ -2670,7 +2633,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
public R revoke(Order order) {
|
|
|
Order selectOrder = baseMapper.selectById(order.getId());
|
|
|
if (ObjectUtils.isNotNull(selectOrder)) {
|
|
|
- List<Settlement> settlementList = financeClient.selectListBySrcId(selectOrder.getId());
|
|
|
+ List<Settlement> settlementList = financeClient.selectListBySrcId(selectOrder.getId(), null);
|
|
|
if (ObjectUtils.isNotNull(settlementList) && settlementList.size() > 0) {
|
|
|
throw new RuntimeException("该账单已结算,无法撤回");
|
|
|
}
|
|
|
@@ -2799,8 +2762,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
baseMapper.updateById(selectOrder);
|
|
|
} else {
|
|
|
+ Order selectOrder = baseMapper.selectById(order.getId());
|
|
|
+ if (ObjectUtils.isNotNull(selectOrder.getOldTrxId())) {
|
|
|
+ throw new RuntimeException("该单据为小程序数据,请到线上付款");
|
|
|
+ }
|
|
|
if (ObjectUtils.isNotNull(order.getCurrentAmount()) && !order.getCurrentAmount().equals(new BigDecimal(0))) {
|
|
|
-
|
|
|
List<Settlement> settlementList = new ArrayList<>();
|
|
|
if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0) {
|
|
|
settlementList = order.getSettlementList();
|
|
|
@@ -2821,7 +2787,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setSettlementList(settlementList);
|
|
|
this.paymentApply(order, order.getBillType(), order.getTradeType());
|
|
|
} else {
|
|
|
- List<Settlement> settlementList1 = financeClient.selectListBySrcId(order.getId());
|
|
|
+ List<Settlement> settlementList1 = financeClient.selectListBySrcId(order.getId(), null);
|
|
|
order.setSettlementList(settlementList1);
|
|
|
//获取订单结算信息
|
|
|
if (ObjectUtils.isNotNull(order.getSettlmentAmount()) && order.getSettlementList().size() > 0) {
|
|
|
@@ -4328,7 +4294,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
public R returnGoodsRefund(Order order) {
|
|
|
|
|
|
Order selectOrder = baseMapper.selectById(order.getId());
|
|
|
-
|
|
|
+ if (ObjectUtils.isNull(selectOrder.getOldTrxId())) {
|
|
|
+ throw new RuntimeException("未在线上支付,退款申请失败,请联系供货商!");
|
|
|
+ }
|
|
|
Order newOrder = new Order();
|
|
|
BeanUtil.copyProperties(selectOrder, newOrder);
|
|
|
newOrder.setSrcId(selectOrder.getId());
|
|
|
@@ -5080,6 +5048,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
orderItems.setFudaPurchaseStatus("待采购");
|
|
|
orderItemsMapper.updateById(orderItems);
|
|
|
+ //瓶帽配件
|
|
|
+ if (ObjectUtils.isNotNull(orderItems.getPartsCapValue())) {
|
|
|
+ JSONArray objects = JSONArray.parseArray(orderItems.getPartsCapValue());
|
|
|
+ List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
+ saveOrderParts(categoryConstantInfos, orderItems.getId(), "3", order.getId());
|
|
|
+ }
|
|
|
+ //阀门配件
|
|
|
+ if (ObjectUtils.isNotNull(orderItems.getPartsValveValue())) {
|
|
|
+ JSONArray objects = JSONArray.parseArray(orderItems.getPartsValveValue());
|
|
|
+ List<OrderParts> categoryConstantInfos = objects.toJavaList(OrderParts.class);
|
|
|
+ saveOrderParts(categoryConstantInfos, orderItems.getId(), "4", order.getId());
|
|
|
+ }
|
|
|
}
|
|
|
selectOrder.setFudaPurchaseStatus("待采购");
|
|
|
selectOrder.setOrderStatus("待采购");
|
|
|
@@ -5829,7 +5809,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
lambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getTenantId, AuthUtil.getTenantId()).eq(OrderItems::getPid, order.getId());
|
|
|
List<OrderItems> orderItemsList = orderItemsMapper.selectList(lambdaQueryWrapper);
|
|
|
// 保存订单明细
|
|
|
- if (CollectionUtils.isNotEmpty(orderItemsList)) {
|
|
|
+ if (CollectionUtils.isNotEmpty(orderItemsList) && !"2".equals(selectOrder.getOrderSource())) {
|
|
|
//循环增减库存
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
BigDecimal stockPrice = new BigDecimal("0.00");
|
|
|
@@ -6371,6 +6351,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
List<Long> itemIds = order.getOrderItemsList().stream().map(OrderItems::getItemId).distinct().collect(Collectors.toList());
|
|
|
StringBuilder goodsId = new StringBuilder();
|
|
|
for (Long itemId : itemIds) {
|
|
|
+ GoodsDesc goodsDesc = goodsDescClient.getGoodsDescDetail(itemId);
|
|
|
+ if (!"1".equals(goodsDesc.getUpperFrame())) {
|
|
|
+ throw new RuntimeException(goodsDesc.getCname() + "-该产品以下架,付款失败");
|
|
|
+ }
|
|
|
goodsId.append(itemId).append(",");
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(goodsId)) {
|
|
|
@@ -7022,8 +7006,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order1.setId(order.getId());
|
|
|
order1.setSettlmentAmount(receivedAmount);
|
|
|
order1.setBalanceAmount(amount);
|
|
|
- order1.setStatus(3);
|
|
|
- order1.setActualPaymentStatus(2);
|
|
|
+ if (new BigDecimal("0.00").equals(amount)) {
|
|
|
+ order1.setStatus(3);
|
|
|
+ order1.setActualPaymentStatus(2);
|
|
|
+ } else {
|
|
|
+ order1.setStatus(0);
|
|
|
+ order1.setActualPaymentStatus(1);
|
|
|
+ }
|
|
|
baseMapper.updateById(order1);
|
|
|
}
|
|
|
//生成账单
|
|
|
@@ -7034,6 +7023,120 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 订单生成账单 并且推送财务消息
|
|
|
+ *
|
|
|
+ * @param order 订单信息
|
|
|
+ * @param billType 货款类型: 申请 收费 付费
|
|
|
+ * @param itemType 付款类型: 采购 销售 收货 发货
|
|
|
+ */
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class)
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void paymentApplyFD(Order order, String billType, String itemType) {
|
|
|
+ //获取所属公司中文名
|
|
|
+ if (order.getBelongToCorpId() != null) {
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getBelongToCorpId());
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
+ order.setBelongToCorpName(corpMessage.getData().getCname());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取客户中文名
|
|
|
+ if (order.getCorpId() != null) {
|
|
|
+ R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
|
|
|
+ if (corpMessage.isSuccess() && corpMessage.getData() != null) {
|
|
|
+ order.setCorpsName(corpMessage.getData().getCname());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ BigDecimal amount = BigDecimal.ZERO;//对账金额 销售订单生成的金额 销售金额-本次使用返利金额+费用明细
|
|
|
+ BigDecimal price = BigDecimal.ZERO;//对账单价
|
|
|
+ ApplyDTO applyDTO = new ApplyDTO();
|
|
|
+ applyDTO.setBillType(billType);
|
|
|
+ applyDTO.setTradeType(order.getTradeType());
|
|
|
+ applyDTO.setDc("D");
|
|
|
+ applyDTO.setBelongCompany(order.getBelongToCorpName());
|
|
|
+ applyDTO.setUrl(order.getUrl());
|
|
|
+ applyDTO.setPageStatus(order.getPageStatus());
|
|
|
+ applyDTO.setPageLabel(order.getPageLabel());
|
|
|
+ applyDTO.setCheckType(order.getCheckType());
|
|
|
+ applyDTO.setAccDate(order.getBusinesDate());
|
|
|
+ List<Items> itemsList = new ArrayList<>();
|
|
|
+ //获取订单明细信息
|
|
|
+ LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0);
|
|
|
+ orderItemsLambdaQueryWrapper.eq(OrderItems::getPid, order.getId());
|
|
|
+ orderItemsLambdaQueryWrapper.eq(OrderItems::getGoodType, 0);
|
|
|
+ List<OrderItems> orderItemsList = orderItemsService.list(orderItemsLambdaQueryWrapper);
|
|
|
+ if (CollectionUtils.isNotEmpty(orderItemsList)) {
|
|
|
+ amount = amount.add(orderItemsList.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ }
|
|
|
+ if (order.getThisUsedProfit() != null) {
|
|
|
+ amount = amount.subtract(order.getThisUsedProfit());
|
|
|
+ }
|
|
|
+ price = amount;
|
|
|
+ Items items = new Items();
|
|
|
+ items.setBelongToCorpId(order.getBelongToCorpId());
|
|
|
+ items.setSrcOrderno(order.getOrgOrderNo());
|
|
|
+ items.setItemType(itemType);
|
|
|
+ items.setCorpId(order.getCorpId());
|
|
|
+ items.setSrcParentId(order.getId());
|
|
|
+ items.setCurrency("CNY");
|
|
|
+ items.setExchangeRate(new BigDecimal(1));
|
|
|
+ items.setTaxRate(BigDecimal.ZERO);
|
|
|
+ items.setSrcType(1);
|
|
|
+ items.setTradeType(order.getTradeType());
|
|
|
+ items.setChargeMember(order.getChargeMember());
|
|
|
+ items.setAmount(amount);
|
|
|
+ items.setQuantity(new BigDecimal(1));
|
|
|
+ items.setPrice(price);
|
|
|
+ items.setUnit("条");
|
|
|
+ items.setRemarks(order.getOrderRemark());
|
|
|
+ //获取费用id
|
|
|
+ R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
|
|
|
+ if (fees.isSuccess() && fees.getData() != null) {
|
|
|
+ items.setCostType(fees.getData().getId().toString());
|
|
|
+ }
|
|
|
+ itemsList.add(items);
|
|
|
+ applyDTO.setItemsList(itemsList);
|
|
|
+ if (CollectionUtils.isNotEmpty(itemsList)) {
|
|
|
+ //生成账单
|
|
|
+ R paymentApply = financeClient.paymentApply(applyDTO);
|
|
|
+ if (!paymentApply.isSuccess()) {
|
|
|
+ throw new RuntimeException(paymentApply.getMsg());
|
|
|
+ }
|
|
|
+ //给角色为财务的人发送消息
|
|
|
+ R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
|
|
|
+ if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
|
|
|
+ R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()));
|
|
|
+ if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
|
|
|
+ for (User datum : userList.getData()) {
|
|
|
+ //循环发送消息
|
|
|
+ Message sendMessage = new Message();
|
|
|
+ sendMessage.setParameter(String.valueOf(order.getId()));
|
|
|
+ sendMessage.setUserName(AuthUtil.getUserName());
|
|
|
+ sendMessage.setUserId(AuthUtil.getUserId());
|
|
|
+ sendMessage.setToUserId(datum.getId());
|
|
|
+ sendMessage.setToUserName(datum.getName());
|
|
|
+ sendMessage.setMessageType(1);
|
|
|
+ sendMessage.setTenantId(AuthUtil.getTenantId());
|
|
|
+ sendMessage.setCreateUser(AuthUtil.getUserId());
|
|
|
+ sendMessage.setCreateTime(new Date());
|
|
|
+ sendMessage.setUrl(order.getUrl());
|
|
|
+ sendMessage.setPageLabel(order.getPageLabel());
|
|
|
+ sendMessage.setPageStatus(order.getPageStatus());
|
|
|
+ sendMessage.setMessageBody(order.getBelongToCorpName() + " 您的客户:" + order.getCorpsName() + "的销售订单 " + order.getOrderNo() + "审核通过,请查看");
|
|
|
+ R save = messageClient.save(sendMessage);
|
|
|
+ if (!save.isSuccess()) {
|
|
|
+ throw new SecurityException("发送消息失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //修改原数据表示已生成账单
|
|
|
+ //修改商品明细
|
|
|
+ orderItemsMapper.submitPay(order.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public List<Map<String, Object>> calculationDomestic(Order order, int type) {
|
|
|
|
|
|
//应收集合
|