Browse Source

成品出库登记 6-1

master
fkf 2 years ago
parent
commit
adc09c0d9f
  1. 28
      yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/finisproductoutbound/FinisProductOutbound.java
  2. 31
      yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/finisproductoutbound/FinisProductOutboundDto.java
  3. 29
      yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/finisproductoutbound/FinisProductOutboundQuery.java
  4. 44
      yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/finisproductoutbound/FinisProductOutboundVo.java
  5. 2
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finishproductstorage/FinishProductStorageRest.java
  6. 21
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finisproductoutbound/FinisProductOutboundMapper.java
  7. 15
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finisproductoutbound/FinisProductOutboundMapper.xml
  8. 45
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finisproductoutbound/FinisProductOutboundRest.java
  9. 72
      yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finisproductoutbound/FinisProductOutboundService.java

28
yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/finisproductoutbound/FinisProductOutbound.java

@ -0,0 +1,28 @@
package com.yxt.supervise.cyf.api.finisproductoutbound;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @author feikefei
* @create 2023-05-22-16:17
*/
@Data
@ApiModel(value = "成品库出库记录信息", description = "成品库出库记录信息")
@TableName("finis_product_outbound")
public class FinisProductOutbound extends BaseEntity {
//销售合同号
private String salesContractNumber;
//签订日期
private String contractSigningDate;
//净重
private Double weight;
//价值
private Double value;
//出库时间
private String deliveryDate;
//产品sid
private String prodSid;
}

31
yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/finisproductoutbound/FinisProductOutboundDto.java

@ -0,0 +1,31 @@
package com.yxt.supervise.cyf.api.finisproductoutbound;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @author feikefei
* @create 2023-05-22-16:24
*/
@Data
@ApiModel(value = "成品库出库记录信息 传输对象数据", description = "成品库出库记录信息 传输对象数据")
public class FinisProductOutboundDto implements Dto{
private String id;
private String sid;
//销售合同号
private String salesContractNumber;
//签订日期
private String contractSigningDate;
//净重
private Double weight;
//价值
private Double value;
//出库时间
private String deliveryDate;
//产品sid
private String prodSid;
//备注
private String remarks;
}

29
yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/finisproductoutbound/FinisProductOutboundQuery.java

@ -0,0 +1,29 @@
package com.yxt.supervise.cyf.api.finisproductoutbound;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @author feikefei
* @create 2023-05-23-9:35
*/
@Data
@ApiModel(value = "成品库出库记录信息 分页传输对象", description = "成品库出库记录信息 分页传输对象")
public class FinisProductOutboundQuery implements Query {
private String id;
private String sid;
//销售合同号
private String salesContractNumber;
//签订日期
private String contractSigningDate;
//净重
private Double weight;
//价值
private Double value;
//出库时间
private String deliveryDate;
//产品sid
private String prodSid;
}

44
yxt-supervise-cyf/yxt-supervise-cyf-api/src/main/java/com/yxt/supervise/cyf/api/finisproductoutbound/FinisProductOutboundVo.java

@ -0,0 +1,44 @@
package com.yxt.supervise.cyf.api.finisproductoutbound;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @author feikefei
* @create 2023-05-23-9:35
*/
@Data
@ApiModel(value = "成品库出库记录信息 返回视图对象字段", description = "成品库出库记录信息 返回视图对象字段")
public class FinisProductOutboundVo implements Vo {
private String id;
private String sid;
//销售合同号
private String salesContractNumber;
//签订日期
private String contractSigningDate;
//净重
private Double weight;
//价值
private Double value;
//出库时间
private String deliveryDate;
//产品sid
private String prodSid;
//商品类别名称
private String typeName;
//商品类别编号
private String typeNumber;
//商品数量
private Double amount;
//商品名称
private String prodName;
//商品编号
private String prodNumber;
//品牌名称
private String inforName;
//品牌编号
private String inforNumber;
}

2
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finishproductstorage/FinishProductStorageRest.java

@ -37,7 +37,7 @@ public class FinishProductStorageRest {
@ApiOperation("成品库记录 分页查询")
@PostMapping("/listPage")
public ResultBean<PagerVo<FinishProductStorageVo>> listPage(PagerQuery<FinishProductStorageQuery> pq){
public ResultBean<PagerVo<FinishProductStorageVo>> listPage(@RequestBody PagerQuery<FinishProductStorageQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<FinishProductStorageVo> listPage = finishProductStorageService.listPage(pq);
return rb.success().setData(listPage);

21
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finisproductoutbound/FinisProductOutboundMapper.java

@ -0,0 +1,21 @@
package com.yxt.supervise.cyf.biz.finisproductoutbound;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutbound;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutboundVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author feikefei
* @create 2023-05-23-13:48
*/
@Mapper
public interface FinisProductOutboundMapper extends BaseMapper<FinisProductOutbound> {
IPage<FinisProductOutboundVo> selectPageVo(IPage<FinisProductOutbound> page, @Param(Constants.WRAPPER) Wrapper<FinisProductOutbound> qw);
}

15
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finisproductoutbound/FinisProductOutboundMapper.xml

@ -0,0 +1,15 @@
<?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.yxt.supervise.cyf.biz.finisproductoutbound.FinisProductOutboundMapper">
<select id="selectPageVo" resultType="com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutboundVo">
select o.*,t.name typeName,t.number typeNumber,pt.name prodName,pt.number prodNumber,i.name inforName,i.number inforNumber,pi.amount
from finis_product_outbound o
left join product_type t on o.prodSid = t.sid
inner join product_type pt on t.pSid = pt.sid
left join product_information i on i.sid = pt.prodSid
left join finish_product_inventory pi on o.prodSid = pi.prodSid
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

45
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finisproductoutbound/FinisProductOutboundRest.java

@ -0,0 +1,45 @@
package com.yxt.supervise.cyf.biz.finisproductoutbound;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutboundDto;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutboundQuery;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutboundVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author feikefei
* @create 2023-05-23-13:47
*/
@Api(tags = "成品库出库记录")
@RestController
@RequestMapping("cyf/outbound")
public class FinisProductOutboundRest {
@Autowired
private FinisProductOutboundService finisProductOutboundService;
@ApiOperation("增加")
@PostMapping("/save")
public ResultBean save(@RequestBody FinisProductOutboundDto dto){
return finisProductOutboundService.save(dto);
}
@ApiOperation("删除")
@GetMapping("/delete/{sid}")
public ResultBean delete(@PathVariable String sid){
return finisProductOutboundService.delete(sid);
}
@ApiOperation("成品库记录 分页查询")
@PostMapping("/listPage")
public ResultBean<PagerVo<FinisProductOutboundVo>> listPage(@RequestBody PagerQuery<FinisProductOutboundQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<FinisProductOutboundVo> listPage = finisProductOutboundService.listPage(pq);
return rb.success().setData(listPage);
}
}

72
yxt-supervise-cyf/yxt-supervise-cyf-biz/src/main/java/com/yxt/supervise/cyf/biz/finisproductoutbound/FinisProductOutboundService.java

@ -0,0 +1,72 @@
package com.yxt.supervise.cyf.biz.finisproductoutbound;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.cyf.api.finishproductinventory.FinishProductInventory;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutbound;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutboundDto;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutboundQuery;
import com.yxt.supervise.cyf.api.finisproductoutbound.FinisProductOutboundVo;
import com.yxt.supervise.cyf.biz.finishproductinventory.FinishProductInventoryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @author feikefei
* @create 2023-05-23-13:48
*/
@Service
public class FinisProductOutboundService extends MybatisBaseService<FinisProductOutboundMapper, FinisProductOutbound> {
@Autowired
private FinishProductInventoryMapper finishProductInventoryMapper;
public ResultBean save(FinisProductOutboundDto dto){
ResultBean rb = ResultBean.fireFail();
FinisProductOutbound record = new FinisProductOutbound();
BeanUtil.copyProperties(dto,record,"id","sid");
FinishProductInventory finishProductInventory = finishProductInventoryMapper.selectPriceByProdSid(dto.getProdSid());
if (finishProductInventory == null){
return rb.success().setMsg("该品牌商品无库存");
}
if (finishProductInventory.getAmount() < dto.getWeight()){
return rb.setMsg("出库失败,库存不足");
}
baseMapper.insert(record);
finishProductInventory.setAmount(finishProductInventory.getAmount()-dto.getWeight());
finishProductInventoryMapper.updateById(finishProductInventory);
return rb.success().setMsg("出库成功");
}
public ResultBean delete(String sid){
ResultBean rb = ResultBean.fireFail();
baseMapper.delete(new QueryWrapper<FinisProductOutbound>().eq("sid",sid));
return rb.success().setMsg("删除成功");
}
public PagerVo<FinisProductOutboundVo> listPage(PagerQuery<FinisProductOutboundQuery> pq){
FinisProductOutboundQuery params = pq.getParams();
QueryWrapper<FinisProductOutbound> wq = new QueryWrapper<>();
if (params != null){
if (!params.getSalesContractNumber().equals("")){
wq.eq("o.salesContractNumber",params.getSalesContractNumber());
}
if (!params.getDeliveryDate().equals("")){
wq.eq("o.deliveryDate",params.getDeliveryDate());
}
}
IPage<FinisProductOutbound> page = PagerUtil.queryToPage(pq);
IPage<FinisProductOutboundVo> pageVo = baseMapper.selectPageVo(page, wq);
PagerVo<FinisProductOutboundVo> pageToVo = PagerUtil.pageToVo(pageVo, null);
return pageToVo;
}
}
Loading…
Cancel
Save