Bläddra i källkod

京东退货质检
物流管理页面增加“到货通知”

yzc 2 år sedan
förälder
incheckning
79af82008e

+ 5 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdBackEx.java

@@ -19,4 +19,9 @@ public class JdBackEx extends JdBack {
      */
     private String warehouseName;
 
+    /**质检id*/
+    private Long qualityId;
+    /**质检状态*/
+    private Integer qualityStatus;
+
 }

+ 3 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/jd/JdBackPageDto.java

@@ -18,4 +18,7 @@ public class JdBackPageDto extends BaseSelectDto {
      */
     private Long warehouseId;
 
+    /**质检状态*/
+    private Integer qualityStatus;
+
 }

+ 3 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/logistics/DataInfoPageDto.java

@@ -16,4 +16,7 @@ public class DataInfoPageDto extends BaseSelectDto {
     /**物流状态*/
     private Integer type;
 
+    /**过滤未完成数据*/
+    private Integer notComplete;
+
 }

+ 9 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/jd/NewJdBackController.java

@@ -2,7 +2,9 @@ package com.fjhx.controller.jd;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseSelectDto;
+import com.fjhx.entity.jd.JdBack;
 import com.fjhx.entity.jd.JdBackDetails;
+import com.fjhx.entity.quality.QualityInfo;
 import com.fjhx.params.jd.JdBackEx;
 import com.fjhx.params.jd.JdBackPageDto;
 import com.fjhx.service.jd.JdBackDetailsService;
@@ -50,6 +52,13 @@ public class NewJdBackController {
         return R.success(list);
     }
 
+    /**京东退货质检*/
+    @PostMapping("/quality")
+    public R quality(@RequestBody QualityInfo qualityInfo){
+        jdBackDetailsService.quality(qualityInfo);
+        return R.success();
+    }
+
 
 }
 

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

@@ -1,7 +1,11 @@
 package com.fjhx.mapper.jd;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.jd.JdBack;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.params.jd.JdBackEx;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +17,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface JdBackMapper extends BaseMapper<JdBack> {
 
+    Page<JdBackEx> getPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper1);
+
 }

+ 18 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/jd/JdBackMapper.xml

@@ -2,4 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.jd.JdBackMapper">
 
+    <select id="getPage" resultType="com.fjhx.params.jd.JdBackEx">
+        select jb.id,
+               jb.tenant_id,
+               jb.create_time,
+               jb.create_user,
+               jb.update_time,
+               jb.update_user,
+               jb.waybill,
+               jb.warehouse_id,
+               jb.batch_flag,
+               jb.del_flag,
+               qi.id       quality_id,
+               qi.`status` quality_status
+        from jd_back jb
+                 join quality_info qi on qi.logistics_info_id = jb.id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 2 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/jd/JdBackDetailsService.java

@@ -2,6 +2,7 @@ package com.fjhx.service.jd;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.jd.JdBackDetails;
+import com.fjhx.entity.quality.QualityInfo;
 import com.fjhx.params.jd.JdBackDetailsVo;
 import com.fjhx.base.BaseService;
 
@@ -25,4 +26,5 @@ public interface JdBackDetailsService extends BaseService<JdBackDetails> {
 
     void delete(JdBackDetailsVo jdBackDetailsVo);
 
+    void quality(QualityInfo qualityInfo);
 }

+ 15 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/jd/impl/JdBackDetailsServiceImpl.java

@@ -2,11 +2,15 @@ package com.fjhx.service.jd.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.jd.JdBackDetails;
+import com.fjhx.entity.quality.QualityInfo;
 import com.fjhx.params.jd.JdBackDetailsVo;
 import com.fjhx.mapper.jd.JdBackDetailsMapper;
 import com.fjhx.service.jd.JdBackDetailsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.service.quality.QualityInfoService;
 import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;
@@ -22,6 +26,9 @@ import java.util.Map;
 @Service
 public class JdBackDetailsServiceImpl extends ServiceImpl<JdBackDetailsMapper, JdBackDetails> implements JdBackDetailsService {
 
+    @Autowired
+    QualityInfoService qualityInfoService;
+
     @Override
     public Page<JdBackDetails> getPage(Map<String, Object> condition) {
 
@@ -45,4 +52,12 @@ public class JdBackDetailsServiceImpl extends ServiceImpl<JdBackDetailsMapper, J
         removeById(jdBackDetailsVo.getId());
     }
 
+    @Override
+    public void quality(QualityInfo qualityInfo){
+        QualityInfo byId = qualityInfoService.getById(qualityInfo.getId());
+        byId.setStatus(3);
+        byId.setResultType(qualityInfo.getResultType());
+        qualityInfoService.updateById(byId);
+    }
+
 }

+ 31 - 13
hx-service/victoriatourist/src/main/java/com/fjhx/service/jd/impl/JdBackServiceImpl.java

@@ -1,15 +1,16 @@
 package com.fjhx.service.jd.impl;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.base.BaseEntity;
+import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.jd.JdBack;
 import com.fjhx.entity.jd.JdBackDetails;
 import com.fjhx.entity.product.ProductInfo;
+import com.fjhx.entity.quality.QualityInfo;
+import com.fjhx.enums.stock.QualityStatusEnum;
 import com.fjhx.mapper.jd.JdBackMapper;
 import com.fjhx.params.jd.JdBackEx;
 import com.fjhx.params.jd.JdBackPageDto;
@@ -17,8 +18,9 @@ import com.fjhx.params.jd.JdBackVo;
 import com.fjhx.service.jd.JdBackDetailsService;
 import com.fjhx.service.jd.JdBackService;
 import com.fjhx.service.product.ProductInfoService;
+import com.fjhx.service.quality.QualityInfoService;
 import com.fjhx.service.warehouse.WarehouseService;
-import com.fjhx.utils.PageUtil;
+import com.fjhx.uitl.code.CodeEnum;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -52,6 +54,9 @@ public class JdBackServiceImpl extends ServiceImpl<JdBackMapper, JdBack> impleme
     @Autowired
     private ProductInfoService productInfoService;
 
+    @Autowired
+    private QualityInfoService qualityInfoService;
+
     @Override
     public void add(JdBackVo jdBackVo) {
         save(jdBackVo);
@@ -111,24 +116,37 @@ public class JdBackServiceImpl extends ServiceImpl<JdBackMapper, JdBack> impleme
 
         });
 
+        Map<Long, List<JdBackDetails>> collect = jdBackDetailsList.stream().collect(Collectors.groupingBy(JdBackDetails::getJdBackId));
+        List<QualityInfo> qualityInfoList = new ArrayList<>();
+        for (Map.Entry<Long, List<JdBackDetails>> entry : collect.entrySet()) {
+            // 添加质检
+            QualityInfo qualityInfo = new QualityInfo();
+            qualityInfo.setType(2);
+            qualityInfo.setCode(CodeEnum.QUALITY.getCode());
+            qualityInfo.setLogisticsInfoId(entry.getKey());
+            qualityInfo.setLogisticsInfoCode(entry.getValue().get(0).getBackCode());
+            qualityInfo.setStatus(QualityStatusEnum.STATUS_1.getKey());
+            qualityInfo.setResultType(StatusConstant.YES);
+            qualityInfoList.add(qualityInfo);
+        }
+        qualityInfoService.saveBatch(qualityInfoList);
+
         saveBatch(jdBackList);
         jdBackDetailsService.saveBatch(jdBackDetailsList);
     }
 
     @Override
     public Page<JdBackEx> getPage(JdBackPageDto dto) {
+        QueryWrapper<Object> wrapper1 = new QueryWrapper();
+        wrapper1.like(ObjectUtil.isNotEmpty(dto.getWaybill()), "waybill", dto.getWaybill());
+        wrapper1.like(ObjectUtil.isNotEmpty(dto.getWarehouseId()), "warehouse_id", dto.getWarehouseId());
+        wrapper1.between(ObjectUtil.isAllNotEmpty(dto.getBeginTime(), dto.getEndTime()),
+                "create_time", dto.getBeginTime(), dto.getEndTime());
+        wrapper1.eq(ObjectUtil.isNotEmpty(dto.getQualityStatus()), "qi.status", dto.getQualityStatus());
 
-        LambdaQueryWrapper<JdBack> wrapper = Wrappers.<JdBack>lambdaQuery()
-                .like(ObjectUtil.isNotEmpty(dto.getWaybill()), JdBack::getWaybill, dto.getWaybill())
-                .like(ObjectUtil.isNotEmpty(dto.getWarehouseId()), JdBack::getWarehouseId, dto.getWarehouseId())
-                .between(ObjectUtil.isAllNotEmpty(dto.getBeginTime(), dto.getEndTime()),
-                        BaseEntity::getCreateTime, dto.getBeginTime(), dto.getEndTime());
-
-        Page<JdBack> page = page(dto.getPage(), wrapper);
-        Page<JdBackEx> jdBackExPage = PageUtil.copyPage(page, JdBackEx.class);
+        Page<JdBackEx> jdBackExPage = baseMapper.getPage(dto.getPage(), wrapper1);
 
         List<JdBackEx> records = jdBackExPage.getRecords();
-
         if (records.size() == 0) {
             return jdBackExPage;
         }

+ 15 - 4
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/impl/LogisticsInfoServiceImpl.java

@@ -43,6 +43,7 @@ import com.fjhx.utils.FileClientUtil;
 import com.fjhx.utils.UserClientUtil;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import com.fjhx.utils.wrapperUtil.KeywordData;
+import jdk.nashorn.internal.runtime.options.LoggingOption;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -329,6 +330,12 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
         purchase.setStatus(PurchaseStatusEnum.STATUS_40.getKey());
         purchaseService.updateById(purchase);
 
+        //物流到货通知
+        Assert.notEmpty(entity.getId(), "物流id不能为空");
+        LogisticsInfo logisticsInfo = new LogisticsInfo();
+        logisticsInfo.setId(entity.getId());
+        logisticsInfo.setLogisticsStatus(15);
+        updateById(logisticsInfo);
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -419,12 +426,16 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
     @Override
     public Page<DataInfoPageVo> dataInfoPage(DataInfoPageDto dto) {
         IWrapper<Object> wrapper = IWrapper.getWrapper(dto);
-        wrapper.eq("sc.business_type", dto.getBusinessType()).eq("sc.logistics_status",dto.getType())
+        wrapper.eq("sc.business_type", dto.getBusinessType()).eq("sc.logistics_status", dto.getType())
                 .keyword(
                         new KeywordData("sc.business_Code"),
                         new KeywordData("lc.name"),
                         new KeywordData("sc.code")
                 );
+        //如果为1 过滤掉已完成数据
+        if (ObjectUtil.isNotEmpty(dto.getNotComplete()) && dto.getNotComplete() == 1) {
+            wrapper.ne("sc.logistics_status", "15");
+        }
         return baseMapper.dataInfoPage(dto.getPage(), wrapper);
     }
 
@@ -452,9 +463,9 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
     @Override
     public void editLogistics(DataInfoPageVo dataInfoPageVo) {
         UpdateWrapper updateWrapper = new UpdateWrapper();
-        updateWrapper.set("code",dataInfoPageVo.getCode());
-        updateWrapper.set("logistics_company_code",dataInfoPageVo.getLogisticsCompanyCode());
-        updateWrapper.eq("id",dataInfoPageVo.getId());
+        updateWrapper.set("code", dataInfoPageVo.getCode());
+        updateWrapper.set("logistics_company_code", dataInfoPageVo.getLogisticsCompanyCode());
+        updateWrapper.eq("id", dataInfoPageVo.getId());
         update(updateWrapper);
     }