|
@@ -8,12 +8,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.file.utils.ObsFileUtil;
|
|
|
import com.ruoyi.common.constant.StatusConstant;
|
|
|
import com.ruoyi.common.core.domain.BaseIdPo;
|
|
|
+import com.ruoyi.common.core.domain.BasePo;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
+import com.ruoyi.system.utils.UserUtil;
|
|
|
+import com.sd.business.entity.department.po.Department;
|
|
|
import com.sd.business.entity.order.dto.OrderExchangeDto;
|
|
|
import com.sd.business.entity.order.dto.OrderExchangeSelectDto;
|
|
|
import com.sd.business.entity.order.po.OrderExchange;
|
|
|
import com.sd.business.entity.order.po.OrderExchangeDetail;
|
|
|
+import com.sd.business.entity.order.po.OrderInfo;
|
|
|
import com.sd.business.entity.order.po.OrderSku;
|
|
|
import com.sd.business.entity.order.vo.OrderExchangeDetailVo;
|
|
|
import com.sd.business.entity.order.vo.OrderExchangeVo;
|
|
@@ -22,14 +26,12 @@ import com.sd.business.service.order.OrderExchangeDetailService;
|
|
|
import com.sd.business.service.order.OrderExchangeService;
|
|
|
import com.sd.business.service.order.OrderSkuService;
|
|
|
import com.sd.business.service.sku.SkuSpecService;
|
|
|
+import com.sd.business.util.CodeEnum;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -58,7 +60,52 @@ public class OrderExchangeServiceImpl extends ServiceImpl<OrderExchangeMapper, O
|
|
|
IWrapper<OrderExchange> wrapper = getWrapper();
|
|
|
wrapper.orderByDesc("oe", OrderExchange::getId);
|
|
|
wrapper.eq("oe", OrderExchange::getOrderInfoId, dto.getOrderInfoId());
|
|
|
+ wrapper.like("oe", OrderExchange::getCode, dto.getCode());
|
|
|
+ wrapper.like("oi", OrderInfo::getCode, dto.getOrderCode());
|
|
|
+ wrapper.like("oi", OrderInfo::getWlnCode, dto.getOrderWlnCode());
|
|
|
+ wrapper.eq("d", Department::getId, dto.getDepartmentId());
|
|
|
+
|
|
|
Page<OrderExchangeVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
+ List<OrderExchangeVo> records = page.getRecords();
|
|
|
+
|
|
|
+ if (records.size() == 0) {
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 赋值操作人名称
|
|
|
+ UserUtil.assignmentNickName(records, BasePo::getCreateUser, OrderExchangeVo::setCreateUserName);
|
|
|
+
|
|
|
+ List<Long> idList = records.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
+ List<OrderExchangeDetail> list = orderExchangeDetailService
|
|
|
+ .list(q -> q.eq(OrderExchangeDetail::getOrderExchangeId, idList));
|
|
|
+ List<OrderExchangeDetailVo> orderExchangeDetailList = BeanUtil.copyToList(list, OrderExchangeDetailVo.class);
|
|
|
+
|
|
|
+ // 赋值sku规格id和采购数量
|
|
|
+ orderSkuService.attributeAssign(orderExchangeDetailList, OrderExchangeDetailVo::getOrderSkuId, (item, orderSku) -> {
|
|
|
+ item.setSkuSpecId(orderSku.getSkuSpecId());
|
|
|
+ item.setBuyQuantity(orderSku.getQuantity());
|
|
|
+ item.setReturnAmount((orderSku.getUnitPrice()
|
|
|
+ .add(orderSku.getCustomProcessingFee())
|
|
|
+ .add(orderSku.getLssueFee())
|
|
|
+ .add(orderSku.getDeliveryMaterialsFee())
|
|
|
+ .add(orderSku.getPackingLabor())
|
|
|
+ .add(orderSku.getPackagingMaterialCost())
|
|
|
+ .add(orderSku.getManagementFee())).multiply(item.getQuantity()));
|
|
|
+ });
|
|
|
+
|
|
|
+ // 赋值sku品号品名
|
|
|
+ skuSpecService.attributeAssign(orderExchangeDetailList, OrderExchangeDetailVo::getSkuSpecId, (item, skuSpec) -> {
|
|
|
+ item.setSkuSpecCode(skuSpec.getCode());
|
|
|
+ item.setSkuSpecName(skuSpec.getName());
|
|
|
+ });
|
|
|
+
|
|
|
+ Map<Long, List<OrderExchangeDetailVo>> map = orderExchangeDetailList.stream()
|
|
|
+ .collect(Collectors.groupingBy(OrderExchangeDetailVo::getOrderExchangeId));
|
|
|
+
|
|
|
+ for (OrderExchangeVo record : records) {
|
|
|
+ record.setOrderExchangeDetailList(map.getOrDefault(record.getId(), Collections.emptyList()));
|
|
|
+ }
|
|
|
+
|
|
|
return page;
|
|
|
}
|
|
|
|
|
@@ -85,6 +132,8 @@ public class OrderExchangeServiceImpl extends ServiceImpl<OrderExchangeMapper, O
|
|
|
item.setSkuSpecName(skuSpec.getName());
|
|
|
});
|
|
|
|
|
|
+ result.setOrderExchangeDetailList(orderExchangeDetailList);
|
|
|
+
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -143,6 +192,8 @@ public class OrderExchangeServiceImpl extends ServiceImpl<OrderExchangeMapper, O
|
|
|
orderExchangeDetail.setExchangeStatus(StatusConstant.NO);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ orderExchangeDto.setCode(orderExchangeDto.getType() == 1 ? CodeEnum.TH_CODE.getCode() : CodeEnum.HH_CODE.getCode());
|
|
|
save(orderExchangeDto);
|
|
|
orderExchangeDetailService.saveBatch(orderExchangeDetailList);
|
|
|
ObsFileUtil.saveFile(orderExchangeDto.getFileList(), orderExchangeDto.getId());
|