| | |
| | | import com.ruoyi.system.dto.WarehousingGoodsDto; |
| | | import com.ruoyi.system.query.TErpGoodsQuery; |
| | | import com.ruoyi.system.query.TErpGoodsWarehouseQuery; |
| | | import com.ruoyi.system.query.ValidityPeriodWarningQuery; |
| | | import com.ruoyi.system.service.TErpSupplierWarehousingService; |
| | | import com.ruoyi.system.vo.TErpGoodsVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseLastVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseRecordLastVO; |
| | | import com.ruoyi.system.vo.ValidityPeriodWarningVo; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "有效期预警") |
| | | @PostMapping(value = "/validityPeriodWarning") |
| | | public R<PageInfo<ValidityPeriodWarningVo>> validityPeriodWarning(@RequestBody ValidityPeriodWarningQuery query) { |
| | | SysUser user = tokenService.getLoginUser().getUser(); |
| | | PageInfo<ValidityPeriodWarningVo> pageInfo =erpSupplierWarehousingService.validityPeriodWarning(query,user); |
| | | return R.ok(pageInfo); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | import com.ruoyi.system.model.TErpSupplierWarehousing; |
| | | import com.ruoyi.system.query.TErpGoodsQuery; |
| | | import com.ruoyi.system.query.TErpGoodsWarehouseQuery; |
| | | import com.ruoyi.system.query.ValidityPeriodWarningQuery; |
| | | import com.ruoyi.system.vo.TErpGoodsVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseRecordLastVO; |
| | | import com.ruoyi.system.vo.ValidityPeriodWarningVo; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | List<TErpGoodsVO> pageList(@Param("query") TErpGoodsQuery query, @Param("pageInfo") PageInfo<TErpGoodsVO> pageInfo, @Param("user") SysUser user); |
| | | |
| | | List<TErpGoodsWarehouseRecordLastVO> pageWarehouseList(@Param("query") TErpGoodsWarehouseQuery query, @Param("pageInfo") PageInfo<TErpGoodsWarehouseRecordLastVO> pageInfo, @Param("user") SysUser user, @Param("sTime") String sTime, @Param("eTime") String eTime); |
| | | |
| | | PageInfo<ValidityPeriodWarningVo> validityPeriodWarning(@Param("pageInfo") PageInfo<ValidityPeriodWarningVo> pageInfo, @Param("query") ValidityPeriodWarningQuery query, @Param("user") SysUser user, @Param("time") LocalDateTime nineMonthLater); |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.ruoyi.system.query; |
| | | |
| | | import com.ruoyi.common.core.domain.BasePage; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "有效期预警查询Query") |
| | | public class ValidityPeriodWarningQuery extends BasePage { |
| | | @ApiModelProperty(value = "药品名称") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "类型id") |
| | | private String typeId; |
| | | |
| | | |
| | | @ApiModelProperty(value = "国药准字号") |
| | | private String quasiNumber; |
| | | |
| | | @ApiModelProperty(value = "批次号") |
| | | private String batchNumber; |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | import com.ruoyi.system.model.TErpSupplierWarehousing; |
| | | import com.ruoyi.system.query.TErpGoodsQuery; |
| | | import com.ruoyi.system.query.TErpGoodsWarehouseQuery; |
| | | import com.ruoyi.system.vo.TErpGoodsVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseLastVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseRecordLastVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseVO; |
| | | import com.ruoyi.system.query.ValidityPeriodWarningQuery; |
| | | import com.ruoyi.system.vo.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.List; |
| | |
| | | |
| | | void warehousingGoods(@Valid List<WarehousingGoodsDto> dtos, SysUser user); |
| | | |
| | | PageInfo<ValidityPeriodWarningVo> validityPeriodWarning(ValidityPeriodWarningQuery query, SysUser user); |
| | | } |
| | |
| | | import com.ruoyi.system.model.*; |
| | | import com.ruoyi.system.query.TErpGoodsQuery; |
| | | import com.ruoyi.system.query.TErpGoodsWarehouseQuery; |
| | | import com.ruoyi.system.query.ValidityPeriodWarningQuery; |
| | | import com.ruoyi.system.service.TErpSupplierWarehousingService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.system.vo.TErpGoodsVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseLastVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseRecordLastVO; |
| | | import com.ruoyi.system.vo.TErpGoodsWarehouseVO; |
| | | import com.ruoyi.system.vo.*; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<ValidityPeriodWarningVo> validityPeriodWarning(ValidityPeriodWarningQuery query, SysUser user) { |
| | | // 获取当前时间后9个月的时间 |
| | | LocalDateTime nineMonthLater = LocalDateTime.now().plusMonths(9); |
| | | |
| | | PageInfo<ValidityPeriodWarningVo> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); |
| | | return this.baseMapper.validityPeriodWarning(pageInfo,query,user,nineMonthLater); |
| | | |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.ruoyi.system.vo; |
| | | |
| | | import cn.afterturn.easypoi.excel.annotation.Excel; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | @Data |
| | | @ApiModel(value = "有效期预警Vo") |
| | | public class ValidityPeriodWarningVo { |
| | | |
| | | @ApiModelProperty(value = "入库单号") |
| | | private String warehousingNo; |
| | | |
| | | @ApiModelProperty(value = "商品名称") |
| | | private String goodsName; |
| | | |
| | | @ApiModelProperty(value = "商品类型名称") |
| | | private String typeName; |
| | | |
| | | @ApiModelProperty(value = "国药准字号") |
| | | private String quasiNumber; |
| | | |
| | | @ApiModelProperty(value = "批次号") |
| | | private String batchNumber; |
| | | |
| | | |
| | | @ApiModelProperty(value = "有效日期") |
| | | private LocalDateTime expiryDate; |
| | | |
| | | @ApiModelProperty(value = "单位") |
| | | private String packingUnitName; |
| | | |
| | | @ApiModelProperty(value = "商品id") |
| | | private String goodsId; |
| | | |
| | | @ApiModelProperty(value = "数量") |
| | | private Integer num; |
| | | } |
| | |
| | | </select> |
| | | |
| | | |
| | | <select id="validityPeriodWarning" resultType="com.ruoyi.system.vo.ValidityPeriodWarningVo"> |
| | | select t2.warehouse_no, t4.goods_name, t4.quasi_number, t1.batch_number, t1.expiry_date, t4.id as goodsId,t5.type_name,t6.unit_name packingUnitName, |
| | | case |
| | | when t3.id is null then t1.warehousing_number |
| | | else t1.warehousing_number -t3.outbound_count |
| | | end as num |
| | | from t_erp_supplier_warehousing_batch t1 |
| | | left join t_erp_supplier_warehousing t2 on t1.warehousing_id = t2.id |
| | | LEFT JOIN t_erp_supplier_outbound_goods t3 on t3.warehousing_batch_id = t1.id |
| | | LEFT JOIN t_erp_goods t4 on t2.goods_id = t4.id |
| | | left join t_erp_goods_type t5 on t4.type_id = t5.id |
| | | left join t_erp_goods_unit t6 on t4.packing_unit_id = t6.id |
| | | where #{time} > t1.expiry_date and t2.supplier_id =#{user.userId} |
| | | and (t1.warehousing_number - t3.outbound_count > 0 or t3.id is null) |
| | | <if test="query.name != null and query.name != ''"> |
| | | and t4.goods_name like concat('%',#{query.goodsName},'%') |
| | | </if> |
| | | <if test="query.quasiNumber != null and query.quasiNumber != ''"> |
| | | and t4.quasi_number like concat('%',#{query.quasiNumber},'%') |
| | | </if> |
| | | <if test="query.batchNumber != null and query.batchNumber != ''"> |
| | | and t1.batch_number like concat('%',#{query.batchNumber},'%') |
| | | </if> |
| | | <if test="query.typeId != null and query.typeId != ''"> |
| | | and t4.type_id = #{query.typeId} |
| | | </if> |
| | | order by t1.expiry_date |
| | | |
| | | </select> |
| | | |
| | | |
| | | </mapper> |