yzc 2 лет назад
Родитель
Сommit
f885916c0d
23 измененных файлов с 958 добавлено и 2 удалено
  1. 3 0
      hx-common/src/main/java/com/fjhx/common/aspect/DataSourceAspect.java
  2. 73 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/stock/StockTransferController.java
  3. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/stock/StockTransferDetailsController.java
  4. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/dto/StockTransferDetailsDto.java
  5. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/dto/StockTransferDetailsSelectDto.java
  6. 25 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/dto/StockTransferDto.java
  7. 34 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/dto/StockTransferSelectDto.java
  8. 57 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/po/StockTransfer.java
  9. 43 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/po/StockTransferDetails.java
  10. 30 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/vo/StockTransferDetailsVo.java
  11. 45 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/vo/StockTransferVo.java
  12. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/stock/StockTransferDetailsMapper.java
  13. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/stock/StockTransferMapper.java
  14. 22 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/impl/LogisticsInfosServiceImpl.java
  15. 46 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/StockTransferDetailsService.java
  16. 51 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/StockTransferService.java
  17. 57 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/impl/StockTransferDetailsServiceImpl.java
  18. 152 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/impl/StockTransferServiceImpl.java
  19. 99 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/utils/CodeEnum.java
  20. 19 0
      hx-victoriatourist/src/main/resources/mapper/stock/StockTransferDetailsMapper.xml
  21. 22 0
      hx-victoriatourist/src/main/resources/mapper/stock/StockTransferMapper.xml
  22. 9 2
      hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockWaitSelectDto.java
  23. 17 0
      hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

+ 3 - 0
hx-common/src/main/java/com/fjhx/common/aspect/DataSourceAspect.java

@@ -6,6 +6,8 @@ import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
 import java.lang.reflect.Field;
@@ -15,6 +17,7 @@ import java.util.Set;
 
 @Aspect
 @Component
+@Order(Ordered.HIGHEST_PRECEDENCE)
 public class DataSourceAspect {
 
     private static final Set<String> dataSourceSet = new HashSet<>();

+ 73 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/stock/StockTransferController.java

@@ -0,0 +1,73 @@
+package com.fjhx.victoriatourist.controller.stock;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.stock.vo.StockTransferVo;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferSelectDto;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.stock.StockTransferService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 调仓记录 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@RestController
+@RequestMapping("/stockTransfer")
+public class StockTransferController {
+
+    @Autowired
+    private StockTransferService stockTransferService;
+
+    /**
+     * 调仓记录分页
+     */
+    @PostMapping("/page")
+    public Page<StockTransferVo> page(@RequestBody StockTransferSelectDto dto) {
+        return stockTransferService.getPage(dto);
+    }
+
+    /**
+     * 调仓记录明细
+     */
+    @PostMapping("/detail")
+    public StockTransferVo detail(@RequestBody BaseSelectDto dto) {
+        return stockTransferService.detail(dto.getId());
+    }
+
+    /**
+     * 调仓记录新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody StockTransferDto stockTransferDto) {
+        stockTransferService.add(stockTransferDto);
+    }
+
+    /**
+     * 调仓记录编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody StockTransferDto stockTransferDto) {
+        stockTransferService.edit(stockTransferDto);
+    }
+
+    /**
+     * 调仓记录删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        stockTransferService.delete(dto.getId());
+    }
+
+    @PostMapping("/receive")
+    public void receive(StockTransferDto stockTransferDto){
+        stockTransferService.receive(stockTransferDto);
+    }
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/stock/StockTransferDetailsController.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.controller.stock;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.stock.vo.StockTransferDetailsVo;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDetailsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.stock.StockTransferDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 调仓明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@RestController
+@RequestMapping("/stockTransferDetails")
+public class StockTransferDetailsController {
+
+    @Autowired
+    private StockTransferDetailsService stockTransferDetailsService;
+
+    /**
+     * 调仓明细分页
+     */
+    @PostMapping("/page")
+    public Page<StockTransferDetailsVo> page(@RequestBody StockTransferDetailsSelectDto dto) {
+        return stockTransferDetailsService.getPage(dto);
+    }
+
+    /**
+     * 调仓明细明细
+     */
+    @PostMapping("/detail")
+    public StockTransferDetailsVo detail(@RequestBody BaseSelectDto dto) {
+        return stockTransferDetailsService.detail(dto.getId());
+    }
+
+    /**
+     * 调仓明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody StockTransferDetailsDto stockTransferDetailsDto) {
+        stockTransferDetailsService.add(stockTransferDetailsDto);
+    }
+
+    /**
+     * 调仓明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody StockTransferDetailsDto stockTransferDetailsDto) {
+        stockTransferDetailsService.edit(stockTransferDetailsDto);
+    }
+
+    /**
+     * 调仓明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        stockTransferDetailsService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/dto/StockTransferDetailsDto.java

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

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/dto/StockTransferDetailsSelectDto.java

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

+ 25 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/dto/StockTransferDto.java

@@ -0,0 +1,25 @@
+package com.fjhx.victoriatourist.entity.stock.dto;
+
+import com.fjhx.victoriatourist.entity.stock.po.StockTransfer;
+import com.fjhx.victoriatourist.entity.stock.po.StockTransferDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 调仓记录新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class StockTransferDto extends StockTransfer {
+
+    /**
+     * 调仓明细
+     */
+    List<StockTransferDetails> stockTransferDetailsList;
+
+}

+ 34 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/dto/StockTransferSelectDto.java

@@ -0,0 +1,34 @@
+package com.fjhx.victoriatourist.entity.stock.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 调仓记录列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class StockTransferSelectDto extends BaseSelectDto {
+
+    /**
+     * 调出仓库id
+     */
+    private Long outWarehouseId;
+
+    /**
+     * 调入仓库id
+     */
+    private Long inWarehouseId;
+
+    /**
+     * 接受状态 0未接收 1已接收
+     */
+    private Integer inStatus;
+
+}

+ 57 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/po/StockTransfer.java

@@ -0,0 +1,57 @@
+package com.fjhx.victoriatourist.entity.stock.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("stock_transfer")
+public class StockTransfer extends BasePo {
+
+    /**
+     * 调仓单号
+     */
+    private String code;
+
+    /**
+     * 调出仓库id
+     */
+    private Long outWarehouseId;
+
+    /**
+     * 调入仓库id
+     */
+    private Long inWarehouseId;
+
+    /**
+     * 接收人
+     */
+    private Long inUserId;
+
+    /**
+     * 接收时间
+     */
+    private Date inTime;
+
+    /**
+     * 接受状态 0未接收 1已接收
+     */
+    private Integer inStatus;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 43 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/po/StockTransferDetails.java

@@ -0,0 +1,43 @@
+package com.fjhx.victoriatourist.entity.stock.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("stock_transfer_details")
+public class StockTransferDetails extends BasePo {
+
+    /**
+     * 调仓id
+     */
+    private Long stockTransferId;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 调出数量
+     */
+    private BigDecimal outQuantity;
+
+    /**
+     * 调入数量
+     */
+    private BigDecimal inQuantity;
+
+}

+ 30 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/vo/StockTransferDetailsVo.java

@@ -0,0 +1,30 @@
+package com.fjhx.victoriatourist.entity.stock.vo;
+
+import com.fjhx.victoriatourist.entity.stock.po.StockTransferDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 调仓明细列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class StockTransferDetailsVo extends StockTransferDetails {
+
+    /**
+     * 产品编码
+     */
+    private String productCode;
+    /**
+     * 产品名称
+     */
+    private String productName;
+    /**
+     * 产品规格
+     */
+    private String productSpec;
+
+}

+ 45 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/stock/vo/StockTransferVo.java

@@ -0,0 +1,45 @@
+package com.fjhx.victoriatourist.entity.stock.vo;
+
+import com.fjhx.victoriatourist.entity.stock.po.StockTransfer;
+import com.fjhx.victoriatourist.entity.stock.po.StockTransferDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 调仓记录列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-17
+ */
+@Getter
+@Setter
+public class StockTransferVo extends StockTransfer {
+
+    /**
+     * 调出仓库名称
+     */
+    private String outWarehouseName;
+
+    /**
+     * 调入仓库名称
+     */
+    private String inWarehouseName;
+
+    /**
+     * 调出人名字
+     */
+    private String outUserName;
+
+    /**
+     * 接收人名字
+     */
+    private String inUserName;
+
+    /**
+     * 调仓明细
+     */
+    List<StockTransferDetailsVo> stockTransferDetailsList;
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/stock/StockTransferDetailsMapper.java

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

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/stock/StockTransferMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.stock;
+
+import com.fjhx.victoriatourist.entity.stock.po.StockTransfer;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.stock.vo.StockTransferVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 调仓记录 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+public interface StockTransferMapper extends BaseMapper<StockTransfer> {
+
+    /**
+     * 调仓记录分页
+     */
+    Page<StockTransferVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<StockTransfer> wrapper);
+
+}

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

@@ -2,9 +2,12 @@ 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.entity.company.po.CompanyInfo;
+import com.fjhx.kd100.entity.logistics.po.LogisticsInfo;
+import com.fjhx.kd100.event.Kd100CallbackEvent;
 import com.fjhx.kd100.service.company.CompanyInfoService;
 import com.fjhx.kd100.util.KD100Result;
 import com.fjhx.kd100.util.KD100Util;
@@ -22,6 +25,7 @@ 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.context.event.EventListener;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -87,6 +91,13 @@ public class LogisticsInfosServiceImpl extends ServiceImpl<LogisticsInfosMapper,
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(LogisticsInfosDto logisticsInfosDto) {
+        long logisticsInfosId = IdWorker.getId();
+        logisticsInfosDto.setId(logisticsInfosId);
+        if (logisticsInfosDto.getIsKd100() == 1) {
+            //发起快递100订阅
+            Integer state = KD100Util.monitor(logisticsInfosDto.getLogisticsCompanyCode(), logisticsInfosDto.getCode(), logisticsInfosId, 1, LogisticsInfos.class).getState();
+            logisticsInfosDto.setLogisticsStatus(state);
+        }
         this.save(logisticsInfosDto);
         LogisticsDetails logisticsDetails = new LogisticsDetails();
         logisticsDetails.setLogisticsInfoId(logisticsInfosDto.getId());
@@ -94,6 +105,17 @@ public class LogisticsInfosServiceImpl extends ServiceImpl<LogisticsInfosMapper,
         logisticsDetailsService.save(logisticsDetails);
     }
 
+    @EventListener
+    public void kd100EventListener(Kd100CallbackEvent event) {
+        LogisticsInfo logisticsInfo = event.getLogisticsInfo();
+        //监听物流状态变化
+        if (KD100Util.getTableName(LogisticsInfos.class).equals(logisticsInfo.getTableName())) {
+            LogisticsInfos byId = getById(logisticsInfo.getBusinessId());
+            byId.setLogisticsStatus(logisticsInfo.getState());
+            updateById(byId);
+        }
+    }
+
     @Override
     public void edit(LogisticsInfosDto logisticsInfosDto) {
         this.updateById(logisticsInfosDto);

+ 46 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/StockTransferDetailsService.java

@@ -0,0 +1,46 @@
+package com.fjhx.victoriatourist.service.stock;
+
+import com.fjhx.victoriatourist.entity.stock.po.StockTransferDetails;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.stock.vo.StockTransferDetailsVo;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDetailsDto;
+
+
+/**
+ * <p>
+ * 调仓明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+public interface StockTransferDetailsService extends BaseService<StockTransferDetails> {
+
+    /**
+     * 调仓明细分页
+     */
+    Page<StockTransferDetailsVo> getPage(StockTransferDetailsSelectDto dto);
+
+    /**
+     * 调仓明细明细
+     */
+    StockTransferDetailsVo detail(Long id);
+
+    /**
+     * 调仓明细新增
+     */
+    void add(StockTransferDetailsDto stockTransferDetailsDto);
+
+    /**
+     * 调仓明细编辑
+     */
+    void edit(StockTransferDetailsDto stockTransferDetailsDto);
+
+    /**
+     * 调仓明细删除
+     */
+    void delete(Long id);
+
+}

+ 51 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/StockTransferService.java

@@ -0,0 +1,51 @@
+package com.fjhx.victoriatourist.service.stock;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDto;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferSelectDto;
+import com.fjhx.victoriatourist.entity.stock.po.StockTransfer;
+import com.fjhx.victoriatourist.entity.stock.vo.StockTransferVo;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 调仓记录 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-17
+ */
+public interface StockTransferService extends BaseService<StockTransfer> {
+
+    /**
+     * 调仓记录分页
+     */
+    Page<StockTransferVo> getPage(StockTransferSelectDto dto);
+
+    /**
+     * 调仓记录明细
+     */
+    StockTransferVo detail(Long id);
+
+    /**
+     * 调仓记录新增
+     */
+    void add(StockTransferDto stockTransferDto);
+
+    /**
+     * 调仓记录编辑
+     */
+    void edit(StockTransferDto stockTransferDto);
+
+    /**
+     * 调仓记录删除
+     */
+    void delete(Long id);
+
+    /**
+     * 调仓接收
+     */
+    void receive(StockTransferDto stockTransferDto);
+
+}

+ 57 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/impl/StockTransferDetailsServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.victoriatourist.service.stock.impl;
+
+import com.fjhx.victoriatourist.entity.stock.po.StockTransferDetails;
+import com.fjhx.victoriatourist.mapper.stock.StockTransferDetailsMapper;
+import com.fjhx.victoriatourist.service.stock.StockTransferDetailsService;
+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.stock.vo.StockTransferDetailsVo;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDetailsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDetailsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 调仓明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-17
+ */
+@Service
+public class StockTransferDetailsServiceImpl extends ServiceImpl<StockTransferDetailsMapper, StockTransferDetails> implements StockTransferDetailsService {
+
+    @Override
+    public Page<StockTransferDetailsVo> getPage(StockTransferDetailsSelectDto dto) {
+        IWrapper<StockTransferDetails> wrapper = getWrapper();
+        wrapper.orderByDesc("std", StockTransferDetails::getId);
+        Page<StockTransferDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public StockTransferDetailsVo detail(Long id) {
+        StockTransferDetails StockTransferDetails = this.getById(id);
+        StockTransferDetailsVo result = BeanUtil.toBean(StockTransferDetails, StockTransferDetailsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(StockTransferDetailsDto stockTransferDetailsDto) {
+        this.save(stockTransferDetailsDto);
+    }
+
+    @Override
+    public void edit(StockTransferDetailsDto stockTransferDetailsDto) {
+        this.updateById(stockTransferDetailsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 152 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/impl/StockTransferServiceImpl.java

@@ -0,0 +1,152 @@
+package com.fjhx.victoriatourist.service.stock.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.item.service.product.ProductInfoService;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDto;
+import com.fjhx.victoriatourist.entity.stock.dto.StockTransferSelectDto;
+import com.fjhx.victoriatourist.entity.stock.po.StockTransfer;
+import com.fjhx.victoriatourist.entity.stock.po.StockTransferDetails;
+import com.fjhx.victoriatourist.entity.stock.vo.StockTransferDetailsVo;
+import com.fjhx.victoriatourist.entity.stock.vo.StockTransferVo;
+import com.fjhx.victoriatourist.mapper.stock.StockTransferMapper;
+import com.fjhx.victoriatourist.service.stock.StockTransferDetailsService;
+import com.fjhx.victoriatourist.service.stock.StockTransferService;
+import com.fjhx.victoriatourist.utils.CodeEnum;
+import com.fjhx.wms.entity.stock.po.Stock;
+import com.fjhx.wms.entity.stock.po.StockJournal;
+import com.fjhx.wms.entity.stock.po.StockJournalDetails;
+import com.fjhx.wms.service.stock.StockJournalDetailsService;
+import com.fjhx.wms.service.stock.StockJournalService;
+import com.fjhx.wms.service.stock.StockService;
+import com.fjhx.wms.service.warehouse.WarehouseService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.system.utils.UserUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * <p>
+ * 调仓记录 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-17
+ */
+@Service
+public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, StockTransfer> implements StockTransferService {
+
+    @Autowired
+    WarehouseService warehouseService;
+    @Autowired
+    StockTransferDetailsService stockTransferDetailsService;
+    @Autowired
+    ProductInfoService productInfoService;
+    @Autowired
+    StockService stockService;
+    @Autowired
+    StockJournalService stockJournalService;
+    @Autowired
+    StockJournalDetailsService stockJournalDetailsService;
+
+    @Override
+    public Page<StockTransferVo> getPage(StockTransferSelectDto dto) {
+        IWrapper<StockTransfer> wrapper = getWrapper();
+        wrapper.eq(StockTransfer::getInWarehouseId,dto.getInWarehouseId());
+        wrapper.eq(StockTransfer::getOutWarehouseId,dto.getOutWarehouseId());
+        wrapper.eq(StockTransfer::getInStatus,dto.getInStatus());
+        wrapper.like(StockTransfer::getCode,dto.getKeyword());
+        wrapper.orderByDesc("st", StockTransfer::getId);
+        Page<StockTransferVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<StockTransferVo> records = page.getRecords();
+        //赋值仓库名称
+        warehouseService.attributeAssign(records, StockTransferVo::getInWarehouseId, (item, warehouse) -> {
+            item.setInWarehouseName(warehouse.getName());
+        });
+        warehouseService.attributeAssign(records, StockTransferVo::getOutWarehouseId, (item, warehouse) -> {
+            item.setOutWarehouseName(warehouse.getName());
+        });
+        //赋值调出人与接收人名称
+        UserUtil.assignmentNickName(records, StockTransferVo::getCreateUser, StockTransferVo::setOutUserName);
+        UserUtil.assignmentNickName(records, StockTransferVo::getInUserId, StockTransferVo::setInUserName);
+        return page;
+    }
+
+    @Override
+    public StockTransferVo detail(Long id) {
+        StockTransfer StockTransfer = this.getById(id);
+        StockTransferVo result = BeanUtil.toBean(StockTransfer, StockTransferVo.class);
+        List<StockTransferDetails> list = stockTransferDetailsService.list(q -> q.eq(StockTransferDetails::getStockTransferId, id));
+        List<StockTransferDetailsVo> stockTransferDetailsVos = BeanUtil.copyToList(list, StockTransferDetailsVo.class);
+        //赋值明细产品信息
+        productInfoService.attributeAssign(stockTransferDetailsVos, StockTransferDetailsVo::getProductId, (item, productInfo) -> {
+            item.setProductCode(productInfo.getCode());
+            item.setProductName(productInfo.getName());
+            item.setProductSpec(productInfo.getSpec());
+        });
+        result.setStockTransferDetailsList(stockTransferDetailsVos);
+        return result;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(StockTransferDto stockTransferDto) {
+        stockTransferDto.setCode(CodeEnum.STOCK_TRANSFER.getCode());
+        stockTransferDto.setInStatus(0);
+        this.save(stockTransferDto);
+        List<StockTransferDetails> stockTransferDetailsList = stockTransferDto.getStockTransferDetailsList();
+        for (StockTransferDetails stockTransferDetails : stockTransferDetailsList) {
+            stockTransferDetails.setStockTransferId(stockTransferDto.getId());
+        }
+        stockTransferDetailsService.saveBatch(stockTransferDetailsList);
+    }
+
+    @Override
+    public void edit(StockTransferDto stockTransferDto) {
+        this.updateById(stockTransferDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void receive(StockTransferDto stockTransferDto) {
+        StockTransfer stockTransfer = getById(stockTransferDto);
+        stockTransfer.setInStatus(1);//修改为已接收
+        updateById(stockTransfer);
+        //明细
+        List<Stock> stockList = new ArrayList<>();
+        List<StockTransferDetails> stockTransferDetailsList = stockTransferDto.getStockTransferDetailsList();
+        stockTransferDetailsService.updateBatchById(stockTransferDetailsList);
+        for (StockTransferDetails stockTransferDetails : stockTransferDetailsList) {
+            Stock stock = new Stock();
+            stock.setProductId(stockTransferDetails.getProductId());
+            stock.setQuantity(stockTransferDetails.getInQuantity());
+        }
+        //创建出入库记录
+        StockJournal stockJournal = new StockJournal();
+        stockJournal.setType(3);
+        stockJournal.setWarehouseId(stockTransfer.getOutWarehouseId());
+        stockJournal.setToWarehouseId(stockTransfer.getInWarehouseId());
+        stockJournal.setBusinessId(stockTransfer.getId());
+        //保存出入库记录
+        stockJournalService.save(stockJournal);
+        //出库
+        List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), 2, stockList, stockTransfer.getOutWarehouseId());
+        //入库
+        stockService.ModifyInventory(stockJournal.getId(), 1, stockList, stockTransfer.getInWarehouseId());
+        //保存出入库记录明细
+        stockJournalDetailsService.saveBatch(stockJournalDetailsList);
+    }
+
+}

+ 99 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/utils/CodeEnum.java

@@ -0,0 +1,99 @@
+package com.fjhx.victoriatourist.utils;
+
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.text.CharSequenceUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fjhx.victoriatourist.service.stock.StockTransferService;
+import com.obs.services.internal.ServiceException;
+import lombok.Getter;
+
+import java.util.Date;
+import java.util.Map;
+
+@Getter
+public enum CodeEnum {
+
+    // 调仓
+    STOCK_TRANSFER("SM", "yyMM-", "code", 3, StockTransferService.class),
+    ;
+
+    CodeEnum(String prefix, String dateFormat, String codeFieldName, Integer length, Class<? extends IService<?>> serviceCls) {
+        this.prefix = prefix;
+        this.dateFormat = dateFormat;
+        this.length = length;
+        this.codeFieldName = codeFieldName;
+        this.service = SpringUtil.getBean(serviceCls);
+    }
+
+    // 编码前缀
+    private final String prefix;
+    // 编码加日期规则
+    private final String dateFormat;
+    // 长度
+    private final Integer length;
+    // 编码字段名
+    private final String codeFieldName;
+    // service
+    private final IService<?> service;
+
+    /**
+     * 获取键值对
+     */
+    public String getCode() {
+        String itemPrefix;
+
+        if (ObjectUtil.isNotEmpty(dateFormat)) {
+            Date date = new Date();
+            String format = DateUtil.format(date, dateFormat);
+            itemPrefix = prefix + format;
+        } else {
+            itemPrefix = prefix;
+        }
+
+        Object obj = service.query()
+                .likeRight(codeFieldName, itemPrefix)
+                .orderByDesc(codeFieldName)
+                .last("limit 1")
+                .one();
+
+        if (obj == null) {
+            return itemPrefix + autoGenericCode(length, 0);
+        }
+
+        Map<String, Object> map = Convert.toMap(String.class, Object.class, obj);
+
+        String code = Convert.toStr(map.get(CharSequenceUtil.toCamelCase(codeFieldName)));
+        Integer codeNum = Convert.toInt(code.substring(itemPrefix.length()));
+        if (ObjectUtil.isEmpty(codeNum)) {
+            throw new ServiceException("自定义编码与系统编码生成规则冲突,暂时无法生成编码,请联系管理员");
+        }
+
+        return itemPrefix + autoGenericCode(length, codeNum);
+    }
+
+    /**
+     * 获取键值对
+     */
+    public String getCode(String code) {
+        if (ObjectUtil.isNotEmpty(code)) {
+            Long count = service.query().eq(codeFieldName, code).count();
+            if (count != 0) {
+                throw new ServiceException("编码已存在");
+            }
+            return code;
+        } else {
+            return getCode();
+        }
+    }
+
+    /**
+     * 不够位数的在前面补0,保留num的长度位数字
+     */
+    private static String autoGenericCode(int length, Integer codeNum) {
+        return String.format("%0" + length + "d", codeNum + 1);
+    }
+
+}

+ 19 - 0
hx-victoriatourist/src/main/resources/mapper/stock/StockTransferDetailsMapper.xml

@@ -0,0 +1,19 @@
+<?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.stock.StockTransferDetailsMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.stock.vo.StockTransferDetailsVo">
+        select
+            std.id,
+            std.stock_transfer_id,
+            std.product_id,
+            std.out_quantity,
+            std.in_quantity,
+            std.create_user,
+            std.create_time,
+            std.update_user,
+            std.update_time
+        from stock_transfer_details std
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 22 - 0
hx-victoriatourist/src/main/resources/mapper/stock/StockTransferMapper.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.stock.StockTransferMapper">
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.stock.vo.StockTransferVo">
+        select
+            st.id,
+            st.code,
+            st.out_warehouse_id,
+            st.in_warehouse_id,
+            st.in_user_id,
+            st.in_time,
+            st.in_status,
+            st.remark,
+            st.create_user,
+            st.create_time,
+            st.update_user,
+            st.update_time
+        from stock_transfer st
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 9 - 2
hx-wms/src/main/java/com/fjhx/wms/entity/stock/dto/StockWaitSelectDto.java

@@ -7,14 +7,21 @@ import lombok.Setter;
 /**
  * 待出入库列表查询入参实体
  *
- * @author 
+ * @author
  * @since 2023-03-22
  */
 @Getter
 @Setter
 public class StockWaitSelectDto extends BaseSelectDto {
 
-    /**数据类型 1入库 2出库*/
+    /**
+     * 数据类型 1入库 2出库
+     */
     private String type;
 
+    /**
+     * 入库状态过滤
+     */
+    private Integer status;
+
 }

+ 17 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -91,6 +91,7 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         //过滤入库/出库
         wrapper.eq(StockWait::getType, dto.getType());
         wrapper.eq(StockWait::getBusinessCode, dto.getKeyword());
+        wrapper.eq(StockWait::getStatus,dto.getStatus());
         Page<StockWaitVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
 
         List<StockWaitVo> records = page.getRecords();
@@ -197,6 +198,9 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         List<Long> dids = stockWaitDetailsList.stream().map(StockWaitDetails::getId).collect(Collectors.toList());
         Map<Long, StockWaitDetails> stockWaitDetailsMap = stockWaitDetailsList.stream().collect(Collectors.toMap(StockWaitDetails::getId, Function.identity()));
         List<StockWaitDetails> stockWaitDetails = stockWaitDetailsService.listByIds(dids);
+
+        //已经完全入库数量统计
+        Integer statusFlag = 0;
         for (StockWaitDetails stockWaitDetail : stockWaitDetails) {
             StockWaitDetails temp = stockWaitDetailsMap.get(stockWaitDetail.getId());
             //更新已入库数量
@@ -206,6 +210,11 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
                 throw new ServiceException("入库数量+已入库数量不能大于待采购数量");
             }
 
+            //计算已经完全入库的数量
+            if (stockWaitDetail.getReceiptQuantity().compareTo(stockWaitDetail.getQuantity()) == 0) {
+                statusFlag++;
+            }
+
             //操作库存
             Stock stock = new Stock();
             stock.setQuantity(stockWaitDto.getQuantity());
@@ -213,6 +222,14 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
             stockList.add(stock);
         }
         stockWaitDetailsService.updateBatchById(stockWaitDetails);
+        //修改待入库状态
+        StockWait stockWait = getById(stockWaitDto.getId());
+        if(statusFlag==stockWaitDetails.size()){
+            stockWait.setStatus(2);//入库完成
+        }else{
+            stockWait.setStatus(1);//部分入库
+        }
+        updateById(stockWait);
 
         //创建出入库记录
         StockJournal stockJournal = new StockJournal();