Browse Source

盘点表设计、分页搭建

zhangxin 1 year ago
parent
commit
2352964ce8

+ 22 - 0
base/sql/bsl_sql/bsl_ddl_v1.0.0.sql

@@ -1028,3 +1028,25 @@ CREATE TABLE `sys_config`  (
   `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`config_id`) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数配置表' ROW_FORMAT = Dynamic;
+
+DROP TABLE IF EXISTS `stock_take_record`;
+CREATE TABLE `stock_take_record`  (
+  `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'id',
+  `stock_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '盘点单号',
+  `stock_location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '盘点库位',
+  `stock_qty` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '盘点数量',
+  `record_qty` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '记录数量',
+  `stock_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '盘点类型 0:正常 1:盘亏 2:盘盈',
+  `sku_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物料编码',
+  `inventory_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '存货编码',
+  `sku_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物料名称',
+  `sku_packaging_specs` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '包装规格',
+  `sku_uom` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '计量单位',
+  `product_lot_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '产品批号',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '盘点记录' ROW_FORMAT = Dynamic;

+ 61 - 0
ruoyi-admin/src/main/java/com/ruoyi/bionutrition/stock/StockTakeRecordController.java

@@ -0,0 +1,61 @@
+package com.ruoyi.bionutrition.stock;
+
+import com.ruoyi.ams.bionutrition.stock.domain.StockTakeRecord;
+import com.ruoyi.ams.bionutrition.stock.dto.StockTakeRecordDTO;
+import com.ruoyi.ams.bionutrition.stock.service.StockTakeRecordService;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.framework.service.bean.PageData;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.Map;
+
+/**
+ * 盘点
+ *
+ * @author zhangx
+ * @date 2024-01-22
+ */
+@RestController
+@RequestMapping("/stock")
+public class StockTakeRecordController extends BaseController {
+
+    @Autowired
+    private StockTakeRecordService stockTakeRecordService;
+
+    @GetMapping("page")
+    @ApiOperation("分页")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = Constants.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"),
+            @ApiImplicitParam(name = Constants.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"),
+            @ApiImplicitParam(name = Constants.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = Constants.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "stockNo", value = "盘点单号", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "stockLocation", value = "盘点库位", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "skuCode", value = "物料编码", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "skuName", value = "物料名称", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "inventoryCode", value = "存货编码", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "productLotNumber", value = "产品批号", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "stockType", value = "盘点类型", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "beginTime", value = "起始时间", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String")
+    })
+    public AjaxResult page(@ApiIgnore @RequestParam Map<String, Object> params){
+        PageData<StockTakeRecordDTO> page = stockTakeRecordService.page(params);
+        return AjaxResult.success(page);
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("信息")
+    public AjaxResult get(@PathVariable("id") String id){
+        StockTakeRecord data = stockTakeRecordService.selectById(id);
+        return AjaxResult.success(data);
+    }
+
+}

+ 8 - 1
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -1,10 +1,13 @@
 package com.ruoyi.common.utils;
 
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateUtil;
+import org.apache.commons.lang3.time.DateFormatUtils;
+
 import java.lang.management.ManagementFactory;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import org.apache.commons.lang3.time.DateFormatUtils;
 
 /**
  * 时间工具类
@@ -152,4 +155,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         // long sec = diff % nd % nh % nm / ns;
         return day + "天" + hour + "小时" + min + "分钟";
     }
+
+    public static Date offsetYear(Date date, int offset){
+        return DateUtil.offset(date, DateField.YEAR, offset);
+    }
 }

+ 0 - 7
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/plc/service/impl/ProcessServiceImpl.java

@@ -1,23 +1,16 @@
 package com.ruoyi.ams.bionutrition.plc.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.extra.spring.SpringUtil;
-import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.ruoyi.ams.bionutrition.plc.enums.PLCConnectNameEnum;
-import com.ruoyi.ams.bionutrition.plc.enums.PLCEnum;
-import com.ruoyi.ams.bionutrition.plc.init.PlcConnectServiceRunner;
 import com.ruoyi.ams.bionutrition.plc.service.ProcessService;
 import com.ruoyi.ams.business.IBusinessService;
 import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
 import com.ruoyi.ams.config.domain.dto.AgvCallItemDTO;
-import com.ruoyi.ams.inv.service.IInvLotAttService;
 import com.ruoyi.ams.inv.service.IInvLotLocIdService;
 import com.ruoyi.ams.task.domain.WcsTask;
 import com.ruoyi.ams.task.mapper.WcsTaskMapper;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.service.IBaseLocationInfoService;
-import com.ruoyi.common.core.domain.AjaxResult;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 60 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/stock/domain/StockTakeRecord.java

@@ -0,0 +1,60 @@
+package com.ruoyi.ams.bionutrition.stock.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 盘点
+ *
+ * @author zhangx
+ * @date 2024-01-22
+ */
+@Data
+public class StockTakeRecord extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 盘点单号 */
+    private String stockNo;
+
+    /** 盘点库位 */
+    private String stockLocation;
+
+    /** 盘点数量 */
+    private String stockQty;
+
+    /** 记录数量 */
+    private String recordQty;
+
+    /** 盘点类型 0: 正常 1:盘亏 2:盘盈*/
+    private String stockType;
+
+    /** 物料编码 */
+    private String skuCode;
+
+    /** 存货编码 */
+    private String inventoryCode;
+
+    /** 物料名称 */
+    private String skuName;
+
+    /**
+     * 包装规格
+     */
+    private String skuPackagingSpecs;
+
+    /**
+     * 计量单位
+     */
+    private String skuUom;
+
+    /** 产品批号 */
+    private String productLotNumber;
+
+}

+ 62 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/stock/dto/StockTakeRecordDTO.java

@@ -0,0 +1,62 @@
+package com.ruoyi.ams.bionutrition.stock.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 盘点
+ *
+ * @author zhangx
+ * @date 2024-01-22
+ */
+@Data
+public class StockTakeRecordDTO implements Serializable {
+
+    private static final long serialVersionUID = -3052302494611264008L;
+
+    /** id */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+
+    /** 盘点单号 */
+    private String stockNo;
+
+    /** 盘点库位 */
+    private String stockLocation;
+
+    /** 盘点数量 */
+    private String stockQty;
+
+    /** 记录数量 */
+    private String recordQty;
+
+    /** 盘点类型 0: 正常 1:盘亏 2:盘盈*/
+    private String stockType;
+
+    /** 物料编码 */
+    private String skuCode;
+
+    /** 存货编码 */
+    private String inventoryCode;
+
+    /** 物料名称 */
+    private String skuName;
+
+    /**
+     * 包装规格
+     */
+    private String skuPackagingSpecs;
+
+    /**
+     * 计量单位
+     */
+    private String skuUom;
+
+    /** 产品批号 */
+    private String productLotNumber;
+
+    private String remark;
+}

+ 17 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/stock/mapper/StockTakeRecordMapper.java

@@ -0,0 +1,17 @@
+package com.ruoyi.ams.bionutrition.stock.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.ams.bionutrition.stock.domain.StockTakeRecord;
+
+/**
+ * 盘点
+ *
+ * @author zhangx
+ * @date 2024-01-22
+ */
+public interface StockTakeRecordMapper extends BaseMapper<StockTakeRecord>
+{
+
+
+}

+ 25 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/stock/service/StockTakeRecordService.java

@@ -0,0 +1,25 @@
+package com.ruoyi.ams.bionutrition.stock.service;
+
+
+import com.ruoyi.ams.bionutrition.stock.domain.StockTakeRecord;
+import com.ruoyi.ams.bionutrition.stock.dto.StockTakeRecordDTO;
+import com.ruoyi.framework.service.CrudService;
+
+import java.util.List;
+
+/**
+ * 盘点
+ *
+ * @author zhangx
+ * @date 2024-01-22
+ */
+public interface StockTakeRecordService extends CrudService<StockTakeRecord, StockTakeRecordDTO>
+{
+
+    /**
+     * 盘点出库
+     * @param locationList
+     */
+    void stockOutOfWarehouse(List<String> locationList);
+
+}

+ 72 - 0
warewms-ams/src/main/java/com/ruoyi/ams/bionutrition/stock/service/impl/StockTakeRecordServiceImpl.java

@@ -0,0 +1,72 @@
+package com.ruoyi.ams.bionutrition.stock.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.ams.bionutrition.stock.domain.StockTakeRecord;
+import com.ruoyi.ams.bionutrition.stock.dto.StockTakeRecordDTO;
+import com.ruoyi.ams.bionutrition.stock.mapper.StockTakeRecordMapper;
+import com.ruoyi.ams.bionutrition.stock.service.StockTakeRecordService;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.service.impl.CrudServiceImpl;
+import io.jsonwebtoken.lang.Assert;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 盘点
+ *
+ * @author zhangx
+ * @date 2024-01-22
+ */
+@Service
+public class StockTakeRecordServiceImpl extends CrudServiceImpl<StockTakeRecordMapper, StockTakeRecord, StockTakeRecordDTO> implements StockTakeRecordService {
+
+
+
+    /**
+     * 盘点出库
+     *
+     * @param locationList
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void stockOutOfWarehouse(List<String> locationList) {
+        Assert.isTrue(CollectionUtil.isNotEmpty(locationList), "库位号不能为空!");
+
+    }
+
+
+    @Override
+    public QueryWrapper<StockTakeRecord> getWrapper(Map<String, Object> params) {
+        QueryWrapper<StockTakeRecord> queryWrapper = new QueryWrapper<>();
+        String stockNo = (String) params.get("stockNo");
+        String stockLocation = (String) params.get("stockLocation");
+        String skuCode = (String) params.get("skuCode");
+        String skuName = (String) params.get("skuName");
+        String inventoryCode = (String) params.get("inventoryCode");
+        String productLotNumber = (String) params.get("productLotNumber");
+        String stockType = (String) params.get("stockType");
+        //如果不传则默认起始时间为去年今日
+        Date beginTime = StringUtils.isNotBlank((String) params.get("beginTime")) ?
+                DateUtil.parse((String) params.get("beginTime"), DateUtils.YYYY_MM_DD_HH_MM_SS) : DateUtils.offsetYear(DateUtils.getNowDate(), -1);
+        //如果不传则默认结束时间为今日
+        Date endTime = StringUtils.isNotBlank((String) params.get("endTime")) ?
+                DateUtil.parse((String) params.get("endTime"), DateUtils.YYYY_MM_DD_HH_MM_SS) : DateUtils.getNowDate();
+        queryWrapper.lambda()
+                .like(StringUtils.isNotBlank(stockNo), StockTakeRecord::getStockNo, stockNo)
+                .like(StringUtils.isNotBlank(stockLocation), StockTakeRecord::getStockLocation, stockLocation)
+                .like(StringUtils.isNotBlank(skuCode), StockTakeRecord::getSkuCode, skuCode)
+                .like(StringUtils.isNotBlank(skuName), StockTakeRecord::getSkuName, skuName)
+                .like(StringUtils.isNotBlank(inventoryCode), StockTakeRecord::getInventoryCode, inventoryCode)
+                .like(StringUtils.isNotBlank(productLotNumber), StockTakeRecord::getProductLotNumber, productLotNumber)
+                .eq(StringUtils.isNotBlank(stockType), StockTakeRecord::getStockType, stockType)
+                .between(StockTakeRecord::getCreateTime, beginTime, endTime);
+        return queryWrapper;
+    }
+}

+ 8 - 0
warewms-ams/src/main/resources/mapper/stock/StockTakeRecordMapper.xml

@@ -0,0 +1,8 @@
+<?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.ruoyi.ams.bionutrition.stock.mapper.StockTakeRecordMapper">
+
+
+</mapper>