|
|
@@ -16,6 +16,7 @@ import com.dk.mdm.infrastructure.convert.sale.OrderItemConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OutBoundDtoConvert;
|
|
|
import com.dk.mdm.mapper.common.CommonMapper;
|
|
|
import com.dk.mdm.mapper.ivt.OutboundItemMapper;
|
|
|
+import com.dk.mdm.mapper.ivt.OutboundMapper;
|
|
|
import com.dk.mdm.mapper.mac.AccountItemMapper;
|
|
|
import com.dk.mdm.mapper.mac.RecPayHandleItemMapper;
|
|
|
import com.dk.mdm.mapper.mac.RecPayItemMapper;
|
|
|
@@ -39,11 +40,14 @@ import com.dk.common.service.BaseService;
|
|
|
import com.dk.common.mapper.BaseMapper;
|
|
|
import com.dk.mdm.model.pojo.sale.OrderItem;
|
|
|
import com.dk.mdm.model.query.ivt.OutboundItemQuery;
|
|
|
+import com.dk.mdm.model.query.ivt.OutboundQuery;
|
|
|
import com.dk.mdm.model.query.mac.RecPayItemQuery;
|
|
|
import com.dk.mdm.model.query.mac.RecPayQuery;
|
|
|
import com.dk.mdm.model.query.sale.MultiOwnerQuery;
|
|
|
import com.dk.mdm.model.query.sale.OrderItemQuery;
|
|
|
import com.dk.mdm.model.query.sale.OrderQuery;
|
|
|
+import com.dk.mdm.model.response.ivt.OutboundItemResponse;
|
|
|
+import com.dk.mdm.model.response.ivt.OutboundResponse;
|
|
|
import com.dk.mdm.model.response.mac.RecPayItemResponse;
|
|
|
import com.dk.mdm.model.response.mac.RecPayResponse;
|
|
|
import com.dk.mdm.model.response.sale.MultiOwnerResponse;
|
|
|
@@ -67,6 +71,7 @@ import java.math.BigDecimal;
|
|
|
import java.time.LocalDate;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
@Service
|
|
|
@Transactional
|
|
|
@@ -151,6 +156,10 @@ public class OrderService extends BaseService<Order> {
|
|
|
@Autowired
|
|
|
private OutboundItemMapper outboundItemMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private OutboundMapper outboundMapper;
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* @desc : 条件查询
|
|
|
* @author : 付斌
|
|
|
@@ -263,7 +272,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
orderVO.setOrderId(codeMap.get("outId").toString()).setOrderNo(codeMap.get("outNote").toString())
|
|
|
.setOrderType(Constant.DocumentType.ORDER.getName());
|
|
|
// 转化实体
|
|
|
- Order order = orderConvert.convertToPo(orderVO);
|
|
|
+ Order order = orderConvert.convertToPo(orderVO);
|
|
|
// 订单总单保存
|
|
|
super.insert(order);
|
|
|
|
|
|
@@ -302,10 +311,10 @@ public class OrderService extends BaseService<Order> {
|
|
|
for (OrderItemVO orderItemVO : orderVO.getItemList()) {
|
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
|
- if( orderItem.getPriceStd()==null){
|
|
|
- orderItem.setPriceStd(BigDecimal.ZERO);
|
|
|
- }
|
|
|
- if( orderItem.getAmtStd()==null){
|
|
|
+ if (orderItem.getPriceStd() == null) {
|
|
|
+ orderItem.setPriceStd(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ if (orderItem.getAmtStd() == null) {
|
|
|
orderItem.setAmtStd(BigDecimal.ZERO);
|
|
|
}
|
|
|
orderItem.setItemId(UUID.randomUUID().toString());
|
|
|
@@ -520,18 +529,6 @@ public class OrderService extends BaseService<Order> {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- // 新增的
|
|
|
- List<OrderItemVO> insertOrderItemVOList = orderVO.getItemList().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());
|
|
|
- orderItem.setItemId(UUID.randomUUID().toString());
|
|
|
- orderItemMapper.insert(orderItem);
|
|
|
- orderItemVO.setItemId(orderItem.getItemId());
|
|
|
- orderItemVO.setOrderId(orderVO.getOrderId());
|
|
|
- }
|
|
|
-
|
|
|
// 商户产品版本
|
|
|
String gradeCode = "PRO";
|
|
|
Map<String, Object> paramCompany = new HashMap<>();
|
|
|
@@ -553,11 +550,11 @@ public class OrderService extends BaseService<Order> {
|
|
|
}
|
|
|
// 如果出库数量不是0,则不能改仓库
|
|
|
if (outintOrOutQty.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
- if(orderItemForUpdate.getSkuId()!=null){ //过滤外协品
|
|
|
- if (!orderItemForUpdate.getWhId().equals(orderItemVO.getWhId())) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORDER_ISOUT.getMessage());
|
|
|
- }
|
|
|
- }
|
|
|
+ if (orderItemForUpdate.getSkuId() != null) { //过滤外协品
|
|
|
+ if (!orderItemForUpdate.getWhId().equals(orderItemVO.getWhId())) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORDER_ISOUT.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
orderItemService.updateByUuid(orderItem);
|
|
|
@@ -567,31 +564,25 @@ public class OrderService extends BaseService<Order> {
|
|
|
// 专业版:编辑保持原逻辑
|
|
|
if ("STD".equals(gradeCode)) { //免費版特加逻辑
|
|
|
//更改后数量不能小于退货数量;
|
|
|
- if(orderItemVO.getItemQty().compareTo(orderItemForUpdate.getReturnQty()) == -1){
|
|
|
+ if (orderItemVO.getItemQty().compareTo(orderItemForUpdate.getReturnQty()) == -1) {
|
|
|
throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.GOODSQTY_NO_LESS_RETURNQTY.getMessage());
|
|
|
}
|
|
|
- //
|
|
|
- if (outintOrOutQty.compareTo(BigDecimal.ZERO) > 0) { //有出库数据
|
|
|
-// OutboundVO outboundVO = outBoundDtoConvert.convertToPo(orderVO);
|
|
|
-// outboundVO.setOutDate(LocalDate.now());
|
|
|
-// outboundVO.setOutingQty(orderVO.getSumQuantity());
|
|
|
-// outboundVO.setOutingAmt(orderVO.getFactAmt());
|
|
|
-// outboundVO.setFlgAutoHandle(orderVO.getFlgAutoHandle());
|
|
|
-// outboundVO.setFlgHandleSetting(orderVO.getFlgHandleSetting());
|
|
|
-// outboundVO.setFromId(order.getOrderId());
|
|
|
-// outboundVO.setFromNo(order.getOrderNo());
|
|
|
-// outboundVO.setOutDate(orderVO.getDeliveryDate());
|
|
|
-// outboundVO.setFactAmt(orderVO.getFactAmt());
|
|
|
-// outboundVO.setDiscount(orderVO.getDiscount());
|
|
|
-// outboundVO.setDiscAmt(orderVO.getDiscAmt());
|
|
|
-// outboundVO.setSumAmount(orderVO.getSumAmount());
|
|
|
-// outboundSaleOrderService.saleOutboundUpdate( outboundVO);
|
|
|
- }
|
|
|
-// outboundItemMapper.selectByCond(new OutboundItemQuery().setFromItemId(orderItem.getItemId()));
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 新增的
|
|
|
+ List<OrderItemVO> insertOrderItemVOList = orderVO.getItemList().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());
|
|
|
+ orderItem.setItemId(UUID.randomUUID().toString());
|
|
|
+ orderItemMapper.insert(orderItem);
|
|
|
+ orderItemVO.setItemId(orderItem.getItemId());
|
|
|
+ orderItemVO.setOrderId(orderVO.getOrderId());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
// 删除业绩信息
|
|
|
multiOwnerMapper.deleteByOrderId(order.getOrderId());
|
|
|
|
|
|
@@ -799,35 +790,61 @@ public class OrderService extends BaseService<Order> {
|
|
|
accountService.updateMac(macId);
|
|
|
}
|
|
|
/**************************************** 客户收款end ********************************/
|
|
|
- if(insertOrderItemVOList.size()>0){ //编辑时新选的数据生成出库单
|
|
|
-
|
|
|
- //开单并出库办理
|
|
|
- if (orderVO.getOutboundProcessingFlag() != null && orderVO.getOutboundProcessingFlag()) {
|
|
|
- for (OrderItemVO orderItemVO : insertOrderItemVOList) {
|
|
|
- orderItemVO.setOutingQty(orderItemVO.getItemQty());
|
|
|
- orderItemVO.setOutingAmt(orderItemVO.getItemAmt());
|
|
|
- orderItemVO.setPriceOut(orderItemVO.getFactPrice());
|
|
|
- orderItemVO.setFromId(orderVO.getOrderId());
|
|
|
- orderItemVO.setFromItemId(orderItemVO.getItemId());
|
|
|
+ if ("STD".equals(gradeCode)) { //订单 转 出库数据
|
|
|
+ // 合并两个列表
|
|
|
+ List<OrderItemVO> combinedList = Stream.concat(insertOrderItemVOList.stream(), editOrderItemVOList.stream())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (combinedList.size() > 0) { //编辑时新选的数据生成出库单
|
|
|
+ //开单并出库办理
|
|
|
+ if (orderVO.getOutboundProcessingFlag() != null && orderVO.getOutboundProcessingFlag()) {
|
|
|
+ //标准版 只有一个出库单 所以get0 就可以 且 编辑销售订单得时候 一定是有出库单的
|
|
|
+ List<OutboundResponse> outboundList = outboundMapper.selectByCond(new OutboundQuery().setFromId(orderVO.getOrderId()));
|
|
|
+ if (outboundList.size() > 0) {
|
|
|
+ OutboundResponse outboundResponsejson = outboundList.get(0);
|
|
|
+ for (OrderItemVO orderItemVO : combinedList) {
|
|
|
+ //拿到 订单明细对应的出库明细 订单明细id 和 出库单来源明细 是一 一 对应的 所以 get0 也是不会有问题的
|
|
|
+ List<OutboundItemResponse> outboundItemList = outboundItemMapper.selectByCond(new OutboundItemQuery().setFromItemId(orderItemVO.getItemId()));
|
|
|
+ OutboundItemResponse outboundItemjson = null;
|
|
|
+ if (outboundItemList.size() != 0) { //没查到库存数据说明是新增的品 还没出库呢
|
|
|
+ outboundItemjson = outboundItemList.get(0);
|
|
|
+ }
|
|
|
+ orderItemVO.setOutingQty(orderItemVO.getItemQty());
|
|
|
+ orderItemVO.setOutingAmt(orderItemVO.getItemAmt());
|
|
|
+ orderItemVO.setPriceOut(orderItemVO.getFactPrice());
|
|
|
+ orderItemVO.setFromId(orderVO.getOrderId());
|
|
|
+ orderItemVO.setFromItemId(orderItemVO.getItemId());
|
|
|
+ orderItemVO.setOutId(outboundResponsejson.getOutId());
|
|
|
+ orderItemVO.setItemId(outboundItemjson == null ? null : outboundItemjson.getItemId());
|
|
|
+ }
|
|
|
+ if (orderVO.getDeleteItemList() != null) { //删除list
|
|
|
+ List<OrderItemVO> deleteOrderItemVOList = orderVO.getDeleteItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
|
|
|
+ if (deleteOrderItemVOList.size() > 0) {
|
|
|
+ orderVO.setDeleteItemList(deleteOrderItemVOList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ orderVO.setItemList(combinedList);
|
|
|
+ OutboundVO outboundVO = outBoundDtoConvert.convertToPo(orderVO);
|
|
|
+ outboundVO.setOutDate(LocalDate.now());
|
|
|
+ outboundVO.setOutingQty(orderVO.getSumQuantity());
|
|
|
+ outboundVO.setOutingAmt(orderVO.getFactAmt());
|
|
|
+ outboundVO.setFlgAutoHandle(orderVO.getFlgAutoHandle());
|
|
|
+ outboundVO.setFlgHandleSetting(orderVO.getFlgHandleSetting());
|
|
|
+ outboundVO.setFromId(order.getOrderId());
|
|
|
+ outboundVO.setFromNo(order.getOrderNo());
|
|
|
+ outboundVO.setOutDate(orderVO.getDeliveryDate());
|
|
|
+ outboundVO.setFactAmt(orderVO.getFactAmt());
|
|
|
+ outboundVO.setDiscount(orderVO.getDiscount());
|
|
|
+ outboundVO.setDiscAmt(orderVO.getDiscAmt());
|
|
|
+ outboundVO.setSumAmount(orderVO.getSumAmount());
|
|
|
+ outboundVO.setOutId(outboundResponsejson.getOutId());
|
|
|
+ outboundVO.setLimitEdit(true);
|
|
|
+
|
|
|
+ outboundSaleOrderService.saleOutboundUpdate(outboundVO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
- orderVO.setItemList(insertOrderItemVOList);
|
|
|
- OutboundVO outboundVO = outBoundDtoConvert.convertToPo(orderVO);
|
|
|
- outboundVO.setOutDate(LocalDate.now());
|
|
|
- outboundVO.setOutingQty(orderVO.getSumQuantity());
|
|
|
- outboundVO.setOutingAmt(orderVO.getFactAmt());
|
|
|
- outboundVO.setFlgAutoHandle(orderVO.getFlgAutoHandle());
|
|
|
- outboundVO.setFlgHandleSetting(orderVO.getFlgHandleSetting());
|
|
|
- outboundVO.setFromId(order.getOrderId());
|
|
|
- outboundVO.setFromNo(order.getOrderNo());
|
|
|
- outboundVO.setOutDate(orderVO.getDeliveryDate());
|
|
|
- outboundVO.setFactAmt(orderVO.getFactAmt());
|
|
|
- outboundVO.setDiscount(orderVO.getDiscount());
|
|
|
- outboundVO.setDiscAmt(orderVO.getDiscAmt());
|
|
|
- outboundVO.setSumAmount(orderVO.getSumAmount());
|
|
|
-
|
|
|
- outboundSaleOrderService.inventoryOUtBond(outboundVO);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
return ResponseResultUtil.success();
|
|
|
}
|
|
|
@@ -1010,8 +1027,8 @@ public class OrderService extends BaseService<Order> {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * @desc : 一键作废
|
|
|
- * @date : 2024/7/1 13:26
|
|
|
+ * @desc : 一键作废
|
|
|
+ * @date : 2024/7/1 13:26
|
|
|
* @author : 寇珊珊
|
|
|
*/
|
|
|
public ResponseResultVO<?> oneKeyInvalid(String id) {
|