|
|
@@ -11,7 +11,6 @@ import com.dk.common.response.ResponseResultUtil;
|
|
|
import com.dk.common.response.ResponseResultVO;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OrderConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OrderItemConvert;
|
|
|
-import com.dk.mdm.mapper.common.CommonMapper;
|
|
|
import com.dk.mdm.mapper.mst.CustomerMapper;
|
|
|
import com.dk.mdm.mapper.sale.OrderItemMapper;
|
|
|
import com.dk.mdm.mapper.sale.OrderMapper;
|
|
|
@@ -32,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@Transactional
|
|
|
@@ -62,6 +62,9 @@ public class OrderService extends BaseService<Order> {
|
|
|
private OrderItemConvert orderItemConvert;
|
|
|
|
|
|
@Autowired
|
|
|
+ private OrderItemService orderItemService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private OrderItemMapper orderItemMapper;
|
|
|
|
|
|
@Autowired
|
|
|
@@ -89,7 +92,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
@Pagination
|
|
|
public ResponseResultVO<Map<String, Object>> selectOrderItemById(String id) {
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
- // 货物
|
|
|
+ // 商品明细
|
|
|
List<OrderItemResponse> orderItem = orderItemMapper.selectByCond(new OrderItemQuery().setOrderId(id));
|
|
|
result.put("orderItem", orderItem);
|
|
|
|
|
|
@@ -157,6 +160,22 @@ public class OrderService extends BaseService<Order> {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * @desc : 获取订单信息(编辑用)
|
|
|
+ * @author : 付斌
|
|
|
+ * @date : 2024-03-02 17:27
|
|
|
+ */
|
|
|
+ public ResponseResultVO<?> getOrderForUpdate(String id) {
|
|
|
+ Map<String, Object> orderInfo = new HashMap<>();
|
|
|
+ OrderResponse orderResponse = orderMapper.selectById(id);
|
|
|
+ orderInfo.put("order", orderResponse);
|
|
|
+
|
|
|
+ // 商品明细
|
|
|
+ List<OrderItemResponse> orderItem = orderItemMapper.selectByCond(new OrderItemQuery().setOrderId(id));
|
|
|
+ orderInfo.put("orderItem", orderItem);
|
|
|
+ return ResponseResultUtil.success(orderInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* @desc : 编辑方法
|
|
|
* @author : 付斌
|
|
|
* @date : 2023/1/9 10:49
|
|
|
@@ -167,24 +186,39 @@ public class OrderService extends BaseService<Order> {
|
|
|
public ResponseResultVO<Boolean> updateOrder(OrderVO orderVO) {
|
|
|
// 转化实体
|
|
|
Order order = orderConvert.convertToPo(orderVO);
|
|
|
+ //删除的
|
|
|
+ List<OrderItemVO> deleteOrderItemVOList = orderVO.getDeleteItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
|
|
|
+ if(deleteOrderItemVOList.size() > 0){
|
|
|
+ for (OrderItemVO orderItemVO : deleteOrderItemVOList) {
|
|
|
+ // 非待出库单据不能删除
|
|
|
+ if(!Constant.OutStatus.DAICHUKU.getName().equals(orderItemVO.getOutStatus())){
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.NO_WAIT_INTO.getMessage());
|
|
|
+ } else {
|
|
|
+ orderItemMapper.deleteById(orderItemVO.getItemId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 编辑的(包括新增的)
|
|
|
+ // 新增的
|
|
|
+ List<OrderItemVO> insertOrderItemVOList = orderVO.getOrderItemList().stream().filter(it -> it.getItemId() == null).collect(Collectors.toList());
|
|
|
+ for (OrderItemVO orderItemVO : insertOrderItemVOList) {
|
|
|
+ OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
+ orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
|
+ orderItemMapper.insert(orderItem);
|
|
|
+ }
|
|
|
+ // 编辑的
|
|
|
+ List<OrderItemVO> editOrderItemVOList = orderVO.getOrderItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
|
|
|
+ for (OrderItemVO orderItemVO : editOrderItemVOList) {
|
|
|
+ // 商品数量不能小于出库中数量
|
|
|
+ if(orderItemVO.getItemQty().compareTo(orderItemVO.getOutingQty()) == -1){
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
|
|
|
+ } else {
|
|
|
+ OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
+ orderItemService.updateByUuid(orderItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return ResponseResultUtil.success(super.update(order, new UpdateWrapper<Order>().lambda().eq(Order::getOrderId,
|
|
|
UUID.fromString(order.getOrderId()))));
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
- * @desc : 获取订单信息(编辑用)
|
|
|
- * @author : 付斌
|
|
|
- * @date : 2024-03-02 17:27
|
|
|
- */
|
|
|
- public ResponseResultVO<?> getOrderForUpdate(String orderId) {
|
|
|
- Map<String, Object> orderInfo = null;
|
|
|
- Order order = orderMapper.selectById(orderId);
|
|
|
- orderInfo.put("order", order);
|
|
|
-
|
|
|
-// //新建经销商下的门店为部门
|
|
|
-// List<Store> stores = storeMapper.selectByCond(new Store().setFlgValid(true).setStoreOnly(true).setSale2Id(id));
|
|
|
-// companyInfo.put("subStoreList", stores);
|
|
|
-
|
|
|
- return ResponseResultUtil.success(orderInfo);
|
|
|
- }
|
|
|
}
|