
9 changed files with 286 additions and 1 deletions
@ -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; |
|||
} |
@ -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; |
|||
} |
@ -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; |
|||
} |
@ -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; |
|||
} |
@ -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); |
|||
|
|||
} |
@ -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> |
@ -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); |
|||
} |
|||
} |
@ -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…
Reference in new issue