Browse Source

出库单入库单、台账相关功能。

master
djz8236 2 years ago
parent
commit
61abea18a8
  1. 12
      warehousing-system/project/pom.xml
  2. 13
      warehousing-system/project/wh-common/pom.xml
  3. 27
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/InStoreHouseMainDto.java
  4. 35
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/InStorehouseListing.java
  5. 24
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/InStorehouseMain.java
  6. 41
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/OutStorehouseListing.java
  7. 26
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/OutStorehouseMain.java
  8. 26
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/OutStorehouseMainDto.java
  9. 25
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/ProdStock.java
  10. 24
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/ProdStockDto.java
  11. 22
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/ProdStockQuery.java
  12. 21
      warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/ProdStockVo.java
  13. 5
      warehousing-system/project/wh-manage/pom.xml
  14. 27
      warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/input/InStoreHouseMainController.java
  15. 26
      warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/output/OutStorehouseMainController.java
  16. 11
      warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/prodstock/ProdStockController.java
  17. 9
      warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/instorehouse/InStorehouseListingMapper.java
  18. 9
      warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/instorehouse/InStorehouseMainMapper.java
  19. 9
      warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/outstorehouse/OutStorehouseListingMapper.java
  20. 9
      warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/outstorehouse/OutStorehouseMainMapper.java
  21. 9
      warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/prodstock/ProdStockMapper.java
  22. 22
      warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/instorehouse/InStorehouseListingService.java
  23. 140
      warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/instorehouse/InStorehouseMainService.java
  24. 17
      warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/outstorehouse/OutStorehouseListingService.java
  25. 171
      warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/outstorehouse/OutStorehouseMainService.java
  26. 49
      warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/prodstock/ProdStockService.java

12
warehousing-system/project/pom.xml

@ -29,6 +29,18 @@
</properties> </properties>
<dependencies> <dependencies>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.7.Final</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yxt</groupId>
<artifactId>yxt-common-core</artifactId>
<version>0.0.1</version>
</dependency>
<!--SpringMVCjar包文件--> <!--SpringMVCjar包文件-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

13
warehousing-system/project/wh-common/pom.xml

@ -11,6 +11,17 @@
<groupId>com.wh</groupId> <groupId>com.wh</groupId>
<artifactId>wh-common</artifactId> <artifactId>wh-common</artifactId>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
</dependencies>
</project> </project>

27
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/InStoreHouseMainDto.java

@ -0,0 +1,27 @@
package com.wh.pojo.api;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class InStoreHouseMainDto {
@NotBlank(message = "编号不能为空")
private String no; //varchar 50 编号
@NotBlank(message = "制单日期不能为空")
private String applicationDate; //date 50 制单日期
private String creatorSid; //varchar 64 制单人Sid
private String creatorName; /// varchar 50 制单人姓名
@NotBlank(message = "客户Sid不能为空")
private String custerSid; //varchar 64 客户Sid(企业)
@NotBlank(message = "客户名称不能为空")
private String custerName; // varchar 100 客户名称(企业)
private String storeHouseSid; // varchar 64 仓库Sid
private String storeHouseName; // varchar 100 仓库名称
private String auditorSid; //varchar 64 审核人Sid
private String auditorName; // varchar 50 审核人姓名
private String state; // varchar 50 审核状态
private String approvedDate; // varchar 50 审核日期
private String approvedRemark; // varchar 50
private List<InStorehouseListing> list;
}

35
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/InStorehouseListing.java

@ -0,0 +1,35 @@
package com.wh.pojo.api;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Positive;
@Data
@Accessors(chain = true)
@TableName("in_storehouse_listing")
public class InStorehouseListing extends BaseEntity {
private String custerSid;// varchar 64 客户Sid(企业)
private String custerName ;//varchar 100 客户名称(企业)
private String storeHouseSid ;//varchar 64 仓库Sid
private String storeHouseName ;//varchar 100 仓库名称
@NotBlank(message = "质物名称不能为空")
private String proName;// varchar 50 质物名称
@NotBlank(message = "规格(型号)不能为空")
private String proModel ;//varchar 50 规格(型号)
private String proUnit ;//varchar 50 规格单位
private String manufacturer;// varchar 50 生成厂家(产地)
@Positive(message ="数量必须为一个正数" )
private String num ;//varchar 10 数量
private String weight ;//varchar 50 重量
@NotBlank(message = "质权人确认的单价不能为空")
private String confirmedPrice;// decime 50 2 质权人确认的单价
@NotBlank(message = "核算的价值不能为空")
private String calculatedValue ;//decime 50 2 核算的价值
private String locationNumber ;//varchar 10 货位号
private String mainSid ;//varchar 50 申请单的sid
}

24
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/InStorehouseMain.java

@ -0,0 +1,24 @@
package com.wh.pojo.api;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@TableName("in_storehouse_main")
public class InStorehouseMain extends BaseEntity {
private String no; //varchar 50 编号
private String applicationDate; //date 50 制单日期
private String creatorSid; //varchar 64 制单人Sid
private String creatorName; /// varchar 50 制单人姓名
private String custerSid; //varchar 64 客户Sid(企业)
private String custerName; // varchar 100 客户名称(企业)
private String storeHouseSid; // varchar 64 仓库Sid
private String storeHouseName; // varchar 100 仓库名称
private String auditorSid; //varchar 64 审核人Sid
private String auditorName; // varchar 50 审核人姓名
private String approvedDate; // varchar 50 审核日期
private String approvedRemark; // varchar 50 审核备注
}

41
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/OutStorehouseListing.java

@ -0,0 +1,41 @@
package com.wh.pojo.api;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Positive;
@Data
@Accessors(chain = true)
@TableName("out_storehouse_listing")
public class OutStorehouseListing extends BaseEntity {
private String custerSid;// varchar 64 客户Sid(企业)
private String custerName ;//varchar 100 客户名称(企业)
private String storeHouseSid ;//varchar 64 仓库Sid
private String storeHouseName ;//varchar 100 仓库名称
@NotBlank(message = "质物名称不能为空")
private String proName;// varchar 50 质物名称
@NotBlank(message = "规格(型号)不能为空")
private String proModel ;//varchar 50 规格(型号)
private String proUnit ;//varchar 50 规格单位
private String manufacturer;// varchar 50 生成厂家(产地)
@Positive(message ="数量必须为一个正数" )
private String estimateNum ;//varchar 10 预计数量
private String estimateWeight ;//varchar 50 预计重量
@NotBlank(message = "预计质权人确认的单价不能空")
private String estimateConfirmedPrice;// decime 50 2 质权人确认的单价
@NotBlank(message = "预计核算的价值不能空")
private String estimateCalculatedValue ;//decime 50 2 核算的价值
@Positive(message ="数量必须为一个正数" )
private String realityNum ;//varchar 10 实际数量
private String realityWeight ;//varchar 50 实际重量
@NotBlank(message = "实际质权人确认的单价不能空")
private String realityConfirmedPrice;// decime 50 2 实际质权人确认
@NotBlank(message = "实际核算的价值不能空")
private String realityCalculatedValue ;//decime 50 2 实际核算的价值
private String locationNumber ;//varchar 10 货位号
private String mainSid ;//varchar 50 申请单的sid
}

26
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/OutStorehouseMain.java

@ -0,0 +1,26 @@
package com.wh.pojo.api;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@TableName("out_storehouse_main")
public class OutStorehouseMain extends BaseEntity {
private String no; //varchar 50 编号
private String applicationDate; //date 50 制单日期
private String creatorSid; //varchar 64 制单人Sid
private String creatorName; /// varchar 50 制单人姓名
private String custerSid; //varchar 64 客户Sid(企业)
private String custerName; // varchar 100 客户名称(企业)
private String storeHouseSid; // varchar 64 仓库Sid
private String storeHouseName; // varchar 100 仓库名称
private String auditorSid; //varchar 64 审核人Sid
private String auditorName; // varchar 50 审核人姓名
private String approvedDate; // varchar 50 审核日期
private String approvedRemark; // varchar 50 审核备注
}

26
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/OutStorehouseMainDto.java

@ -0,0 +1,26 @@
package com.wh.pojo.api;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
public class OutStorehouseMainDto {
private String no; //varchar 50 编号
private String applicationDate; //date 50 制单日期
private String creatorSid; //varchar 64 制单人Sid
private String creatorName; /// varchar 50 制单人姓名
private String custerSid; //varchar 64 客户Sid(企业)
private String custerName; // varchar 100 客户名称(企业)
private String storeHouseSid; // varchar 64 仓库Sid
private String storeHouseName; // varchar 100 仓库名称
private String auditorSid; //varchar 64 审核人Sid
private String auditorName; // varchar 50 审核人姓名
private String approvedDate; // varchar 50 审核日期
private String approvedRemark; // varchar 50 审核备注
private List<OutStorehouseListing> list;
}

25
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/ProdStock.java

@ -0,0 +1,25 @@
package com.wh.pojo.api;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@TableName("prod_stock")
public class ProdStock extends BaseEntity {
private String proName;// varchar 50 质物名称
private String proModel;// varchar 50 规格(型号)
private String manufacturer;// varchar 50 生成厂家(产地)
private String num;// varchar 10 数量
private String weight;// varchar 50 重量
private String confirmedPrice;// decime 50 2 质权人确认的单价
private String calculatedValue;// decime 50 2 核算的价值
private String locationNumber;// varchar 10 货位号
private String custerName;// varchar 50 客户名称(企业)
private String proUnit;// varchar 50 规格单位
private String custerSid;// varchar 64 客户Sid(企业)
private String storeHouseSid;// varchar 64 仓库Sid
private String storeHouseName;// varchar 100 仓库名称
}

24
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/ProdStockDto.java

@ -0,0 +1,24 @@
package com.wh.pojo.api;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class ProdStockDto extends BaseEntity {
private String proName;// varchar 50 质物名称
private String proModel;// varchar 50 规格(型号)
private String manufacturer;// varchar 50 生成厂家(产地)
private String num;// varchar 10 数量
private String weight;// varchar 50 重量
private String confirmedPrice;// decime 50 2 质权人确认的单价
private String calculatedValue;// decime 50 2 核算的价值
private String locationNumber;// varchar 10 货位号
private String custerName;// varchar 50 客户名称(企业)
private String proUnit;// varchar 50 规格单位
private String custerSid;// varchar 64 客户Sid(企业)
private String storeHouseSid;// varchar 64 仓库Sid
private String storeHouseName;// varchar 100 仓库名称
}

22
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/ProdStockQuery.java

@ -0,0 +1,22 @@
package com.wh.pojo.api;
import com.yxt.common.core.query.Query;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
public class ProdStockQuery implements Query {
private String proName;// varchar 50 质物名称
private String proModel;// varchar 50 规格(型号)
private String manufacturer;// varchar 50 生成厂家(产地)
private String num;// varchar 10 数量
private String weight;// varchar 50 重量
private String confirmedPrice;// decime 50 2 质权人确认的单价
private String calculatedValue;// decime 50 2 核算的价值
private String locationNumber;// varchar 10 货位号
private String custerName;// varchar 50 客户名称(企业)
private String proUnit;// varchar 50 规格单位
private String custerSid;// varchar 64 客户Sid(企业)
private String storeHouseSid;// varchar 64 仓库Sid
private String storeHouseName;// varchar 100 仓库名称
}

21
warehousing-system/project/wh-common/src/main/java/com/wh/pojo/api/ProdStockVo.java

@ -0,0 +1,21 @@
package com.wh.pojo.api;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
@Data
public class ProdStockVo implements Vo {
private String proName;// varchar 50 质物名称
private String proModel;// varchar 50 规格(型号)
private String manufacturer;// varchar 50 生成厂家(产地)
private String num;// varchar 10 数量
private String weight;// varchar 50 重量
private String confirmedPrice;// decime 50 2 质权人确认的单价
private String calculatedValue;// decime 50 2 核算的价值
private String locationNumber;// varchar 10 货位号
private String custerName;// varchar 50 客户名称(企业)
private String proUnit;// varchar 50 规格单位
private String custerSid;// varchar 64 客户Sid(企业)
private String storeHouseSid;// varchar 64 仓库Sid
private String storeHouseName;// varchar 100 仓库名称
}

5
warehousing-system/project/wh-manage/pom.xml

@ -24,6 +24,11 @@
<version>21.0.1</version> <version>21.0.1</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.yxt</groupId>
<artifactId>yxt-common-base</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies> </dependencies>
<!--添加build标签--> <!--添加build标签-->

27
warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/input/InStoreHouseMainController.java

@ -0,0 +1,27 @@
package com.wh.controller.api.input;
import com.wh.pojo.api.InStoreHouseMainDto;
import com.wh.service.api.instorehouse.InStorehouseMainService;
import com.wh.vo.SysResult;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@CrossOrigin
@RequestMapping("/input/")
public class InStoreHouseMainController {
@Autowired
private InStorehouseMainService inStorehouseMainService;
@PostMapping("addInStorehouse")
public ResultBean addInStorehouse(@RequestBody InStoreHouseMainDto inStoreHouseMainDto){
ResultBean resultBean = inStorehouseMainService.addInStorehouse(inStoreHouseMainDto);
return resultBean;
}
}

26
warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/output/OutStorehouseMainController.java

@ -0,0 +1,26 @@
package com.wh.controller.api.output;
import com.wh.pojo.api.OutStorehouseMain;
import com.wh.pojo.api.OutStorehouseMainDto;
import com.wh.service.api.outstorehouse.OutStorehouseMainService;
import com.wh.vo.SysResult;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@CrossOrigin
@RequestMapping("/output/")
public class OutStorehouseMainController {
@Autowired
private OutStorehouseMainService outStorehouseMainService;
@PostMapping("addOutStorehouse")
public ResultBean addOutStorehouse(@RequestBody OutStorehouseMainDto outStorehouseMainDto){
ResultBean resultBean = outStorehouseMainService.addOutStorehouse(outStorehouseMainDto);
return resultBean;
}
}

11
warehousing-system/project/wh-manage/src/main/java/com/wh/controller/api/prodstock/ProdStockController.java

@ -0,0 +1,11 @@
package com.wh.controller.api.prodstock;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@CrossOrigin
@RequestMapping("/stock/")
public class ProdStockController {
}

9
warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/instorehouse/InStorehouseListingMapper.java

@ -0,0 +1,9 @@
package com.wh.mapper.api.instorehouse;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wh.pojo.api.InStorehouseListing;
import com.wh.pojo.api.InStorehouseMain;
public interface InStorehouseListingMapper extends BaseMapper<InStorehouseListing> {
}

9
warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/instorehouse/InStorehouseMainMapper.java

@ -0,0 +1,9 @@
package com.wh.mapper.api.instorehouse;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wh.pojo.InStorehouse;
import com.wh.pojo.api.InStorehouseMain;
public interface InStorehouseMainMapper extends BaseMapper<InStorehouseMain> {
}

9
warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/outstorehouse/OutStorehouseListingMapper.java

@ -0,0 +1,9 @@
package com.wh.mapper.api.outstorehouse;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wh.pojo.api.InStorehouseListing;
import com.wh.pojo.api.OutStorehouseListing;
public interface OutStorehouseListingMapper extends BaseMapper<OutStorehouseListing> {
}

9
warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/outstorehouse/OutStorehouseMainMapper.java

@ -0,0 +1,9 @@
package com.wh.mapper.api.outstorehouse;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wh.pojo.api.InStorehouseMain;
import com.wh.pojo.api.OutStorehouseMain;
public interface OutStorehouseMainMapper extends BaseMapper<OutStorehouseMain> {
}

9
warehousing-system/project/wh-manage/src/main/java/com/wh/mapper/api/prodstock/ProdStockMapper.java

@ -0,0 +1,9 @@
package com.wh.mapper.api.prodstock;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wh.pojo.api.InStorehouseMain;
import com.wh.pojo.api.ProdStock;
public interface ProdStockMapper extends BaseMapper<ProdStock> {
}

22
warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/instorehouse/InStorehouseListingService.java

@ -0,0 +1,22 @@
package com.wh.service.api.instorehouse;
import com.wh.mapper.api.instorehouse.InStorehouseListingMapper;
import com.wh.pojo.*;
import com.wh.pojo.api.InStorehouseListing;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
public class InStorehouseListingService extends MybatisBaseService<InStorehouseListingMapper, InStorehouseListing> {
public Map<String, Object> getQuery(InStorehouse inStorehouse) {
Map<String,Object> map = new HashMap<>();
return map;
}
}

140
warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/instorehouse/InStorehouseMainService.java

@ -0,0 +1,140 @@
package com.wh.service.api.instorehouse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.wh.mapper.api.instorehouse.InStorehouseMainMapper;
import com.wh.pojo.api.*;
import com.wh.service.api.prodstock.ProdStockService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Slf4j
@Service
public class InStorehouseMainService extends MybatisBaseService<InStorehouseMainMapper, InStorehouseMain> {
@Autowired
private InStorehouseListingService inStorehouseListingService;
@Autowired
private ProdStockService prodStockService;
@Transactional
public ResultBean addInStorehouse(InStoreHouseMainDto inStoreHouseMainDto) {
ResultBean<Object> r = ResultBean.fireFail();
if(inStoreHouseMainDto==null){
return r.setMsg("数据不能为空");
}
if(StringUtils.isBlank(inStoreHouseMainDto.getNo())){
return r.setMsg("申请单编号不能为空");
}
QueryWrapper<InStorehouseMain> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("no",inStoreHouseMainDto.getNo());
if(baseMapper.selectCount(queryWrapper) != 0){
return r.setMsg("申请单编号已经存在");
}
InStorehouseMain in=new InStorehouseMain();
BeanUtils.copyProperties(inStoreHouseMainDto,in);
List<InStorehouseListing> list = inStoreHouseMainDto.getList();
if(list==null||list.size()==0){
return r.setMsg("商品不能为空");
}
//申请单主表信息
baseMapper.insert(in);
addListing(in, list);
return ResultBean.fireSuccess().setMsg("添加成功");
}
/**
* 新增商品信息
* @param in
* @param list
*/
@Transactional
public void addListing(InStorehouseMain in, List<InStorehouseListing> list) {
list.forEach(l->{
l.setCusterSid(in.getCusterSid());
l.setCusterName(in.getCusterName());
l.setMainSid(in.getSid());
inStorehouseListingService.insert(l);
saveOrUpdateProdStock(l);
});
}
/**
* 新增或者修改商品库存信息
* @param l
*/
private void saveOrUpdateProdStock(InStorehouseListing l) {
PagerVo<ProdStock> proStocks = getProdStock(l);
long total = proStocks.getTotal();
if(total==0){
addProdStock(l);
}else{
updateProdStock(l, proStocks);
}
}
/**
* 修改商品库存信息
* @param l
* @param proStocks
*/
private void updateProdStock(InStorehouseListing l, PagerVo<ProdStock> proStocks) {
ResultBean<Object> r = ResultBean.fireFail();
ProdStock prodStock = proStocks.getRecords().get(0);
String num = prodStock.getNum();
if(com.yxt.common.base.utils.StringUtils.isBlank(num)){
log.info("{}",l.getProName()+"商品数量不能为空");
}
int i=Integer.valueOf(num)+Integer.valueOf(l.getNum());
prodStock.setNum(i+"");
prodStockService.updateById(prodStock);
}
/**
* 新增商品库存信息
* @param l
*/
private void addProdStock(InStorehouseListing l) {
ProdStock prodStock=new ProdStock();
prodStock.setProName(l.getProName());// varchar 50 质物名称
prodStock.setProModel(l.getProModel());// varchar 50 规格(型号)
prodStock.setManufacturer(l.getManufacturer());// varchar 50 生成厂家(产地)
prodStock.setNum(l.getNum());// varchar 10 数量
prodStock.setWeight(l.getWeight());// varchar 50 重量
prodStock.setConfirmedPrice(l.getConfirmedPrice());// decime 50 2 质权人确认的单价
prodStock.setCalculatedValue(l.getCalculatedValue());// decime 50 2 核算的价值
prodStock.setLocationNumber(l.getLocationNumber());// varchar 10 货位号
prodStock.setCusterName(l.getCusterName());// varchar 50 客户名称(企业)
prodStock.setProUnit(l.getProUnit());// varchar 50 规格单位
prodStock.setCusterSid(l.getCusterSid());// varchar 64 客户Sid(企业)
prodStock.setStoreHouseSid(l.getStoreHouseSid());// varchar 64 仓库Sid
prodStock.setStoreHouseName(l.getStoreHouseName());// varchar 100 仓库名称
prodStockService.insert(prodStock);
}
/**
* 根据商品的名称 规格 客户查询库存信息
* @param l
* @return
*/
private PagerVo<ProdStock> getProdStock(InStorehouseListing l) {
PagerQuery<ProdStockQuery> pq=new PagerQuery<>();
pq.setCurrent(0);
pq.setSize(10);
ProdStockQuery stockQuery = new ProdStockQuery();
stockQuery.setCusterSid(l.getCusterSid());
stockQuery.setProModel(l.getProModel());
stockQuery.setProName(l.getProName());
pq.setParams(stockQuery);
PagerVo<ProdStock> proStocks = prodStockService.getProStocks(pq);
return proStocks;
}
}

17
warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/outstorehouse/OutStorehouseListingService.java

@ -0,0 +1,17 @@
package com.wh.service.api.outstorehouse;
import com.wh.mapper.api.instorehouse.InStorehouseMainMapper;
import com.wh.mapper.api.outstorehouse.OutStorehouseListingMapper;
import com.wh.mapper.api.outstorehouse.OutStorehouseMainMapper;
import com.wh.pojo.api.InStorehouseMain;
import com.wh.pojo.api.OutStorehouseListing;
import com.wh.pojo.api.OutStorehouseMain;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
@Service
public class OutStorehouseListingService extends MybatisBaseService<OutStorehouseListingMapper, OutStorehouseListing> {
}

171
warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/outstorehouse/OutStorehouseMainService.java

@ -0,0 +1,171 @@
package com.wh.service.api.outstorehouse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wh.api.Api;
import com.wh.mapper.api.instorehouse.InStorehouseMainMapper;
import com.wh.mapper.api.outstorehouse.OutStorehouseMainMapper;
import com.wh.mapper.initial.LocationMapper;
import com.wh.mapper.initial.ProductMapper;
import com.wh.mapper.instorehouse.PurchaseMapper;
import com.wh.mapper.instorehouse.PutInMapper;
import com.wh.mapper.instorehouse.ReceivingMapper;
import com.wh.mapper.stock.StockMapper;
import com.wh.mapper.storehousemanage.RemoveMapper;
import com.wh.pojo.*;
import com.wh.pojo.api.*;
import com.wh.service.api.instorehouse.InStorehouseListingService;
import com.wh.service.api.prodstock.ProdStockService;
import com.wh.vo.PageResult;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class OutStorehouseMainService extends MybatisBaseService<OutStorehouseMainMapper, OutStorehouseMain> {
@Autowired
private OutStorehouseListingService outStorehouseListingService;
@Autowired
private ProdStockService prodStockService;
@Transactional
public ResultBean addOutStorehouse(OutStorehouseMainDto outStorehouseMainDto) {
ResultBean<Object> r = ResultBean.fireFail();
if(outStorehouseMainDto==null){
return r.setMsg("数据不能为空");
}
String no = outStorehouseMainDto.getNo();
if(StringUtils.isBlank(no)){
return r.setMsg("编码不能为空");
}
List<OutStorehouseListing> list = outStorehouseMainDto.getList();
if(list==null||list.size()==0){
return r.setMsg("商品信息不能为空");
}
QueryWrapper<OutStorehouseMain> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("no",outStorehouseMainDto.getNo());
if(baseMapper.selectCount(queryWrapper) != 0){
return r.setMsg("申请单编号已经存在");
}
OutStorehouseMain out=new OutStorehouseMain();
BeanUtils.copyProperties(outStorehouseMainDto,out);
try{
boolean b = validaProStock(list);
if(!b){
return r.setMsg("出库数量大于库存数量");
}
}catch (Exception e){
return r.setMsg(e.getMessage());
}
//申请单主表信息
baseMapper.insert(out);
addListing(out, list);
return ResultBean.fireSuccess().setMsg("添加成功");
}
/**
* 新增商品信息
* @param out
* @param list
*/
@Transactional
public void addListing(OutStorehouseMain out, List<OutStorehouseListing> list) throws RuntimeException{
list.forEach(l->{
l.setCusterSid(out.getCusterSid());
l.setCusterName(out.getCusterName());
l.setMainSid(out.getSid());
outStorehouseListingService.insert(l);
saveOrUpdateProdStock(l);
});
}
/**
* 新增或者修改商品库存信息
* @param l
*/
private void saveOrUpdateProdStock(OutStorehouseListing l) {
PagerVo<ProdStock> proStocks = getProdStock(l);
long total = proStocks.getTotal();
if(total==0){
return;
}else{
updateProdStock(l, proStocks);
}
}
/**
* 修改商品库存信息
* @param l
* @param proStocks
*/
private void updateProdStock(OutStorehouseListing l, PagerVo<ProdStock> proStocks) {
ResultBean<Object> r = ResultBean.fireFail();
ProdStock prodStock = proStocks.getRecords().get(0);
String num = prodStock.getNum();
if(com.yxt.common.base.utils.StringUtils.isBlank(num)){
log.info("{}",l.getProName()+"商品数量不能为空");
}
if(Integer.valueOf(l.getRealityNum())>Integer.valueOf(num)){
return;
}
int i=Integer.valueOf(num)-Integer.valueOf(l.getRealityNum());
prodStock.setNum(i+"");
prodStockService.updateById(prodStock);
}
/**
* 验证库存信息
* @param list
* @return
* @throws RuntimeException
*/
private boolean validaProStock(List<OutStorehouseListing> list) throws RuntimeException{
list.forEach(l->{
PagerVo<ProdStock> prodStock = getProdStock(l);
long total = prodStock.getTotal();
if(total==0){
throw new RuntimeException(l.getProName()+"不存在库存"); // 抛出异常,事务回滚,
}
ProdStock prodStock1 = prodStock.getRecords().get(0);
String num = prodStock1.getNum();
int r=Integer.valueOf(num)-Integer.valueOf(l.getRealityNum());
if(r<0){
throw new RuntimeException(l.getProName()+"出库数量超出库存"); // 抛出异常,事务回滚,
}
});
return true;
}
/**
* 根据商品的名称 规格 客户查询库存信息
* @param l
* @return
*/
private PagerVo<ProdStock> getProdStock(OutStorehouseListing l) {
PagerQuery<ProdStockQuery> pq=new PagerQuery<>();
pq.setCurrent(0);
pq.setSize(10);
ProdStockQuery stockQuery = new ProdStockQuery();
stockQuery.setCusterSid(l.getCusterSid());
stockQuery.setProModel(l.getProModel());
stockQuery.setProName(l.getProName());
pq.setParams(stockQuery);
PagerVo<ProdStock> proStocks = prodStockService.getProStocks(pq);
return proStocks;
}
}

49
warehousing-system/project/wh-manage/src/main/java/com/wh/service/api/prodstock/ProdStockService.java

@ -0,0 +1,49 @@
package com.wh.service.api.prodstock;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wh.mapper.api.prodstock.ProdStockMapper;
import com.wh.pojo.api.*;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProdStockService extends MybatisBaseService<ProdStockMapper, ProdStock> {
public PagerVo<ProdStock> getProStocks(PagerQuery<ProdStockQuery> pq ) {
ProdStockQuery params = pq.getParams();
QueryWrapper<ProdStock> qw = createQueryWrapper(params);
IPage<ProdStock> page = PagerUtil.queryToPage(pq);
IPage<ProdStock> pagging = baseMapper.selectPage(page, qw);
PagerVo<ProdStock> p = PagerUtil.pageToVo(pagging, null);
Integer integer = baseMapper.selectCount(qw);
p.setTotal(integer);
return p;
}
private QueryWrapper<ProdStock> createQueryWrapper(ProdStockQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<ProdStock> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getCusterSid())) {
qw.eq("custer_sid", query.getCusterSid());
}
if (StringUtils.isNotBlank(query.getProName())) {
qw.eq("pro_name", query.getProName());
}
if (StringUtils.isNotBlank(query.getProModel())) {
qw.eq("pro_model", query.getProModel());
}
return qw;
}
}
Loading…
Cancel
Save