|
|
@@ -16,6 +16,7 @@
|
|
|
*/
|
|
|
package org.springblade.purchase.sales.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
@@ -88,7 +89,7 @@ import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static org.springblade.common.constant.TenantConstant.*;
|
|
|
+import static org.springblade.common.constant.TenantConstant.OFFSET_RATIO;
|
|
|
|
|
|
/**
|
|
|
* 销售或采购订单表 服务实现类
|
|
|
@@ -447,24 +448,47 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
item.setBillType(order.getBillType());
|
|
|
orderItemsMapper.updateById(item);
|
|
|
}
|
|
|
- //保存配件明细信息
|
|
|
- if (CollectionUtils.isNotEmpty(item.getPartsList())) {
|
|
|
- item.getPartsList().forEach(parts -> {
|
|
|
- if (parts.getId() == null) {
|
|
|
- parts.setTenantId(SecureUtil.getTenantId());
|
|
|
- parts.setCreateTime(new Date());
|
|
|
- parts.setCreateUser(SecureUtil.getUserId());
|
|
|
- parts.setPid(item.getId());
|
|
|
- parts.setSrcPid(item.getPid());
|
|
|
- orderPartsMapper.insert(parts);
|
|
|
- } else {
|
|
|
- parts.setUpdateTime(new Date());
|
|
|
- parts.setUpdateUser(SecureUtil.getUserId());
|
|
|
- parts.setPid(item.getId());
|
|
|
- parts.setSrcPid(item.getPid());
|
|
|
- orderPartsMapper.updateById(parts);
|
|
|
- }
|
|
|
- });
|
|
|
+ //特殊颜色
|
|
|
+ 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());
|
|
|
@@ -562,6 +586,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return R.data(order);
|
|
|
}
|
|
|
|
|
|
+ public void saveOrderParts(List<OrderParts> orderPartsList, Long itemId, String type, Long orderId) {
|
|
|
+ //保存配件明细信息
|
|
|
+ if (CollectionUtils.isNotEmpty(orderPartsList)) {
|
|
|
+ orderPartsList.forEach(parts -> {
|
|
|
+ if (parts.getId() == null) {
|
|
|
+ parts.setType(type);
|
|
|
+ parts.setTenantId(SecureUtil.getTenantId());
|
|
|
+ parts.setCreateTime(new Date());
|
|
|
+ parts.setCreateUser(SecureUtil.getUserId());
|
|
|
+ parts.setPid(itemId);
|
|
|
+ parts.setSrcPid(orderId);
|
|
|
+ orderPartsMapper.insert(parts);
|
|
|
+ } else {
|
|
|
+ parts.setUpdateTime(new Date());
|
|
|
+ parts.setUpdateUser(SecureUtil.getUserId());
|
|
|
+ parts.setPid(itemId);
|
|
|
+ parts.setSrcPid(orderId);
|
|
|
+ orderPartsMapper.updateById(parts);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public R saveOrderMessageApp(Order order) {
|
|
|
@@ -2723,7 +2770,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
public R collectPayment(Order order) {
|
|
|
if ("线上".equals(order.getOrderSource())) {
|
|
|
Order selectOrder = baseMapper.selectById(order.getId());
|
|
|
- selectOrder.setStatus(2);
|
|
|
+ selectOrder.setStatus(3);
|
|
|
+ selectOrder.setActualPaymentStatus(2);
|
|
|
if (null == selectOrder) {
|
|
|
throw new RuntimeException("未找到订单信息,订单已取消");
|
|
|
}
|
|
|
@@ -4332,7 +4380,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper.eq(OrderItems::getTenantId, AuthUtil.getTenantId()).eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getPid, selectOrder.getId());
|
|
|
List<OrderItems> orderItemsList1 = orderItemsMapper.selectList(lambdaQueryWrapper);
|
|
|
- orderItemsService.saveOrderItemsMessage(orderItemsList1, date, newOrder.getId());
|
|
|
+ orderItemsList1.forEach(item -> {
|
|
|
+ OrderItems orderItems = new OrderItems();
|
|
|
+ BeanUtil.copyProperties(item, orderItems);
|
|
|
+ orderItems.setId(null);
|
|
|
+ orderItems.setTenantId(SecureUtil.getTenantId());
|
|
|
+ orderItems.setCreateUser(SecureUtil.getUserId());
|
|
|
+ orderItems.setCreateTime(date);
|
|
|
+ orderItems.setPid(newOrder.getId());
|
|
|
+ orderItemsService.save(orderItems);
|
|
|
+ });
|
|
|
newOrder.setStatus(9);
|
|
|
newOrder.setConfirmStatus(1);
|
|
|
newOrder.setReturnGoods(newOrder.getStorageQuantity());
|
|
|
@@ -5645,7 +5702,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* 状态统计接口
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<Map<String, Object>> statusStatisticsApi() {
|
|
|
+ public List<Map<String, Object>> statusStatisticsApi(String type) {
|
|
|
List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
//查询字典所有状态
|
|
|
R<List<DictBiz>> res = dictBizClient.getList("order_status_pjjl");
|
|
|
@@ -5667,14 +5724,27 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
map.put("dictionaryStatus", dictBiz.getDictValue());
|
|
|
map.put("status", dictBiz.getDictKey());
|
|
|
map.put("colour", dictBiz.getColour());
|
|
|
- if ("13".equals(dictBiz.getDictKey())) {
|
|
|
- int count = baseMapper.selectCount(new LambdaQueryWrapper<Order>().eq(Order::getIsDeleted, 0)
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(ObjectUtils.isNotNull(corpId), Order::getCorpId, corpId)
|
|
|
- .in(Order::getStatus, list.stream().map(DictBiz::getDictKey).collect(Collectors.toList())));
|
|
|
- map.put("count", count);
|
|
|
+ if (ObjectUtils.isNotNull(type)) {
|
|
|
+ if ("8".equals(dictBiz.getDictKey()) || "9".equals(dictBiz.getDictKey()) || "10".equals(dictBiz.getDictKey()) || "11".equals(dictBiz.getDictKey())) {
|
|
|
+ int count = baseMapper.selectCount(new LambdaQueryWrapper<Order>().eq(Order::getIsDeleted, 0)
|
|
|
+ .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ObjectUtils.isNotNull(corpId), Order::getCorpId, corpId)
|
|
|
+ .apply("find_in_set(bill_type,'XSTH')")
|
|
|
+ .in(Order::getStatus, dictBiz.getDictKey()));
|
|
|
+ map.put("count", count);
|
|
|
+ } else {
|
|
|
+ map.put("count", count(Integer.parseInt(dictBiz.getDictKey()), corpId));
|
|
|
+ }
|
|
|
} else {
|
|
|
- map.put("count", count(Integer.parseInt(dictBiz.getDictKey()), corpId));
|
|
|
+ if ("13".equals(dictBiz.getDictKey())) {
|
|
|
+ int count = baseMapper.selectCount(new LambdaQueryWrapper<Order>().eq(Order::getIsDeleted, 0)
|
|
|
+ .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ObjectUtils.isNotNull(corpId), Order::getCorpId, corpId)
|
|
|
+ .in(Order::getStatus, list.stream().map(DictBiz::getDictKey).collect(Collectors.toList())));
|
|
|
+ map.put("count", count);
|
|
|
+ } else {
|
|
|
+ map.put("count", count(Integer.parseInt(dictBiz.getDictKey()), corpId));
|
|
|
+ }
|
|
|
}
|
|
|
mapList.add(map);
|
|
|
}
|
|
|
@@ -5715,6 +5785,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
selectOrder.setStatus(5);
|
|
|
selectOrder.setShippingAddress(selectOrder.getArrivalAddress());//发货地址
|
|
|
selectOrder.setDeliverTime(new Date());//发货时间
|
|
|
+ selectOrder.setRequiredDeliveryDate(new Date());//发货时间
|
|
|
selectOrder.setDeliverQuantity(selectOrder.getOrderQuantity());//发货数量
|
|
|
selectOrder.setUpdateTime(new Date());
|
|
|
selectOrder.setUpdateUser(AuthUtil.getUserId());
|
|
|
@@ -6071,10 +6142,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//入库出库数量
|
|
|
order.setStorageQuantity(order.getOrderItemsList().stream().map(OrderItems::getStorageInQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
//商品名称集合
|
|
|
- //商品名称集合
|
|
|
- List<GoodsDesc> goodsDescList = goodsDescClient.selectItemsIdGoods(order.getOrderItemsList().stream().map(OrderItems::getGoodsName).distinct().collect(Collectors.joining()));
|
|
|
- if (ObjectUtils.isNotNull(goodsDescList) && goodsDescList.size() > 0) {
|
|
|
- order.setGoodsList(goodsDescList.stream().map(GoodsDesc::getCname).distinct().collect(Collectors.joining()));
|
|
|
+ List<Long> itemIds = order.getOrderItemsList().stream().map(OrderItems::getItemId).distinct().collect(Collectors.toList());
|
|
|
+ StringBuilder goodsId = new StringBuilder();
|
|
|
+ for (Long itemId : itemIds) {
|
|
|
+ goodsId.append(itemId).append(",");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(goodsId)) {
|
|
|
+ List<GoodsDesc> goodsDescList = goodsDescClient.selectItemsIdGoods(goodsId.substring(0, goodsId.length() - 1));
|
|
|
+ if (ObjectUtils.isNotNull(goodsDescList) && goodsDescList.size() > 0) {
|
|
|
+ order.setGoodsList(goodsDescList.stream().map(GoodsDesc::getCname).distinct().collect(Collectors.joining()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (ObjectUtils.isNull(order.getThisUsedProfit())) {
|
|
|
@@ -6262,10 +6339,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setStorageAmount(order.getOrderItemsList().stream().map(OrderItems::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
//入库出库数量
|
|
|
order.setStorageQuantity(order.getOrderItemsList().stream().map(OrderItems::getStorageInQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- //商品名称集合
|
|
|
- List<GoodsDesc> goodsDescList = goodsDescClient.selectItemsIdGoods(order.getOrderItemsList().stream().map(OrderItems::getGoodsName).distinct().collect(Collectors.joining()));
|
|
|
- if (ObjectUtils.isNotNull(goodsDescList) && goodsDescList.size() > 0) {
|
|
|
- order.setGoodsList(goodsDescList.stream().map(GoodsDesc::getCname).distinct().collect(Collectors.joining()));
|
|
|
+ List<Long> itemIds = order.getOrderItemsList().stream().map(OrderItems::getItemId).distinct().collect(Collectors.toList());
|
|
|
+ StringBuilder goodsId = new StringBuilder();
|
|
|
+ for (Long itemId : itemIds) {
|
|
|
+ goodsId.append(itemId).append(",");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(goodsId)) {
|
|
|
+ List<GoodsDesc> goodsDescList = goodsDescClient.selectItemsIdGoods(goodsId.substring(0, goodsId.length() - 1));
|
|
|
+ if (ObjectUtils.isNotNull(goodsDescList) && goodsDescList.size() > 0) {
|
|
|
+ order.setGoodsList(goodsDescList.stream().map(GoodsDesc::getCname).distinct().collect(Collectors.joining()));
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
throw new RuntimeException("请选择商品信息");
|
|
|
@@ -6279,11 +6362,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
order.setCostAmount(costAmount);
|
|
|
order.setGrossProfit(grossProfit);
|
|
|
order.setConfirmStatus(1);
|
|
|
+ order.setAccount("微信支付");
|
|
|
this.paymentApply(order, order.getBillType(), order.getTradeType());
|
|
|
order.setDebitAmount(order.getOrderAmount());
|
|
|
order.setBalanceAmount(order.getOrderAmount());
|
|
|
order.setPurchaseAmount(order.getOrderAmount());
|
|
|
- order.setSettlmentAmount(order.getOrderAmount().subtract(order.getOrderAmount()));
|
|
|
+// order.setSettlmentAmount(order.getOrderAmount().subtract(order.getOrderAmount()));
|
|
|
baseMapper.updateById(order);
|
|
|
|
|
|
// 保存订单文件信息
|
|
|
@@ -6354,7 +6438,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
.eq(Order::getIsDeleted, 0)
|
|
|
.eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(ObjectUtils.isNotNull(corpId), Order::getCorpId, corpId)
|
|
|
- .eq(Order::getStatus, status));
|
|
|
+ .eq(Order::getStatus, status).eq(Order::getBillType, "XS"));
|
|
|
}
|
|
|
|
|
|
@Override
|