24282 9 mesi fa
parent
commit
6e89b13f57

+ 6 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderDetailsMapper.java

@@ -1,7 +1,11 @@
 package com.fjhx.victoriatourist.mapper.jd;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import com.fjhx.victoriatourist.entity.jd.vo.JdOrderDetailsVo;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
@@ -14,4 +18,6 @@ import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
  */
 public interface JdOrderDetailsMapper extends BaseMapper<JdOrderDetails> {
 
+    Page<JdOrderDetailsVo> getPage(@Param("ew") QueryWrapper<Object> wrapper, @Param("page") Page<Object> page);
+
 }

+ 46 - 29
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderDetailsServiceImpl.java

@@ -6,7 +6,9 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 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.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.service.jd.JdOrderDetailsService;
 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.wms.entity.stock.emums.JournalType;
 import com.fjhx.wms.entity.stock.po.Stock;
@@ -84,42 +87,56 @@ public class JdOrderDetailsServiceImpl extends ServiceImpl<JdOrderDetailsMapper,
 
     @Override
     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.setProductName(product.getName());
             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

+ 4 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderServiceImpl.java

@@ -43,6 +43,7 @@ import com.fjhx.victoriatourist.service.abnormal.AbnormalInfoService;
 import com.fjhx.victoriatourist.service.jd.JdApiService;
 import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
 import com.fjhx.victoriatourist.service.jd.JdOrderService;
+import com.fjhx.victoriatourist.service.jd.constants.RunParamConstant;
 import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
 import com.fjhx.victoriatourist.service.stock.StockTransferDetailsService;
 import com.fjhx.victoriatourist.service.stock.StockTransferService;
@@ -224,6 +225,9 @@ public class JdOrderServiceImpl extends ServiceImpl<JdOrderMapper, JdOrder> impl
             item.setProductCode(product.getCode());
             item.setProductName(product.getName());
             item.setProductCustomCode(product.getCustomCode());
+
+            item.setExDesc(item.getActualNum() > item.getConfirmNum() ? RunParamConstant.EXCESS
+                    : item.getActualNum() < item.getConfirmNum() ? RunParamConstant.SHORTAGE : null);
         });
 
         result.setJdOrderDetailsList(jdOrderDetailsVoList);

+ 9 - 0
hx-victoriatourist/src/main/resources/mapper/jd/JdOrderDetailsMapper.xml

@@ -1,4 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.victoriatourist.mapper.jd.JdOrderDetailsMapper">
+
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.jd.vo.JdOrderDetailsVo">
+        select jod.*,
+               jo.order_id source_order_code
+        from jd_order_details jod
+                 left join jd_order jo on jod.jd_order_id = jo.id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>