From defe17cd356718eaf925e7fb48ea5a80211569e5 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Fri, 01 Jul 2022 16:36:41 +0800
Subject: [PATCH] 1、库存损耗后台搭建,接口对接
---
src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java | 135 +++++++++++++++++++
src/main/java/org/springblade/modules/InventoryLoss/vo/InventoryVO.java | 34 ++++
src/main/java/org/springblade/modules/InventoryLoss/mapper/InventoryMapper.xml | 18 ++
src/main/java/org/springblade/modules/InventoryLoss/mapper/InventoryMapper.java | 42 ++++++
src/main/java/org/springblade/modules/InventoryLoss/service/InventoryService.java | 40 +++++
src/main/java/org/springblade/modules/InventoryLoss/service/impl/InventoryServiceImpl.java | 41 +++++
src/main/java/org/springblade/modules/InventoryLoss/dto/InventoryDTO.java | 34 ++++
src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java | 76 ++++++++++
8 files changed, 420 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java b/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java
new file mode 100644
index 0000000..558f81d
--- /dev/null
+++ b/src/main/java/org/springblade/modules/InventoryLoss/controller/InventoryController.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.InventoryLoss.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.modules.farmplant.service.FarmProductStockService;
+import org.springblade.modules.InventoryLoss.entity.Inventory;
+import org.springblade.modules.InventoryLoss.service.InventoryService;
+import org.springblade.modules.InventoryLoss.vo.InventoryVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 库存损耗记录表 控制器
+ *
+ * @author BladeX
+ * @since 2022-06-09
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/inventory/inventory")
+@Api(value = "库存损耗记录表", tags = "库存损耗记录表接口")
+public class InventoryController extends BladeController {
+
+ private final InventoryService inventoryService;
+ private final FarmProductStockService farmProductStockService;
+
+ /**
+ * 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @ApiOperation(value = "详情", notes = "传入sale")
+ public R<Inventory> detail(Inventory inventory) {
+ Inventory detail = inventoryService.getOne(Condition.getQueryWrapper(inventory));
+ return R.data(detail);
+ }
+
+ /**
+ * 分页 库存损耗记录表
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @ApiOperation(value = "分页", notes = "传入sale")
+ public R<IPage<Inventory>> list(Inventory inventory, Query query) {
+ IPage<Inventory> pages = inventoryService.page(Condition.getPage(query), Condition.getQueryWrapper(inventory));
+ return R.data(pages);
+ }
+
+ /**
+ * 自定义分页 库存损耗记录表
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @ApiOperation(value = "分页", notes = "传入sale")
+ public R<IPage<InventoryVO>> page(InventoryVO inventory, Query query) {
+ IPage<InventoryVO> pages = inventoryService.selectSalePage(Condition.getPage(query), inventory);
+ return R.data(pages);
+ }
+
+ /**
+ * 新增 库存损耗记录表
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @ApiOperation(value = "新增", notes = "传入sale")
+ public R save(@Valid @RequestBody Inventory inventory) {
+ return R.status(inventoryService.save(inventory));
+ }
+
+ /**
+ * 修改 库存损耗记录表
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @ApiOperation(value = "修改", notes = "传入sale")
+ public R update(@Valid @RequestBody Inventory inventory) {
+ return R.status(inventoryService.updateById(inventory));
+ }
+
+ /**
+ * 新增或修改 库存损耗记录表
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @ApiOperation(value = "新增或修改", notes = "传入sale")
+ public R submit(@Valid @RequestBody Inventory inventory) {
+ boolean res = farmProductStockService.stockCompare(inventory.getSaleNum(),inventory.getStrainId());
+ if (!res){
+ throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前库存不足!"));
+ }else {
+ //库存充足,减去相应库存
+ farmProductStockService.stockReduce(inventory.getSaleNum(),inventory.getStrainId());
+ }
+ return R.status(inventoryService.saveOrUpdate(inventory));
+ }
+
+
+ /**
+ * 删除 库存损耗记录表
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @ApiOperation(value = "逻辑删除", notes = "传入ids")
+ public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(inventoryService.deleteLogic(Func.toLongList(ids)));
+ }
+
+}
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/dto/InventoryDTO.java b/src/main/java/org/springblade/modules/InventoryLoss/dto/InventoryDTO.java
new file mode 100644
index 0000000..ac207e7
--- /dev/null
+++ b/src/main/java/org/springblade/modules/InventoryLoss/dto/InventoryDTO.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.InventoryLoss.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.InventoryLoss.entity.Inventory;
+
+/**
+ * 库存损耗记录表数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2022-06-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class InventoryDTO extends Inventory {
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java b/src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java
new file mode 100644
index 0000000..fc8d615
--- /dev/null
+++ b/src/main/java/org/springblade/modules/InventoryLoss/entity/Inventory.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.InventoryLoss.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 库存损耗记录表实体类
+ *
+ * @author BladeX
+ * @since 2022-06-09
+ */
+@Data
+@TableName("sys_inventory")
+@EqualsAndHashCode(callSuper = true)
+public class Inventory extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ @TableId(value = "id",type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 品种id
+ */
+ private String strainId;
+
+ /**
+ * 销售数量
+ */
+ private Double saleNum;
+
+ /**
+ * 损耗日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private Date lossTime;
+
+ /**
+ * 损耗原因
+ */
+ private String reason;
+
+ /**
+ * 备注
+ */
+ private String remarks;
+
+}
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/mapper/InventoryMapper.java b/src/main/java/org/springblade/modules/InventoryLoss/mapper/InventoryMapper.java
new file mode 100644
index 0000000..aac93d8
--- /dev/null
+++ b/src/main/java/org/springblade/modules/InventoryLoss/mapper/InventoryMapper.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.InventoryLoss.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.modules.InventoryLoss.entity.Inventory;
+import org.springblade.modules.InventoryLoss.vo.InventoryVO;
+
+import java.util.List;
+
+/**
+ * 库存损耗记录表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2022-06-09
+ */
+public interface InventoryMapper extends BaseMapper<Inventory> {
+
+ /**
+ * 自定义分页
+ *
+ * @param page
+ * @param lnventory
+ * @return
+ */
+ List<InventoryVO> selectSalePage(IPage page, InventoryVO lnventory);
+}
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/mapper/InventoryMapper.xml b/src/main/java/org/springblade/modules/InventoryLoss/mapper/InventoryMapper.xml
new file mode 100644
index 0000000..2efadae
--- /dev/null
+++ b/src/main/java/org/springblade/modules/InventoryLoss/mapper/InventoryMapper.xml
@@ -0,0 +1,18 @@
+<?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="org.springblade.modules.InventoryLoss.mapper.InventoryMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="inventoryResultMap" type="org.springblade.modules.InventoryLoss.entity.Inventory">
+ <result column="id" property="id"/>
+
+ </resultMap>
+
+
+ <select id="selectSalePage" resultMap="inventoryResultMap">
+ select *
+ from sys_inventory
+ where is_deleted = 0
+ </select>
+
+</mapper>
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/service/InventoryService.java b/src/main/java/org/springblade/modules/InventoryLoss/service/InventoryService.java
new file mode 100644
index 0000000..01e4f86
--- /dev/null
+++ b/src/main/java/org/springblade/modules/InventoryLoss/service/InventoryService.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.InventoryLoss.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.InventoryLoss.entity.Inventory;
+import org.springblade.modules.InventoryLoss.vo.InventoryVO;
+
+/**
+ * 库存损耗记录表 服务类
+ *
+ * @author BladeX
+ * @since 2022-06-09
+ */
+public interface InventoryService extends BaseService<Inventory> {
+
+ /**
+ * 自定义分页
+ *
+ * @param page
+ * @param inventory
+ * @return
+ */
+ IPage<InventoryVO> selectSalePage(IPage<InventoryVO> page, InventoryVO inventory);
+}
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/service/impl/InventoryServiceImpl.java b/src/main/java/org/springblade/modules/InventoryLoss/service/impl/InventoryServiceImpl.java
new file mode 100644
index 0000000..84bc25f
--- /dev/null
+++ b/src/main/java/org/springblade/modules/InventoryLoss/service/impl/InventoryServiceImpl.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.InventoryLoss.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.InventoryLoss.entity.Inventory;
+import org.springblade.modules.InventoryLoss.mapper.InventoryMapper;
+import org.springblade.modules.InventoryLoss.service.InventoryService;
+import org.springblade.modules.InventoryLoss.vo.InventoryVO;
+import org.springframework.stereotype.Service;
+
+/**
+ * 库存损耗记录表 服务实现类
+ *
+ * @author BladeX
+ * @since 2022-06-09
+ */
+@Service
+public class InventoryServiceImpl extends BaseServiceImpl<InventoryMapper, Inventory> implements InventoryService {
+
+ @Override
+ public IPage<InventoryVO> selectSalePage(IPage<InventoryVO> page, InventoryVO inventory) {
+ return page.setRecords(baseMapper.selectSalePage(page, inventory));
+ }
+
+}
diff --git a/src/main/java/org/springblade/modules/InventoryLoss/vo/InventoryVO.java b/src/main/java/org/springblade/modules/InventoryLoss/vo/InventoryVO.java
new file mode 100644
index 0000000..e1482f1
--- /dev/null
+++ b/src/main/java/org/springblade/modules/InventoryLoss/vo/InventoryVO.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.modules.InventoryLoss.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.InventoryLoss.entity.Inventory;
+
+/**
+ * 库存损耗记录表视图实体类
+ *
+ * @author BladeX
+ * @since 2022-06-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class InventoryVO extends Inventory {
+ private static final long serialVersionUID = 1L;
+
+}
--
Gitblit v1.9.3