|
@@ -6,7 +6,9 @@ import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
@@ -18,6 +20,7 @@ import com.fjhx.victoriatourist.mapper.jd.JdOrderDetailsMapper;
|
|
import com.fjhx.victoriatourist.mapper.jd.JdOrderMapper;
|
|
import com.fjhx.victoriatourist.mapper.jd.JdOrderMapper;
|
|
import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
|
|
import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
|
|
import com.fjhx.victoriatourist.service.jd.JdOrderService;
|
|
import com.fjhx.victoriatourist.service.jd.JdOrderService;
|
|
|
|
+import com.fjhx.victoriatourist.service.jd.constants.JdParamConstant;
|
|
import com.fjhx.victoriatourist.service.jd.constants.RunParamConstant;
|
|
import com.fjhx.victoriatourist.service.jd.constants.RunParamConstant;
|
|
import com.fjhx.wms.entity.stock.emums.JournalType;
|
|
import com.fjhx.wms.entity.stock.emums.JournalType;
|
|
import com.fjhx.wms.entity.stock.po.Stock;
|
|
import com.fjhx.wms.entity.stock.po.Stock;
|
|
@@ -84,42 +87,56 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Page<JdOrderDetailsVo> jdOrderDetailExList(JdOrderSelectDto dto) {
|
|
public Page<JdOrderDetailsVo> jdOrderDetailExList(JdOrderSelectDto dto) {
|
|
- Page<JdOrderDetails> page = lambdaQuery()
|
|
|
|
- .eq(StrUtil.isNotBlank(dto.getHasEx()), JdOrderDetails::getHasEx, dto.getHasEx())
|
|
|
|
- .eq(StrUtil.isNotBlank(dto.getExDesc()), JdOrderDetails::getExDesc, dto.getExDesc())
|
|
|
|
- .eq(StrUtil.isNotBlank(dto.getHandleStatus()), JdOrderDetails::getHandleStatus, dto.getHandleStatus())
|
|
|
|
- .isNotNull(JdOrderDetails::getHandleStatus)
|
|
|
|
- .like(ObjectUtil.isNotNull(dto.getOrderId()), JdOrderDetails::getOrderId, dto.getOrderId())
|
|
|
|
- .eq(StrUtil.isNotBlank(dto.getHandleStatus()), JdOrderDetails::getHandleStatus, dto.getHandleStatus())
|
|
|
|
- .eq(StrUtil.isNotBlank(dto.getExHandle()), JdOrderDetails::getExHandle, dto.getExHandle())
|
|
|
|
- .and(StrUtil.isNotBlank(dto.getKeyword()), q -> q.like(JdOrderDetails::getOrderId, dto.getKeyword())
|
|
|
|
- .or().like(JdOrderDetails::getWareId, dto.getKeyword())
|
|
|
|
- .or().like(JdOrderDetails::getProductId, dto.getKeyword()))
|
|
|
|
- .orderByAsc(JdOrderDetails::getHandleStatus)
|
|
|
|
- .ge(ObjectUtil.isNotNull(dto.getStartTime()), JdOrderDetails::getCreateTime, ObjectUtil.isNotNull(dto.getStartTime()) ? DateUtil.beginOfDay(dto.getStartTime()) : dto.getStartTime())
|
|
|
|
- .le(ObjectUtil.isNotNull(dto.getEndTime()), JdOrderDetails::getCreateTime, ObjectUtil.isNotNull(dto.getEndTime()) ? DateUtil.endOfDay(dto.getEndTime()) : dto.getEndTime())
|
|
|
|
- .orderByDesc(JdOrderDetails::getUpdateTime)
|
|
|
|
- .page(new Page<>(dto.getPageNum(), dto.getPageSize()));
|
|
|
|
-
|
|
|
|
- List<JdOrderDetails> records = page.getRecords();
|
|
|
|
- List<JdOrderDetailsVo> voList = BeanUtil.copyToList(records, JdOrderDetailsVo.class);
|
|
|
|
-
|
|
|
|
- //赋值源订单信息
|
|
|
|
- jdOrderService.attributeAssign(voList, JdOrderDetails::getSourceOrderId, (item, order) -> {
|
|
|
|
- item.setSourceOrderCode(order.getOrderId());
|
|
|
|
- });
|
|
|
|
|
|
|
|
- Page<JdOrderDetailsVo> voPage = BeanUtil.copyProperties(page, Page.class);
|
|
|
|
|
|
+ QueryWrapper<Object> wrapper = Wrappers.query()
|
|
|
|
+
|
|
|
|
+ // 有异常
|
|
|
|
+ .func(q -> {
|
|
|
|
+ if (StrUtil.equals(dto.getExDesc(), RunParamConstant.EXCESS)) {
|
|
|
|
+ q.apply("jod.actual_num > jod.confirm_num");
|
|
|
|
+ } else if (StrUtil.equals(dto.getExDesc(), RunParamConstant.SHORTAGE)) {
|
|
|
|
+ q.apply("jod.actual_num < jod.confirm_num");
|
|
|
|
+ } else {
|
|
|
|
+ q.apply("jod.actual_num != jod.confirm_num");
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ // 京东订单已完成
|
|
|
|
+ .eq("jo.state", JdParamConstant.JD_ORDER_STATE_FINISH)
|
|
|
|
+
|
|
|
|
+ // 已确认
|
|
|
|
+ .ne("jo.business_status", 0)
|
|
|
|
+
|
|
|
|
+ .eq(StrUtil.isNotBlank(dto.getHandleStatus()), "jod.handle_status", dto.getHandleStatus())
|
|
|
|
+ .like(ObjectUtil.isNotNull(dto.getOrderId()), "jod.order_id", dto.getOrderId())
|
|
|
|
+ .eq(StrUtil.isNotBlank(dto.getExHandle()), "jod.ex_handle", dto.getExHandle())
|
|
|
|
+
|
|
|
|
+ .and(StrUtil.isNotBlank(dto.getKeyword()), q -> q.like("jod.order_id", dto.getKeyword())
|
|
|
|
+ .or().like("jod.ware_id", dto.getKeyword())
|
|
|
|
+ .or().like("jod.product_id", dto.getKeyword())
|
|
|
|
+ )
|
|
|
|
|
|
- productInfoService.attributeAssign(voList, JdOrderDetails::getProductId, (item, product) -> {
|
|
|
|
|
|
+ .ge(ObjectUtil.isNotNull(dto.getStartTime()), "jod.create_time", ObjectUtil.isNotNull(dto.getStartTime()) ? DateUtil.beginOfDay(dto.getStartTime()) : dto.getStartTime())
|
|
|
|
+ .le(ObjectUtil.isNotNull(dto.getEndTime()), "jod.create_time", ObjectUtil.isNotNull(dto.getEndTime()) ? DateUtil.endOfDay(dto.getEndTime()) : dto.getEndTime())
|
|
|
|
+
|
|
|
|
+ .orderByAsc("jod.handle_status")
|
|
|
|
+ .orderByDesc("jod.update_time");
|
|
|
|
+
|
|
|
|
+ Page<JdOrderDetailsVo> page = baseMapper.getPage(wrapper, dto.getPage());
|
|
|
|
+ List<JdOrderDetailsVo> records = page.getRecords();
|
|
|
|
+
|
|
|
|
+ productInfoService.attributeAssign(records, JdOrderDetails::getProductId, (item, product) -> {
|
|
item.setProductCode(product.getCode());
|
|
item.setProductCode(product.getCode());
|
|
item.setProductName(product.getName());
|
|
item.setProductName(product.getName());
|
|
item.setProductCustomCode(product.getCustomCode());
|
|
item.setProductCustomCode(product.getCustomCode());
|
|
- });
|
|
|
|
|
|
|
|
- voPage.setRecords(voList);
|
|
|
|
|
|
+ item.setHasEx(RunParamConstant.EXCEPTION);
|
|
|
|
+ item.setHandleStatus(ObjectUtil.defaultIfNull(item.getHandleStatus(), RunParamConstant.EXCEPTION_STATE_UNTREATED));
|
|
|
|
+ item.setExDesc(item.getActualNum() > item.getConfirmNum() ? RunParamConstant.EXCESS
|
|
|
|
+ : item.getActualNum() < item.getConfirmNum() ? RunParamConstant.SHORTAGE : null);
|
|
|
|
+ });
|
|
|
|
|
|
- return voPage;
|
|
|
|
|
|
+ return page;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|