yzc 2 лет назад
Родитель
Сommit
1ddb413632
45 измененных файлов с 1803 добавлено и 4 удалено
  1. 1 1
      hx-oa/src/main/java/com/fjhx/oa/entity/schedule/po/ScheduleInfo.java
  2. 3 1
      hx-oa/src/main/java/com/fjhx/oa/service/schedule/impl/ScheduleInfoServiceImpl.java
  3. 2 1
      hx-oa/src/main/resources/mapper/schedule/ScheduleInfoMapper.xml
  4. 12 1
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java
  5. 9 0
      hx-victoriatourist/pom.xml
  6. 0 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/OrderDetailsApi.json
  7. 0 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/OrderInfoApi.json
  8. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsDetailsController.java
  9. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsInfoController.java
  10. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/order/OrderDetailsController.java
  11. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/order/OrderInfoController.java
  12. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsDto.java
  13. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsSelectDto.java
  14. 22 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfoDto.java
  15. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfoSelectDto.java
  16. 63 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsDetails.java
  17. 72 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsInfo.java
  18. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsDetailsVo.java
  19. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsInfoVo.java
  20. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderDetailsDto.java
  21. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderDetailsSelectDto.java
  22. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderInfoDto.java
  23. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderInfoSelectDto.java
  24. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/po/OrderDetails.java
  25. 118 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/po/OrderInfo.java
  26. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/vo/OrderDetailsVo.java
  27. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/vo/OrderInfoVo.java
  28. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/LogisticsDetailsMapper.java
  29. 32 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/MyLogisticsInfoMapper.java
  30. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/order/OrderDetailsMapper.java
  31. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/order/OrderInfoMapper.java
  32. 46 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/LogisticsDetailsService.java
  33. 46 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/MyLogisticsInfoService.java
  34. 57 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/LogisticsDetailsServiceImpl.java
  35. 179 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/MyLogisticsInfoServiceImpl.java
  36. 46 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/OrderDetailsService.java
  37. 46 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/OrderInfoService.java
  38. 57 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/impl/OrderDetailsServiceImpl.java
  39. 57 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/impl/OrderInfoServiceImpl.java
  40. 155 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/utils/Assert.java
  41. 57 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/utils/LogisticsConstant.java
  42. 22 0
      hx-victoriatourist/src/main/resources/mapper/logistics/LogisticsDetailsMapper.xml
  43. 39 0
      hx-victoriatourist/src/main/resources/mapper/logistics/MyLogisticsInfoMapper.xml
  44. 23 0
      hx-victoriatourist/src/main/resources/mapper/order/OrderDetailsMapper.xml
  45. 34 0
      hx-victoriatourist/src/main/resources/mapper/order/OrderInfoMapper.xml

+ 1 - 1
hx-oa/src/main/java/com/fjhx/oa/entity/schedule/po/ScheduleInfo.java

@@ -47,7 +47,7 @@ public class ScheduleInfo extends BasePo {
     /**
      * 颜色
      */
-    private String colour;
+    private String color;
 
     /**
      * 地点

+ 3 - 1
hx-oa/src/main/java/com/fjhx/oa/service/schedule/impl/ScheduleInfoServiceImpl.java

@@ -48,9 +48,11 @@ public class ScheduleInfoServiceImpl extends ServiceImpl<ScheduleInfoMapper, Sch
     public Page<ScheduleInfoVo> getPage(ScheduleInfoSelectDto dto) {
         IWrapper<ScheduleInfo> wrapper = getWrapper();
         wrapper.orderByDesc("si", ScheduleInfo::getId);
-        if(ObjectUtil.isNotEmpty(dto.getDate())) {
+        if (ObjectUtil.isNotEmpty(dto.getDate())) {
             wrapper.apply("date_format(si.start_date,'%Y-%m') = date_format('" + sdf.format(dto.getDate()) + "','%Y-%m')");
         }
+        wrapper.eq("si", ScheduleInfoVo::getCreateUser, dto);
+        wrapper.eq("sd", ScheduleInfoVo::getParticipantId, dto);
         Page<ScheduleInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;
     }

+ 2 - 1
hx-oa/src/main/resources/mapper/schedule/ScheduleInfoMapper.xml

@@ -9,7 +9,7 @@
             si.end_date,
             si.repeat_type,
             si.is_all_day,
-            si.colour,
+            si.color,
             si.place,
             si.notice_type,
             si.task_permissions,
@@ -19,6 +19,7 @@
             si.update_user,
             si.update_time
         from schedule_info si
+                 left JOIN schedule_details sd ON sd.schedule_info_id = si.id
             ${ew.customSqlSegment}
     </select>
     <select id="mySchedule" resultType="com.fjhx.oa.entity.schedule.vo.ScheduleInfoVo">

+ 12 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java

@@ -4,14 +4,25 @@ import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 申购单列表查询返回值实体
  *
- * @author 
+ * @author
  * @since 2023-04-06
  */
 @Getter
 @Setter
 public class PurchaseDetailVo extends PurchaseDetail {
 
+    /**
+     * 质检合格数量
+     */
+    private BigDecimal qualifiedCount;
+    /**
+     * 质检不合格数量
+     */
+    private BigDecimal noQualifiedCount;
+
 }

+ 9 - 0
hx-victoriatourist/pom.xml

@@ -20,6 +20,15 @@
             <groupId>com.fjhx</groupId>
             <artifactId>hx-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-purchase</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>hx-kd100</artifactId>
+            <version>3.8.5</version>
+        </dependency>
     </dependencies>
 
 </project>

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/OrderDetailsApi.json


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/OrderInfoApi.json


+ 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-12
+ */
+@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());
+    }
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsInfoController.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.LogisticsInfoVo;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfoSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfoDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.logistics.MyLogisticsInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 物流信息 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@RestController
+@RequestMapping("/logisticsInfo")
+public class LogisticsInfoController {
+
+    @Autowired
+    private MyLogisticsInfoService logisticsInfoService;
+
+    /**
+     * 物流信息分页
+     */
+    @PostMapping("/page")
+    public Page<LogisticsInfoVo> page(@RequestBody LogisticsInfoSelectDto dto) {
+        return logisticsInfoService.getPage(dto);
+    }
+
+    /**
+     * 物流信息明细
+     */
+    @PostMapping("/detail")
+    public LogisticsInfoVo detail(@RequestBody BaseSelectDto dto) {
+        return logisticsInfoService.detail(dto.getId());
+    }
+
+    /**
+     * 物流信息新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody LogisticsInfoDto logisticsInfoDto) {
+        logisticsInfoService.add(logisticsInfoDto);
+    }
+
+    /**
+     * 物流信息编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody LogisticsInfoDto logisticsInfoDto) {
+        logisticsInfoService.edit(logisticsInfoDto);
+    }
+
+    /**
+     * 物流信息删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        logisticsInfoService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/order/OrderDetailsController.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.controller.order;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderDetailsVo;
+import com.fjhx.victoriatourist.entity.order.dto.OrderDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.order.dto.OrderDetailsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.order.OrderDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 订单明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/orderDetails")
+public class OrderDetailsController {
+
+    @Autowired
+    private OrderDetailsService orderDetailsService;
+
+    /**
+     * 订单明细分页
+     */
+    @PostMapping("/page")
+    public Page<OrderDetailsVo> page(@RequestBody OrderDetailsSelectDto dto) {
+        return orderDetailsService.getPage(dto);
+    }
+
+    /**
+     * 订单明细明细
+     */
+    @PostMapping("/detail")
+    public OrderDetailsVo detail(@RequestBody BaseSelectDto dto) {
+        return orderDetailsService.detail(dto.getId());
+    }
+
+    /**
+     * 订单明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody OrderDetailsDto orderDetailsDto) {
+        orderDetailsService.add(orderDetailsDto);
+    }
+
+    /**
+     * 订单明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody OrderDetailsDto orderDetailsDto) {
+        orderDetailsService.edit(orderDetailsDto);
+    }
+
+    /**
+     * 订单明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        orderDetailsService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/order/OrderInfoController.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.controller.order;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderInfoVo;
+import com.fjhx.victoriatourist.entity.order.dto.OrderInfoSelectDto;
+import com.fjhx.victoriatourist.entity.order.dto.OrderInfoDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.order.OrderInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 订单 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/orderInfo")
+public class OrderInfoController {
+
+    @Autowired
+    private OrderInfoService orderInfoService;
+
+    /**
+     * 订单分页
+     */
+    @PostMapping("/page")
+    public Page<OrderInfoVo> page(@RequestBody OrderInfoSelectDto dto) {
+        return orderInfoService.getPage(dto);
+    }
+
+    /**
+     * 订单明细
+     */
+    @PostMapping("/detail")
+    public OrderInfoVo detail(@RequestBody BaseSelectDto dto) {
+        return orderInfoService.detail(dto.getId());
+    }
+
+    /**
+     * 订单新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody OrderInfoDto orderInfoDto) {
+        orderInfoService.add(orderInfoDto);
+    }
+
+    /**
+     * 订单编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody OrderInfoDto orderInfoDto) {
+        orderInfoService.edit(orderInfoDto);
+    }
+
+    /**
+     * 订单删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        orderInfoService.delete(dto.getId());
+    }
+
+}

+ 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-12
+ */
+@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-12
+ */
+@Getter
+@Setter
+public class LogisticsDetailsSelectDto extends BaseSelectDto {
+
+}

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

@@ -0,0 +1,22 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 物流信息新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class LogisticsInfoDto extends LogisticsInfo {
+
+    List<LogisticsDetails> details;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfoSelectDto.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-12
+ */
+@Getter
+@Setter
+public class LogisticsInfoSelectDto extends BaseSelectDto {
+
+}

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

@@ -0,0 +1,63 @@
+package com.fjhx.victoriatourist.entity.logistics.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 物流明细
+ * </p>
+ *
+ * @author
+ * @since 2023-04-12
+ */
+@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;
+
+    /**
+     * 采购明细id
+     */
+    private Long purchaseDetailId;
+
+}

+ 72 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsInfo.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-12
+ */
+@Getter
+@Setter
+@TableName("logistics_info")
+public class LogisticsInfo 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-12
+ */
+@Getter
+@Setter
+public class LogisticsDetailsVo extends LogisticsDetails {
+
+}

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

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

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.dto;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderDetailsDto extends OrderDetails {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderDetailsSelectDto.java

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

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderInfoDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.dto;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderInfoDto extends OrderInfo {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderInfoSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderInfoSelectDto extends BaseSelectDto {
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/po/OrderDetails.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.entity.order.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 订单明细
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+@TableName("order_details")
+public class OrderDetails extends BasePo {
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 单价
+     */
+    private BigDecimal price;
+
+    /**
+     * 未出库数量
+     */
+    private BigDecimal notIssuedQuantity;
+
+    /**
+     * 版本号
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Version
+    private Integer version;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 预约号
+     */
+    private Long reservationNumber;
+
+}

+ 118 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/po/OrderInfo.java

@@ -0,0 +1,118 @@
+package com.fjhx.victoriatourist.entity.order.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-13
+ */
+@Getter
+@Setter
+@TableName("order_info")
+public class OrderInfo extends BasePo {
+
+    /**
+     * 订单类型(1线上 2线下 3京东订单 4补偿 5补发 6线下退换货 7采购退货)
+     */
+    private Integer type;
+
+    /**
+     * 客户id
+     */
+    private Long customerInfoId;
+
+    /**
+     * 编号
+     */
+    private String code;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal amountMoney;
+
+    /**
+     * 下单时间
+     */
+    private Date orderTime;
+
+    /**
+     * 订单状态 1进行中 2已完成 3已取消
+     */
+    private Integer status;
+
+    /**
+     * 出库状态 1未出库 2进行中 3已出库
+     */
+    private Integer issueStatus;
+
+    /**
+     * 售后状态 1跟进中(补发中、未补发未收到退货) 2已补发 3未补发收到退货 4已补发收到退货 5已补发未收到退货 6结束
+     */
+    private Integer afterSalesStatus;
+
+    /**
+     * 国家
+     */
+    private String countryId;
+
+    /**
+     * 省
+     */
+    private String provinceId;
+
+    /**
+     * 市
+     */
+    private String cityId;
+
+    /**
+     * 详细地址
+     */
+    private String detailedAddress;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 联系电话前缀类型
+     */
+    private Integer phonePrefixType;
+
+    /**
+     * 导入excel关联id
+     */
+    private Long excelImportId;
+
+    /**
+     * 配送中心
+     */
+    private String distributionCenter;
+
+    /**
+     * 京东仓库
+     */
+    private String jdWarehouse;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/vo/OrderDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.vo;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderDetailsVo extends OrderDetails {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/vo/OrderInfoVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.vo;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderInfoVo extends OrderInfo {
+
+}

+ 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-12
+ */
+public interface LogisticsDetailsMapper extends BaseMapper<LogisticsDetails> {
+
+    /**
+     * 物流明细分页
+     */
+    Page<LogisticsDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<LogisticsDetails> wrapper);
+
+}

+ 32 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/MyLogisticsInfoMapper.java

@@ -0,0 +1,32 @@
+package com.fjhx.victoriatourist.mapper.logistics;
+
+import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfoVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 物流信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface MyLogisticsInfoMapper extends BaseMapper<LogisticsInfo> {
+
+    /**
+     * 物流信息分页
+     */
+    Page<LogisticsInfoVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<LogisticsInfo> wrapper);
+
+    List<PurchaseDetailVo> getQualityDetailByPurchaseDetailId(@Param("ew") IWrapper<LogisticsDetails> wrapper);
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/order/OrderDetailsMapper.java

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

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/order/OrderInfoMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.order;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderInfoVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 订单 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
+
+    /**
+     * 订单分页
+     */
+    Page<OrderInfoVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<OrderInfo> 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-12
+ */
+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);
+
+}

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

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

+ 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-12
+ */
+@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);
+    }
+
+}

+ 179 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/MyLogisticsInfoServiceImpl.java

@@ -0,0 +1,179 @@
+package com.fjhx.victoriatourist.service.logistics.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.kd100.event.Kd100CallbackEvent;
+import com.fjhx.kd100.util.KD100Util;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
+import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfoDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfoSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfo;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfoVo;
+import com.fjhx.victoriatourist.mapper.logistics.MyLogisticsInfoMapper;
+import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
+import com.fjhx.victoriatourist.service.logistics.MyLogisticsInfoService;
+import com.fjhx.victoriatourist.utils.Assert;
+import com.fjhx.victoriatourist.utils.LogisticsConstant;
+import com.obs.services.internal.ServiceException;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 物流信息 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-12
+ */
+@Service
+public class MyLogisticsInfoServiceImpl extends ServiceImpl<MyLogisticsInfoMapper, LogisticsInfo> implements MyLogisticsInfoService {
+
+    @Autowired
+    PurchaseService purchaseService;
+    @Autowired
+    LogisticsDetailsService logisticsDetailsService;
+
+    @EventListener
+    public void kd100EventListener(Kd100CallbackEvent event) {
+        com.fjhx.kd100.entity.logistics.po.LogisticsInfo logisticsInfo = event.getLogisticsInfo();
+        //监听物流状态变化
+        if (KD100Util.getTableName(LogisticsInfo.class).equals(logisticsInfo.getTableName())) {
+            LogisticsInfo byId = getById(logisticsInfo.getBusinessId());
+            byId.setLogisticsStatus(logisticsInfo.getState());
+            updateById(byId);
+        }
+    }
+
+    @Override
+    public Page<LogisticsInfoVo> getPage(LogisticsInfoSelectDto dto) {
+        IWrapper<LogisticsInfo> wrapper = getWrapper();
+        wrapper.orderByDesc("li", LogisticsInfo::getId);
+        Page<LogisticsInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public LogisticsInfoVo detail(Long id) {
+        LogisticsInfo LogisticsInfo = this.getById(id);
+        LogisticsInfoVo result = BeanUtil.toBean(LogisticsInfo, LogisticsInfoVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(LogisticsInfoDto logisticsInfoDto) {
+        Long businessId = logisticsInfoDto.getBusinessId();
+        String logisticsCompanyCode = logisticsInfoDto.getLogisticsCompanyCode();
+        String code = logisticsInfoDto.getCode();
+        List<LogisticsDetails> details = logisticsInfoDto.getDetails();
+
+        Assert.notEmpty(businessId, "业务id不能为空");
+        Assert.notEmpty(logisticsCompanyCode, "物流公司编码不能为空");
+        Assert.notEmpty(code, "物流单号不能为空");
+        Assert.notEmpty(details, "发货明细不能为空");
+
+        Purchase purchase = purchaseService.getById(businessId);
+        Assert.notEmpty(purchase, "未知采购id");
+
+        // 物流信息id
+        long logisticsInfoId = IdWorker.getId();
+
+        //根据传入的物流明细列表中的采购明细查 已采购数量/质检合格数量/质检不合格数量
+        List<Long> purchaseDetailIds = details.stream().map(LogisticsDetails::getPurchaseDetailId).collect(Collectors.toList());
+        IWrapper<LogisticsDetails> wrapper = IWrapper.getWrapper();
+        wrapper.in(LogisticsDetails::getPurchaseDetailId, purchaseDetailIds);
+        List<PurchaseDetailVo> purchaseDetailVoList = baseMapper.getQualityDetailByPurchaseDetailId(wrapper);
+        //根据采购明细id分组
+        Map<Long, PurchaseDetailVo> purchaseDetailVoMap = purchaseDetailVoList.stream()
+                .collect(Collectors.toMap(PurchaseDetailVo::getId, Function.identity()));
+        //遍历物流明细列表检查条件
+
+        //获取所有申购id
+//        List<Long> applyPurchaseIds = details.stream().map(LogisticsDetails::getApplyPurchaseId).collect(Collectors.toList());
+        //查询质检明细信息
+//        List<QualityDetailsVo> qualityDetailsByApplyId = qualityDetailsService.getQualityDetailsByApplyId(applyPurchaseIds);
+//        Map<Long, QualityDetailsVo> qualityDetailsVoMap = qualityDetailsByApplyId.stream().collect(Collectors.groupingBy(QualityDetailsVo::getApplyId,
+//                Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
+//
+        details = details.stream()
+                .filter(item -> ObjectUtil.defaultIfNull(item.getShipmentQuantity(), BigDecimal.ZERO).compareTo(BigDecimal.ZERO) > 0)
+                .peek(item -> {
+//                    Long applyPurchaseId = item.getApplyPurchaseId();
+//                    Assert.notEmpty(applyPurchaseId, "申购id不能为空");
+
+                    //获取质检明细id
+                    Long purchaseDetailId = item.getPurchaseDetailId();
+                    Assert.notEmpty(purchaseDetailId, "质检明细id不能为空");
+
+
+                    //判断发货数量 + SUM(质检合格数量)不能大于“已采购数量”
+//                    QualityDetailsVo qualityDetailsVo = qualityDetailsVoMap.get(applyPurchaseId);
+                    PurchaseDetailVo purchaseDetailVo = purchaseDetailVoMap.get(purchaseDetailId);
+                    //质检合格数量,和已采购数量
+                    BigDecimal qualifiedQuantity = purchaseDetailVo.getQualifiedCount();
+                    BigDecimal purchaseQuantity = purchaseDetailVo.getCount();
+//                    if(ObjectUtil.isNotEmpty(qualityDetailsVo)){
+//                        if(ObjectUtil.isNotEmpty(qualityDetailsVo.getQualifiedQuantity())) {
+//                            qualifiedQuantity = qualityDetailsVo.getQualifiedQuantity();
+//                        }
+//                        if(ObjectUtil.isNotEmpty(qualityDetailsVo.getPurchaseQuantity())) {
+//                            purchaseQuantity = qualityDetailsVo.getPurchaseQuantity();
+//                        }
+//                    }
+                    if (item.getShipmentQuantity().add(qualifiedQuantity).compareTo(purchaseQuantity) > 0) {
+                        throw new ServiceException("发货数量 + 质检合格数量 不能大于“已采购数量”");
+                    }
+
+                    item.setLogisticsInfoId(logisticsInfoId);
+                    item.setLogisticsInfoCode(code);
+                    item.setReceiptQuantity(BigDecimal.ZERO);
+
+                }).collect(Collectors.toList());
+        Assert.notEmpty(details, "发货数量全为0");
+
+
+        // 物流状态
+//        Integer state = KD100Util.getStateAndMonitor(logisticsCompanyCode, code);
+        Integer state = KD100Util.monitor(logisticsCompanyCode, code, logisticsInfoId, 1, LogisticsInfo.class).getState();
+        logisticsInfoDto.setId(logisticsInfoId);
+        logisticsInfoDto.setBusinessType(1);
+        logisticsInfoDto.setBusinessCode(purchase.getCode());
+        logisticsInfoDto.setLogisticsStatus(state);
+        logisticsInfoDto.setStatus(LogisticsConstant.Status.STATUS_0);
+        logisticsInfoDto.setInStockStatus(LogisticsConstant.InStockStatus.STATUS_10);
+        this.save(logisticsInfoDto);
+
+        // 保存明细
+        logisticsDetailsService.saveBatch(details);
+//
+//        // 保存附件
+//        FileClientUtil.bindingFile(logisticsInfoId, logisticsInfoVo.getFileInfos());
+
+    }
+
+    @Override
+    public void edit(LogisticsInfoDto logisticsInfoDto) {
+        this.updateById(logisticsInfoDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 46 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/OrderDetailsService.java

@@ -0,0 +1,46 @@
+package com.fjhx.victoriatourist.service.order;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderDetails;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderDetailsVo;
+import com.fjhx.victoriatourist.entity.order.dto.OrderDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.order.dto.OrderDetailsDto;
+
+
+/**
+ * <p>
+ * 订单明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface OrderDetailsService extends BaseService<OrderDetails> {
+
+    /**
+     * 订单明细分页
+     */
+    Page<OrderDetailsVo> getPage(OrderDetailsSelectDto dto);
+
+    /**
+     * 订单明细明细
+     */
+    OrderDetailsVo detail(Long id);
+
+    /**
+     * 订单明细新增
+     */
+    void add(OrderDetailsDto orderDetailsDto);
+
+    /**
+     * 订单明细编辑
+     */
+    void edit(OrderDetailsDto orderDetailsDto);
+
+    /**
+     * 订单明细删除
+     */
+    void delete(Long id);
+
+}

+ 46 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/OrderInfoService.java

@@ -0,0 +1,46 @@
+package com.fjhx.victoriatourist.service.order;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderInfoVo;
+import com.fjhx.victoriatourist.entity.order.dto.OrderInfoSelectDto;
+import com.fjhx.victoriatourist.entity.order.dto.OrderInfoDto;
+
+
+/**
+ * <p>
+ * 订单 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface OrderInfoService extends BaseService<OrderInfo> {
+
+    /**
+     * 订单分页
+     */
+    Page<OrderInfoVo> getPage(OrderInfoSelectDto dto);
+
+    /**
+     * 订单明细
+     */
+    OrderInfoVo detail(Long id);
+
+    /**
+     * 订单新增
+     */
+    void add(OrderInfoDto orderInfoDto);
+
+    /**
+     * 订单编辑
+     */
+    void edit(OrderInfoDto orderInfoDto);
+
+    /**
+     * 订单删除
+     */
+    void delete(Long id);
+
+}

+ 57 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/impl/OrderDetailsServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.victoriatourist.service.order.impl;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderDetails;
+import com.fjhx.victoriatourist.mapper.order.OrderDetailsMapper;
+import com.fjhx.victoriatourist.service.order.OrderDetailsService;
+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.order.vo.OrderDetailsVo;
+import com.fjhx.victoriatourist.entity.order.dto.OrderDetailsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.victoriatourist.entity.order.dto.OrderDetailsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 订单明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Service
+public class OrderDetailsServiceImpl extends ServiceImpl<OrderDetailsMapper, OrderDetails> implements OrderDetailsService {
+
+    @Override
+    public Page<OrderDetailsVo> getPage(OrderDetailsSelectDto dto) {
+        IWrapper<OrderDetails> wrapper = getWrapper();
+        wrapper.orderByDesc("od", OrderDetails::getId);
+        Page<OrderDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public OrderDetailsVo detail(Long id) {
+        OrderDetails OrderDetails = this.getById(id);
+        OrderDetailsVo result = BeanUtil.toBean(OrderDetails, OrderDetailsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(OrderDetailsDto orderDetailsDto) {
+        this.save(orderDetailsDto);
+    }
+
+    @Override
+    public void edit(OrderDetailsDto orderDetailsDto) {
+        this.updateById(orderDetailsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 57 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/order/impl/OrderInfoServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.victoriatourist.service.order.impl;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
+import com.fjhx.victoriatourist.mapper.order.OrderInfoMapper;
+import com.fjhx.victoriatourist.service.order.OrderInfoService;
+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.order.vo.OrderInfoVo;
+import com.fjhx.victoriatourist.entity.order.dto.OrderInfoSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.victoriatourist.entity.order.dto.OrderInfoDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 订单 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Service
+public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo> implements OrderInfoService {
+
+    @Override
+    public Page<OrderInfoVo> getPage(OrderInfoSelectDto dto) {
+        IWrapper<OrderInfo> wrapper = getWrapper();
+        wrapper.orderByDesc("oi", OrderInfo::getId);
+        Page<OrderInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public OrderInfoVo detail(Long id) {
+        OrderInfo OrderInfo = this.getById(id);
+        OrderInfoVo result = BeanUtil.toBean(OrderInfo, OrderInfoVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(OrderInfoDto orderInfoDto) {
+        this.save(orderInfoDto);
+    }
+
+    @Override
+    public void edit(OrderInfoDto orderInfoDto) {
+        this.updateById(orderInfoDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 155 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/utils/Assert.java

@@ -0,0 +1,155 @@
+package com.fjhx.victoriatourist.utils;
+
+
+import cn.hutool.core.util.ObjectUtil;
+import com.obs.services.internal.ServiceException;
+
+import java.math.BigDecimal;
+
+public class Assert {
+
+    /**
+     * 断言client返回成功
+     *
+     * @param r 返回结果集
+     */
+//    public static <T> T result(R<T> r) {
+//        Assert.eqTrue(r.isSuccess(), r.getMsg());
+//        return r.getData();
+//    }
+
+    /**
+     * 断言为空
+     *
+     * @param obj    参数
+     * @param errStr 异常提示
+     */
+    public static void empty(Object obj, String errStr) {
+        if (ObjectUtil.isNotEmpty(obj)) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
+     * 断言不为空
+     *
+     * @param obj    参数
+     * @param errStr 异常提示
+     */
+    public static void notEmpty(Object obj, String errStr) {
+        if (ObjectUtil.isEmpty(obj)) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
+     * 断言为0
+     *
+     * @param integer 参数
+     * @param errStr  异常提示
+     */
+    public static void eqZero(Integer integer, String errStr) {
+        if (integer != 0) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
+     * 断言为0
+     *
+     * @param integer 参数
+     * @param errStr  异常提示
+     */
+    public static void eqZero(Long integer, String errStr) {
+        if (integer != 0) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
+     * 断言为1
+     *
+     * @param along  参数
+     * @param errStr 异常提示
+     */
+    public static void eqOne(Long along, String errStr) {
+        if (along != 1) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
+     * 断言为1
+     *
+     * @param integer 参数
+     * @param errStr  异常提示
+     */
+    public static void eqOne(Integer integer, String errStr) {
+        if (integer != 1) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
+     * 断言为真
+     *
+     * @param flag   参数
+     * @param errStr 异常提示
+     */
+    public static void eqTrue(Boolean flag, String errStr) {
+        if (flag == null || flag.equals(false)) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
+     * 断言大于0
+     *
+     * @param bigDecimal 参数
+     * @param errStr     异常提示
+     */
+    public static void gtZero(BigDecimal bigDecimal, String errStr) {
+        if (bigDecimal == null || BigDecimal.ZERO.compareTo(bigDecimal) > 0) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+    /**
+     * 断言大于等于0
+     *
+     * @param bigDecimal 参数
+     * @param errStr     异常提示
+     */
+    public static void geZero(BigDecimal bigDecimal, String errStr) {
+        if (bigDecimal == null || BigDecimal.ZERO.compareTo(bigDecimal) >= 0) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+
+    /**
+     * 断言大于0
+     *
+     * @param integer 参数
+     * @param errStr  异常提示
+     */
+    public static void gtZero(Integer integer, String errStr) {
+        if (integer == null || integer <= 0) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+
+    /**
+     * 验证id是否正确
+     *
+     * @param id     参数
+     * @param errStr 异常提示
+     */
+    public static void isAaaignId(Object id, String errStr) {
+        if (id == null || id.toString().length() != 19) {
+            throw new ServiceException(errStr);
+        }
+    }
+
+}

+ 57 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/utils/LogisticsConstant.java

@@ -0,0 +1,57 @@
+package com.fjhx.victoriatourist.utils;
+
+/**
+ * 物流常量
+ */
+public interface LogisticsConstant {
+
+    /**
+     * 状态
+     */
+    class Status {
+        //未完成 / 未到货
+        public static final Integer STATUS_0 = 0;
+        //已完成 / 已到货
+        public static final Integer STATUS_1 = 1;
+    }
+
+    /**
+     * 入库状态
+     */
+    class InStockStatus {
+        //未入库
+        public static final Integer STATUS_10 = 10;
+        //部分入库
+        public static final Integer STATUS_20 = 20;
+        //已入库
+        public static final Integer STATUS_30 = 30;
+    }
+
+    /**
+     * 物流状态(快递100的状态)
+     */
+    class KD100Status {
+        // 未找到快递信息
+        public static final Integer STATUS_N = -1;
+        // 在途
+        public static final Integer STATUS_0 = 0;
+        // 揽收
+        public static final Integer STATUS_1 = 1;
+        // 疑难
+        public static final Integer STATUS_2 = 2;
+        // 签收
+        public static final Integer STATUS_3 = 3;
+        // 退签
+        public static final Integer STATUS_4 = 4;
+        // 派件
+        public static final Integer STATUS_5 = 5;
+        //退回
+        public static final Integer STATUS_6 = 6;
+        //转投
+        public static final Integer STATUS_7 = 7;
+        //清关
+        public static final Integer STATUS_8 = 8;
+        //拒签
+        public static final Integer STATUS_14 = 14;
+    }
+}

+ 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>

+ 39 - 0
hx-victoriatourist/src/main/resources/mapper/logistics/MyLogisticsInfoMapper.xml

@@ -0,0 +1,39 @@
+<?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.MyLogisticsInfoMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfoVo">
+        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_info li
+            ${ew.customSqlSegment}
+    </select>
+    <select id="getQualityDetailByPurchaseDetailId"
+            resultType="com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo">
+        SELECT
+            pd.id,
+            sum( pd.count ) `count`,
+            IFNULL( sum( qd.qualified_count ), 0 ) qualified_count,
+            IFNULL( sum( qd.no_qualified_count ), 0 ) no_qualified_count
+        FROM
+            purchase_detail pd
+                LEFT JOIN arrival_detail ad ON ad.purchase_detail_id = pd.id
+                LEFT JOIN quality_detail qd ON qd.arrival_detail_id = ad.id
+        GROUP BY
+            pd.id
+    </select>
+
+</mapper>

+ 23 - 0
hx-victoriatourist/src/main/resources/mapper/order/OrderDetailsMapper.xml

@@ -0,0 +1,23 @@
+<?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.order.OrderDetailsMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.order.vo.OrderDetailsVo">
+        select
+            od.id,
+            od.order_id,
+            od.product_id,
+            od.quantity,
+            od.price,
+            od.not_issued_quantity,
+            od.version,
+            od.remark,
+            od.create_user,
+            od.create_time,
+            od.update_user,
+            od.update_time,
+            od.reservation_number
+        from order_details od
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 34 - 0
hx-victoriatourist/src/main/resources/mapper/order/OrderInfoMapper.xml

@@ -0,0 +1,34 @@
+<?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.order.OrderInfoMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.order.vo.OrderInfoVo">
+        select
+            oi.id,
+            oi.type,
+            oi.customer_info_id,
+            oi.code,
+            oi.amount_money,
+            oi.order_time,
+            oi.status,
+            oi.issue_status,
+            oi.after_sales_status,
+            oi.country_id,
+            oi.province_id,
+            oi.city_id,
+            oi.detailed_address,
+            oi.contacts,
+            oi.phone,
+            oi.phone_prefix_type,
+            oi.excel_import_id,
+            oi.distribution_center,
+            oi.jd_warehouse,
+            oi.remark,
+            oi.create_user,
+            oi.create_time,
+            oi.update_user,
+            oi.update_time
+        from order_info oi
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

Некоторые файлы не были показаны из-за большого количества измененных файлов