Przeglądaj źródła

入库:采购入库、手动入库

qt5107 2 lat temu
rodzic
commit
89bd8817a0

+ 1 - 1
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/logistics/LogisticsInfo.java

@@ -85,7 +85,7 @@ public class LogisticsInfo extends BaseEntity {
      * 采购单号
      */
     @TableField(exist = false)
-    private Long purchaseCode;
+    private String purchaseCode;
 
     /**
      * 供应商ID

+ 14 - 2
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/stock/StockJournal.java

@@ -85,10 +85,10 @@ public class StockJournal extends BaseEntity {
     private String createName;
 
     /**
-     * 物品类型
+     * 物品编码
      */
     @TableField(exist = false)
-    private String goodsType;
+    private String goodsCode;
 
     /**
      * 物品名称
@@ -97,12 +97,24 @@ public class StockJournal extends BaseEntity {
     private String goodsName;
 
     /**
+     * 物品类型
+     */
+    @TableField(exist = false)
+    private Integer goodsType;
+
+    /**
      * 物品单位
      */
     @TableField(exist = false)
     private String goodsUnit;
 
     /**
+     * 物品规格
+     */
+    @TableField(exist = false)
+    private String goodsSpecs;
+
+    /**
      * 物流单号
      */
     @TableField(exist = false)

+ 24 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/ManualInStockVo.java

@@ -0,0 +1,24 @@
+package com.fjhx.params.stock;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ManualInStockVo {
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 产品列表
+     */
+    private List<ChangeProduct> changeProductList;
+}

+ 19 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/stock/StockChangeVo.java

@@ -1,6 +1,7 @@
 package com.fjhx.params.stock;
 
 import com.fjhx.entity.stock.ManualVo;
+import com.fjhx.enums.stock.InTypeEnum;
 import com.fjhx.enums.stock.OutTypeEnum;
 import lombok.Data;
 
@@ -21,11 +22,29 @@ public class StockChangeVo {
         changeDetailsList = manualVo.getChangeProductList();
     }
 
+    /**
+     * 采购入库 初始
+     *
+     * @param list
+     */
     public StockChangeVo(List<PurchaseInStockVo> list) {
+        typeEnum = InTypeEnum.PURCHASE;
         changeDetailsList = list;
     }
 
     /**
+     * 手动入库 初始
+     *
+     * @param entity
+     */
+    public StockChangeVo(ManualInStockVo entity) {
+        defaultWarehouseId = entity.getWarehouseId();
+        defaultRemarks = entity.getRemarks();
+        typeEnum = InTypeEnum.MANUAL;
+        changeDetailsList = entity.getChangeProductList();
+    }
+
+    /**
      * 默认业务ID
      * 未指定业务ID时,会使用此业务ID
      */

+ 24 - 3
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/ManualInStockController.java

@@ -1,7 +1,13 @@
 package com.fjhx.controller.stock;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
+import com.fjhx.entity.logistics.LogisticsInfo;
+import com.fjhx.entity.stock.StockJournal;
 import com.fjhx.enums.stock.InTypeEnum;
+import com.fjhx.params.stock.ManualInStockVo;
 import com.fjhx.params.stock.StockChangeVo;
+import com.fjhx.service.stock.StockJournalService;
 import com.fjhx.service.stock.StockService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,12 +24,27 @@ import org.springframework.web.bind.annotation.RestController;
 public class ManualInStockController {
 
     @Autowired
+    private StockJournalService stockJournalService;
+
+    @Autowired
     private StockService stockService;
 
+    /**
+     * 列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    @PostMapping("/page")
+    public R page(@RequestBody Condition condition) {
+        Page<StockJournal> result = stockJournalService.getManualInStockPage(condition);
+        return R.success(result);
+    }
+
     @PostMapping("/add")
-    public R add(@RequestBody StockChangeVo stockVo) {
-        stockVo.setTypeEnum(InTypeEnum.MANUAL);
-        stockService.changeQuantity(stockVo);
+    public R add(@RequestBody ManualInStockVo entity) {
+        StockChangeVo vo = new StockChangeVo(entity);
+        stockService.changeQuantity(vo);
         return R.success();
     }
 

+ 1 - 2
hx-service/victoriatourist/src/main/java/com/fjhx/controller/stock/PurchaseInStockController.java

@@ -43,7 +43,7 @@ public class PurchaseInStockController {
      */
     @PostMapping("/page")
     public R page(@RequestBody Condition condition) {
-        Page<LogisticsInfo> result = logisticsInfoService.getPage(condition);
+        Page<LogisticsInfo> result = logisticsInfoService.getPurchaseInStockPage(condition);
         return R.success(result);
     }
 
@@ -68,7 +68,6 @@ public class PurchaseInStockController {
     @PostMapping("/add")
     public R add(@RequestBody List<PurchaseInStockVo> list) {
         StockChangeVo vo = new StockChangeVo(list);
-        vo.setTypeEnum(InTypeEnum.PURCHASE);
         stockService.changeQuantity(vo);
         return R.success();
     }

+ 8 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsInfoMapper.java

@@ -16,5 +16,12 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface LogisticsInfoMapper extends BaseMapper<LogisticsInfo> {
 
-    Page<LogisticsInfo> getPage(@Param("page") Page<LogisticsInfo> page, @Param("ew") IWrapper<LogisticsInfo> wrapper);
+    /**
+     * 采购入库列表
+     *
+     * @param page    分页信息
+     * @param wrapper 查询条件
+     * @return
+     */
+    Page<LogisticsInfo> getPurchaseInStockPage(@Param("page") Page<LogisticsInfo> page, @Param("ew") IWrapper<LogisticsInfo> wrapper);
 }

+ 2 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/logistics/LogisticsInfoMapper.xml

@@ -2,7 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.logistics.LogisticsInfoMapper">
 
-    <select id="getPage" resultType="com.fjhx.entity.logistics.LogisticsInfo">
+    <!-- 采购入库列表 -->
+    <select id="getPurchaseInStockPage" resultType="com.fjhx.entity.logistics.LogisticsInfo">
         SELECT
             t1.id,
             t1.business_id,

+ 9 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.java

@@ -22,4 +22,13 @@ public interface StockJournalMapper extends BaseMapper<StockJournal> {
 
     Page<Map<String, Object>> getManualOutPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
 
+    /**
+     * 手动入库列表
+     *
+     * @param page    分页信息
+     * @param wrapper 查询条件
+     * @return
+     */
+    Page<StockJournal> getManualInStockPage(@Param("page") Page<StockJournal> page, @Param("ew") IWrapper<StockJournal> wrapper);
+
 }

+ 28 - 5
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/stock/StockJournalMapper.xml

@@ -20,11 +20,12 @@
             t2.`unit` goodsUnit,
             t3.logistics_info_code,
             t4.`name` warehouseName
-        FROM stock_journal t1
-                 LEFT JOIN product_info t2 ON t1.goods_id = t2.id
-                 LEFT JOIN logistics_details t3 ON t1.business_id = t3.id
-                 LEFT JOIN warehouse t4 on t1.warehouse_id = t4.id
-            ${ew.customSqlSegment}
+        FROM
+            stock_journal t1
+            LEFT JOIN product_info t2 ON t1.goods_id = t2.id
+            LEFT JOIN logistics_details t3 ON t1.business_id = t3.id
+            LEFT JOIN warehouse t4 on t1.warehouse_id = t4.id
+        ${ew.customSqlSegment}
     </select>
 
     <select id="getManualOutPage" resultType="java.util.Map">
@@ -42,4 +43,26 @@
             ${ew.customSqlSegment}
     </select>
 
+    <!-- 手动入库列表 -->
+    <select id="getManualInStockPage" resultType="com.fjhx.entity.stock.StockJournal">
+        SELECT
+            t1.id,
+            t1.`code`,
+            t1.change_quantity,
+            t1.create_user,
+            t1.create_time,
+            t1.goods_id,
+            t2.`code` goods_code,
+            t2.`name` goods_name,
+            t2.type goods_type,
+            t2.specs goods_specs,
+            t2.unit goods_unit,
+            t1.warehouse_id,
+            t3.`name` warehouse_name
+        FROM
+            stock_journal t1
+            LEFT JOIN product_info t2 ON t1.goods_id = t2.id
+            LEFT JOIN warehouse t3 ON t1.warehouse_id = t3.id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 8 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/logistics/LogisticsInfoService.java

@@ -27,6 +27,14 @@ public interface LogisticsInfoService extends BaseService<LogisticsInfo> {
     void delete(LogisticsInfoVo logisticsInfoVo);
 
     /**
+     * 采购入库列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    Page<LogisticsInfo> getPurchaseInStockPage(Map<String, Object> condition);
+
+    /**
      * 根据采购ID查询
      *
      * @param purchaseIds 采购ID集合

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

@@ -47,6 +47,20 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
     public Page<LogisticsInfo> getPage(Map<String, Object> condition) {
 
         IWrapper<LogisticsInfo> wrapper = IWrapper.getWrapper(condition);
+
+        return page(condition, wrapper);
+    }
+
+    /**
+     * 采购入库列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    @Override
+    public Page<LogisticsInfo> getPurchaseInStockPage(Map<String, Object> condition) {
+
+        IWrapper<LogisticsInfo> wrapper = IWrapper.getWrapper(condition);
         wrapper.eq("t1", LogisticsInfo::getStatus, LogisticsConstant.Status.STATUS_1)
                 .lt("t1", LogisticsInfo::getInStockStatus, LogisticsConstant.InStockStatus.STATUS_30)
                 .eq("t1", LogisticsInfo::getBusinessType, 1)
@@ -56,7 +70,7 @@ public class LogisticsInfoServiceImpl extends ServiceImpl<LogisticsInfoMapper, L
                 .and(Func.isNotEmpty(condition.get("keyword")), o -> o.apply("instr(t1.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t2.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t3.`name`, '" + condition.get("keyword") + "') > 0"))
                 .orderByDesc("t1", ApplyPurchase::getId);
 
-        Page<LogisticsInfo> page = baseMapper.getPage(createPage(condition), wrapper);
+        Page<LogisticsInfo> page = baseMapper.getPurchaseInStockPage(createPage(condition), wrapper);
         if (Func.isNotEmpty(page.getRecords())) {
             Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(page.getRecords(), LogisticsInfo::getCreateUser);
             for (LogisticsInfo entity : page.getRecords()) {

+ 8 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/StockJournalService.java

@@ -32,6 +32,13 @@ public interface StockJournalService extends BaseService<StockJournal> {
     /**
      * 获取手动出库分页
      */
-    Page<Map<String,Object>> getManualOutPage(Condition condition);
+    Page<Map<String, Object>> getManualOutPage(Condition condition);
 
+    /**
+     * 手动入库列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    Page<StockJournal> getManualInStockPage(Condition condition);
 }

+ 31 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/stock/impl/StockJournalServiceImpl.java

@@ -185,4 +185,35 @@ public class StockJournalServiceImpl extends ServiceImpl<StockJournalMapper, Sto
 
         return manualOutPage;
     }
+
+    /**
+     * 手动入库列表
+     *
+     * @param condition 查询条件
+     * @return
+     */
+    @Override
+    public Page<StockJournal> getManualInStockPage(Condition condition) {
+        IWrapper<StockJournal> wrapper = IWrapper.getWrapper(condition);
+        wrapper.eq("t1", StockJournal::getType, StockJournalTypeConstant.IN)
+                .eq("t1", StockJournal::getDetailsType, InTypeEnum.MANUAL.getKey())
+                .eq("t1", StockJournal::getWarehouseId)
+                .ge("t1", StockJournal::getCreateTime, condition.get("startTime"))
+                .le("t1", StockJournal::getCreateTime, condition.get("endTime"))
+                .and(Func.isNotEmpty(condition.get("keyword")), o -> o.apply("instr(t2.`code`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t2.`name`, '" + condition.get("keyword") + "') > 0").or().apply("instr(t3.`name`, '" + condition.get("keyword") + "') > 0"))
+                .orderByDesc("t1", StockJournal::getId);
+
+        Page<StockJournal> page = baseMapper.getManualInStockPage(createPage(condition), wrapper);
+        if (Func.isNotEmpty(page.getRecords())) {
+            //操作人名称map
+            Map<Long, String> userNameMap = UserClientUtil.getUserNameMap(page.getRecords(), StockJournal::getCreateUser);
+
+            for (StockJournal record : page.getRecords()) {
+                if (Func.isNotEmpty(userNameMap) && Func.isNotEmpty(userNameMap.get(record.getCreateUser()))) {
+                    record.setCreateName(userNameMap.get(record.getCreateUser()));
+                }
+            }
+        }
+        return page;
+    }
 }