
26 changed files with 808 additions and 1 deletions
@ -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; |
||||
|
} |
@ -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
|
||||
|
} |
@ -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 审核备注
|
||||
|
} |
@ -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
|
||||
|
} |
@ -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 审核备注
|
||||
|
} |
@ -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; |
||||
|
} |
@ -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 仓库名称
|
||||
|
} |
@ -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 仓库名称
|
||||
|
} |
@ -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 仓库名称
|
||||
|
} |
@ -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 仓库名称
|
||||
|
} |
@ -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; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
@ -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; |
||||
|
} |
||||
|
|
||||
|
} |
@ -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 { |
||||
|
} |
@ -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> { |
||||
|
} |
@ -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> { |
||||
|
} |
@ -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> { |
||||
|
} |
@ -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> { |
||||
|
} |
@ -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> { |
||||
|
} |
@ -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; |
||||
|
} |
||||
|
} |
@ -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; |
||||
|
} |
||||
|
} |
@ -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> { |
||||
|
|
||||
|
|
||||
|
} |
@ -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; |
||||
|
} |
||||
|
} |
@ -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…
Reference in new issue