yzc 2 éve
szülő
commit
3053e1164b
18 módosított fájl, 834 hozzáadás és 0 törlés
  1. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsDetailsController.java
  2. 96 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsInfosController.java
  3. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsDto.java
  4. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsSelectDto.java
  5. 22 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfosDto.java
  6. 28 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfosSelectDto.java
  7. 58 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsDetails.java
  8. 72 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsInfos.java
  9. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsDetailsVo.java
  10. 27 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsInfosVo.java
  11. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/LogisticsDetailsMapper.java
  12. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/LogisticsInfosMapper.java
  13. 46 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/LogisticsDetailsService.java
  14. 62 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/LogisticsInfosService.java
  15. 57 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/LogisticsDetailsServiceImpl.java
  16. 148 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/LogisticsInfosServiceImpl.java
  17. 22 0
      hx-victoriatourist/src/main/resources/mapper/logistics/LogisticsDetailsMapper.xml
  18. 25 0
      hx-victoriatourist/src/main/resources/mapper/logistics/LogisticsInfosMapper.xml

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsDetailsController.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.controller.logistics;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsDetailsVo;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 物流明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@RestController
+@RequestMapping("/logisticsDetails")
+public class LogisticsDetailsController {
+
+    @Autowired
+    private LogisticsDetailsService logisticsDetailsService;
+
+    /**
+     * 物流明细分页
+     */
+    @PostMapping("/page")
+    public Page<LogisticsDetailsVo> page(@RequestBody LogisticsDetailsSelectDto dto) {
+        return logisticsDetailsService.getPage(dto);
+    }
+
+    /**
+     * 物流明细明细
+     */
+    @PostMapping("/detail")
+    public LogisticsDetailsVo detail(@RequestBody BaseSelectDto dto) {
+        return logisticsDetailsService.detail(dto.getId());
+    }
+
+    /**
+     * 物流明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody LogisticsDetailsDto logisticsDetailsDto) {
+        logisticsDetailsService.add(logisticsDetailsDto);
+    }
+
+    /**
+     * 物流明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody LogisticsDetailsDto logisticsDetailsDto) {
+        logisticsDetailsService.edit(logisticsDetailsDto);
+    }
+
+    /**
+     * 物流明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        logisticsDetailsService.delete(dto.getId());
+    }
+
+}

+ 96 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsInfosController.java

@@ -0,0 +1,96 @@
+package com.fjhx.victoriatourist.controller.logistics;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.kd100.util.KD100Result;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfosDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfosSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfosVo;
+import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 物流信息 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-04-17
+ */
+@RestController
+@RequestMapping("/logisticsInfos")
+public class LogisticsInfosController {
+
+    @Autowired
+    private LogisticsInfosService logisticsInfosService;
+
+    /**
+     * 物流信息分页
+     */
+    @PostMapping("/page")
+    public Page<LogisticsInfosVo> page(@RequestBody LogisticsInfosSelectDto dto) {
+        return logisticsInfosService.getPage(dto);
+    }
+
+    /**
+     * 物流信息明细
+     */
+    @PostMapping("/detail")
+    public LogisticsInfosVo detail(@RequestBody BaseSelectDto dto) {
+        return logisticsInfosService.detail(dto.getId());
+    }
+
+    /**
+     * 物流信息新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody LogisticsInfosDto logisticsInfosDto) {
+        logisticsInfosService.add(logisticsInfosDto);
+    }
+
+    /**
+     * 物流信息编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody LogisticsInfosDto logisticsInfosDto) {
+        logisticsInfosService.edit(logisticsInfosDto);
+    }
+
+    /**
+     * 物流信息删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        logisticsInfosService.delete(dto.getId());
+    }
+
+    /**
+     * 快递信息
+     */
+    @PostMapping("/getLogistics")
+    public KD100Result getLogistics(Long id) {
+        return logisticsInfosService.getLogistics(id);
+    }
+
+    /**
+     * 更新物流状态
+     */
+    @PostMapping("/dataInfoEdit")
+    public void dataInfoEdit(Long id) {
+        logisticsInfosService.dataInfoEdit(id);
+    }
+
+    /**
+     * 到货通知
+     */
+    @PostMapping("/arrival/notice")
+    public void arrivalNotice(@RequestBody LogisticsInfosVo entity) {
+        logisticsInfosService.arrivalNotice(entity);
+    }
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class LogisticsDetailsDto extends LogisticsDetails {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class LogisticsDetailsSelectDto extends BaseSelectDto {
+
+}

+ 22 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfosDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流信息新增编辑入参实体
+ *
+ * @author
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class LogisticsInfosDto extends LogisticsInfos {
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 28 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfosSelectDto.java

@@ -0,0 +1,28 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流信息列表查询入参实体
+ *
+ * @author
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class LogisticsInfosSelectDto extends BaseSelectDto {
+    /**
+     * 来源过滤
+     */
+    private Integer businessType;
+    /**
+     * 物流状态过滤
+     */
+    private Integer logisticsStatus;
+    /**
+     * 完成状态过滤
+     */
+    private Integer status;
+}

+ 58 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsDetails.java

@@ -0,0 +1,58 @@
+package com.fjhx.victoriatourist.entity.logistics.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 物流明细
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+@TableName("logistics_details")
+public class LogisticsDetails extends BasePo {
+
+    /**
+     * 物流信息id
+     */
+    private Long logisticsInfoId;
+
+    /**
+     * 物流信息编码
+     */
+    private String logisticsInfoCode;
+
+    /**
+     * 采购单id
+     */
+    private Long purchaseId;
+
+    /**
+     * 申购单id
+     */
+    private Long applyPurchaseId;
+
+    /**
+     * 发货数量
+     */
+    private BigDecimal shipmentQuantity;
+
+    /**
+     * 已入库数量
+     */
+    private BigDecimal receiptQuantity;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 72 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsInfos.java

@@ -0,0 +1,72 @@
+package com.fjhx.victoriatourist.entity.logistics.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 物流信息
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+@TableName("logistics_infos")
+public class LogisticsInfos extends BasePo {
+
+    /**
+     * 业务id
+     */
+    private Long businessId;
+
+    /**
+     * 业务编码
+     */
+    private String businessCode;
+
+    /**
+     * 业务类型(1采购进货(入库) 2京东订单出货(出库) 3销售订单出货(出库) 4(京东退货))
+     */
+    private Integer businessType;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 采购进货 完成状态:0、未完成 / 未到货;1、已完成 / 已到货
+     */
+    private Integer status;
+
+    /**
+     * 采购进货 入库状态:10、未入库;20、部分入库;30、已入库
+     */
+    private Integer inStockStatus;
+
+    /**
+     * 物流单号
+     */
+    private String code;
+
+    /**
+     * 物流公司编码
+     */
+    private String logisticsCompanyCode;
+
+    /**
+     * 物流状态 -1未查询到快递信息 0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转投,8清关,14拒签,15完成
+     */
+    private Integer logisticsStatus;
+
+    /**
+     * 是否是快递100 1是 0不是
+     */
+    private Integer isKd100;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.logistics.vo;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class LogisticsDetailsVo extends LogisticsDetails {
+
+}

+ 27 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsInfosVo.java

@@ -0,0 +1,27 @@
+package com.fjhx.victoriatourist.entity.logistics.vo;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流信息列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class LogisticsInfosVo extends LogisticsInfos {
+
+    /**
+     * 物流公司名称
+     */
+    private String logisticsCompanyName;
+
+    /**
+     * 采购id
+     */
+    private Long purchaseId;
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/LogisticsDetailsMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.logistics;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 物流明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+public interface LogisticsDetailsMapper extends BaseMapper<LogisticsDetails> {
+
+    /**
+     * 物流明细分页
+     */
+    Page<LogisticsDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<LogisticsDetails> wrapper);
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/LogisticsInfosMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.logistics;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfosVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 物流信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+public interface LogisticsInfosMapper extends BaseMapper<LogisticsInfos> {
+
+    /**
+     * 物流信息分页
+     */
+    Page<LogisticsInfosVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<LogisticsInfos> wrapper);
+
+}

+ 46 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/LogisticsDetailsService.java

@@ -0,0 +1,46 @@
+package com.fjhx.victoriatourist.service.logistics;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsDetailsVo;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsDto;
+
+
+/**
+ * <p>
+ * 物流明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+public interface LogisticsDetailsService extends BaseService<LogisticsDetails> {
+
+    /**
+     * 物流明细分页
+     */
+    Page<LogisticsDetailsVo> getPage(LogisticsDetailsSelectDto dto);
+
+    /**
+     * 物流明细明细
+     */
+    LogisticsDetailsVo detail(Long id);
+
+    /**
+     * 物流明细新增
+     */
+    void add(LogisticsDetailsDto logisticsDetailsDto);
+
+    /**
+     * 物流明细编辑
+     */
+    void edit(LogisticsDetailsDto logisticsDetailsDto);
+
+    /**
+     * 物流明细删除
+     */
+    void delete(Long id);
+
+}

+ 62 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/LogisticsInfosService.java

@@ -0,0 +1,62 @@
+package com.fjhx.victoriatourist.service.logistics;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.kd100.util.KD100Result;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfosDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfosSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfosVo;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 物流信息 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-17
+ */
+public interface LogisticsInfosService extends BaseService<LogisticsInfos> {
+
+    /**
+     * 物流信息分页
+     */
+    Page<LogisticsInfosVo> getPage(LogisticsInfosSelectDto dto);
+
+    /**
+     * 物流信息明细
+     */
+    LogisticsInfosVo detail(Long id);
+
+    /**
+     * 物流信息新增
+     */
+    void add(LogisticsInfosDto logisticsInfosDto);
+
+    /**
+     * 物流信息编辑
+     */
+    void edit(LogisticsInfosDto logisticsInfosDto);
+
+    /**
+     * 物流信息删除
+     */
+    void delete(Long id);
+
+    /**
+     * 快递信息
+     */
+    KD100Result getLogistics(Long id);
+
+    /**
+     * 更新物流状态
+     */
+    void dataInfoEdit(Long id);
+
+    /**
+     * 到货通知
+     */
+    void arrivalNotice(LogisticsInfosVo entity);
+
+}

+ 57 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/LogisticsDetailsServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.victoriatourist.service.logistics.impl;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.mapper.logistics.LogisticsDetailsMapper;
+import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsDetailsVo;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 物流明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Service
+public class LogisticsDetailsServiceImpl extends ServiceImpl<LogisticsDetailsMapper, LogisticsDetails> implements LogisticsDetailsService {
+
+    @Override
+    public Page<LogisticsDetailsVo> getPage(LogisticsDetailsSelectDto dto) {
+        IWrapper<LogisticsDetails> wrapper = getWrapper();
+        wrapper.orderByDesc("ld", LogisticsDetails::getId);
+        Page<LogisticsDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public LogisticsDetailsVo detail(Long id) {
+        LogisticsDetails LogisticsDetails = this.getById(id);
+        LogisticsDetailsVo result = BeanUtil.toBean(LogisticsDetails, LogisticsDetailsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(LogisticsDetailsDto logisticsDetailsDto) {
+        this.save(logisticsDetailsDto);
+    }
+
+    @Override
+    public void edit(LogisticsDetailsDto logisticsDetailsDto) {
+        this.updateById(logisticsDetailsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 148 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/LogisticsInfosServiceImpl.java

@@ -0,0 +1,148 @@
+package com.fjhx.victoriatourist.service.logistics.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.kd100.entity.company.po.CompanyInfo;
+import com.fjhx.kd100.service.company.CompanyInfoService;
+import com.fjhx.kd100.util.KD100Result;
+import com.fjhx.kd100.util.KD100Util;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfosDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfosSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfos;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfosVo;
+import com.fjhx.victoriatourist.mapper.logistics.LogisticsInfosMapper;
+import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
+import com.fjhx.victoriatourist.service.logistics.LogisticsInfosService;
+import com.fjhx.victoriatourist.utils.Assert;
+import com.fjhx.victoriatourist.utils.LogisticsConstant;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 物流信息 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-17
+ */
+@Service
+public class LogisticsInfosServiceImpl extends ServiceImpl<LogisticsInfosMapper, LogisticsInfos> implements LogisticsInfosService {
+    @Autowired
+    CompanyInfoService companyInfoService;
+    @Autowired
+    LogisticsDetailsService logisticsDetailsService;
+    @Autowired
+    PurchaseService purchaseService;
+
+    @Override
+    public Page<LogisticsInfosVo> getPage(LogisticsInfosSelectDto dto) {
+        IWrapper<LogisticsInfos> wrapper = getWrapper();
+        wrapper.eq(LogisticsInfos::getBusinessType, dto.getBusinessType());
+        wrapper.eq(LogisticsInfos::getLogisticsStatus, dto.getLogisticsStatus());
+        wrapper.eq(LogisticsInfos::getStatus, dto.getStatus());
+        if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
+            wrapper.and(q -> q.like(LogisticsInfos::getCode, dto.getKeyword())
+                    .or().like(LogisticsInfos::getBusinessCode, dto.getKeyword()));
+        }
+        wrapper.eq(LogisticsInfos::getCode, dto.getKeyword());
+        wrapper.orderByDesc("li", LogisticsInfos::getId);
+        Page<LogisticsInfosVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<LogisticsInfosVo> records = page.getRecords();
+        //赋值物流公司名字
+        List<String> codes = records.stream().map(LogisticsInfosVo::getCode).collect(Collectors.toList());
+        if (ObjectUtil.isEmpty(codes)) {
+            return page;
+        }
+        List<CompanyInfo> list = companyInfoService.list(q -> q.in(CompanyInfo::getCode, codes));
+        if (ObjectUtil.isNotEmpty(list)) {
+            Map<String, String> companyMap = list.stream().collect(Collectors.toMap(CompanyInfo::getCode, CompanyInfo::getName));
+            for (LogisticsInfosVo record : records) {
+                String name = companyMap.get(record.getLogisticsCompanyCode());
+                record.setLogisticsCompanyName(name);
+            }
+        }
+        return page;
+    }
+
+    @Override
+    public LogisticsInfosVo detail(Long id) {
+        LogisticsInfos LogisticsInfos = this.getById(id);
+        LogisticsInfosVo result = BeanUtil.toBean(LogisticsInfos, LogisticsInfosVo.class);
+        return result;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(LogisticsInfosDto logisticsInfosDto) {
+        this.save(logisticsInfosDto);
+        LogisticsDetails logisticsDetails = new LogisticsDetails();
+        logisticsDetails.setLogisticsInfoId(logisticsInfosDto.getId());
+        logisticsDetails.setRemark(logisticsInfosDto.getRemark());
+        logisticsDetailsService.save(logisticsDetails);
+    }
+
+    @Override
+    public void edit(LogisticsInfosDto logisticsInfosDto) {
+        this.updateById(logisticsInfosDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    @Override
+    public KD100Result getLogistics(Long id) {
+        LogisticsInfos logisticsInfo = this.getById(id);
+        Assert.notEmpty(logisticsInfo, "没有找到物流信息");
+        return KD100Util.queryTrack(logisticsInfo.getLogisticsCompanyCode(), logisticsInfo.getCode());
+    }
+
+    @Override
+    public void dataInfoEdit(Long id) {
+        LogisticsInfos logisticsInfo = getById(id);
+        Assert.notEmpty(logisticsInfo, "没有找到物流信息");
+        KD100Result kd100Result = KD100Util.queryTrack(logisticsInfo.getLogisticsCompanyCode(), logisticsInfo.getCode());
+        Integer state = kd100Result.getState();
+        if (ObjectUtil.notEqual(state, logisticsInfo.getLogisticsStatus())) {
+            logisticsInfo.setLogisticsStatus(state);
+            updateById(logisticsInfo);
+        }
+    }
+
+    @Override
+    public void arrivalNotice(LogisticsInfosVo entity) {
+        // 采购id
+        Long purchaseId = entity.getPurchaseId();
+        Assert.notEmpty(purchaseId, "采购id不能为空");
+
+        entity.setStatus(LogisticsConstant.Status.STATUS_1);
+        updateById(entity);
+
+        Purchase purchase = new Purchase();
+        purchase.setId(purchaseId);
+        purchase.setArrivalStatus(10);//设置部分到货
+        purchaseService.updateById(purchase);
+
+        //物流到货通知
+        Assert.notEmpty(entity.getId(), "物流id不能为空");
+        LogisticsInfos logisticsInfo = new LogisticsInfos();
+        logisticsInfo.setId(entity.getId());
+        logisticsInfo.setLogisticsStatus(15);
+        updateById(logisticsInfo);
+    }
+
+}

+ 22 - 0
hx-victoriatourist/src/main/resources/mapper/logistics/LogisticsDetailsMapper.xml

@@ -0,0 +1,22 @@
+<?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.logistics.LogisticsDetailsMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.logistics.vo.LogisticsDetailsVo">
+        select
+            ld.id,
+            ld.logistics_info_id,
+            ld.logistics_info_code,
+            ld.purchase_id,
+            ld.apply_purchase_id,
+            ld.shipment_quantity,
+            ld.receipt_quantity,
+            ld.remark,
+            ld.create_user,
+            ld.create_time,
+            ld.update_user,
+            ld.update_time
+        from logistics_details ld
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 25 - 0
hx-victoriatourist/src/main/resources/mapper/logistics/LogisticsInfosMapper.xml

@@ -0,0 +1,25 @@
+<?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.logistics.LogisticsInfosMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfosVo">
+        select
+            li.id,
+            li.business_id,
+            li.business_code,
+            li.business_type,
+            li.warehouse_id,
+            li.status,
+            li.in_stock_status,
+            li.code,
+            li.logistics_company_code,
+            li.logistics_status,
+            li.is_kd100,
+            li.create_user,
+            li.create_time,
+            li.update_user,
+            li.update_time
+        from logistics_infos li
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>