manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java
@@ -9,12 +9,18 @@ import com.jilongda.common.security.JwtTokenUtils; import com.jilongda.common.utils.CodeGenerateUtils; import com.jilongda.manage.dto.TWarehousingDTO; import com.jilongda.manage.dto.TWarehousingLensDTO; import com.jilongda.manage.model.TFrameWarehousingDetail; import com.jilongda.manage.model.TLensWarehousingDetail; import com.jilongda.manage.model.TWarehousing; import com.jilongda.manage.query.TWarehousingDetailLensQuery; import com.jilongda.manage.query.TWarehousingDetailQuery; import com.jilongda.manage.service.TFrameWarehousingDetailService; import com.jilongda.manage.service.TLensWarehousingDetailService; import com.jilongda.manage.service.TWarehousingService; import com.jilongda.manage.vo.TFrameWarehousingDetailVO; import com.jilongda.manage.vo.TLensWarehousingDetailVO; import com.jilongda.manage.vo.TWarehousingLensVO; import com.jilongda.manage.vo.TWarehousingVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -43,6 +49,8 @@ private TWarehousingService warehousingService; @Autowired private TFrameWarehousingDetailService frameWarehousingDetailService; @Autowired private TLensWarehousingDetailService lensWarehousingDetailService; /** * 出入库单列表 @@ -52,6 +60,11 @@ public ApiResult<PageInfo<TWarehousingVO>> inventoryReceiptList(@RequestBody TWarehousingDetailQuery query) { return ApiResult.success(warehousingService.inventoryReceiptList(query)); } @ApiOperation(value = "镜片出入库单列表") @PostMapping(value = "/inventoryReceiptLensList") public ApiResult<PageInfo<TWarehousingLensVO>> inventoryReceiptLensList(@RequestBody TWarehousingDetailLensQuery query) { return ApiResult.success(warehousingService.inventoryReceiptLensList(query)); } /** * 库存明细记录列表 @@ -60,6 +73,15 @@ @PostMapping(value = "/detailList") public ApiResult<PageInfo<TFrameWarehousingDetailVO>> detailList(@RequestBody TWarehousingDetailQuery query) { PageInfo<TFrameWarehousingDetailVO> frameWarehousingDetailVOPageInfo = warehousingService.detailList(query); return ApiResult.success(frameWarehousingDetailVOPageInfo); } /** * 库存明细记录列表 */ @ApiOperation(value = "镜片库存明细记录列表") @PostMapping(value = "/detailLensList") public ApiResult<PageInfo<TLensWarehousingDetailVO>> detailLensList(@RequestBody TWarehousingDetailLensQuery query) { PageInfo<TLensWarehousingDetailVO> frameWarehousingDetailVOPageInfo = warehousingService.detailListLens(query); return ApiResult.success(frameWarehousingDetailVOPageInfo); } @@ -85,6 +107,27 @@ frameWarehousingDetailService.saveBatch(frameWarehousingDetails); return ApiResult.success(); } /** * 添加镜片出库,入库,作废,退货 */ @ApiOperation(value = "添加镜片出库,入库,作废,退货") @PostMapping(value = "/outBoundLens") public ApiResult<String> outBoundLens(@Validated @RequestBody TWarehousingLensDTO dto) { // 获取当前用户 String username = JwtTokenUtils.getUsername(); dto.setCreateBy(username); dto.setCreateTime(LocalDateTime.now()); dto.setType(WarehousingTypeEnum.LENS.getCode()); warehousingService.save(dto); // 添加明细 List<TLensWarehousingDetail> frameWarehousingDetails = dto.getLensWarehousingDetails(); frameWarehousingDetails.forEach(detail -> { detail.setWarehousingId(dto.getId()); detail.setCode(WarehousingConstant.OUT_BOUND+CodeGenerateUtils.generateVolumeSn()); }); lensWarehousingDetailService.saveBatch(frameWarehousingDetails); return ApiResult.success(); } /** * 查询详情 @@ -102,6 +145,19 @@ vo.setTotalNum(list.stream().mapToInt(TFrameWarehousingDetail::getTotal).sum()); return ApiResult.success(vo); } @ApiOperation(value = "镜片查询详情") @GetMapping(value = "/getDetailLensById") public ApiResult<TWarehousingLensVO> getDetailLensById(@RequestParam Integer id) { TWarehousing warehousing = warehousingService.getById(id); TWarehousingLensVO vo = new TWarehousingLensVO(); BeanUtils.copyProperties(warehousing, vo); List<TLensWarehousingDetail> list = lensWarehousingDetailService.list(Wrappers.lambdaQuery(TLensWarehousingDetail.class) .eq(TLensWarehousingDetail::getWarehousingId, id)); vo.setLensWarehousingDetails(list); // 统计数量 vo.setTotalNum(list.stream().mapToInt(TLensWarehousingDetail::getTotal).sum()); return ApiResult.success(vo); } } manage/src/main/java/com/jilongda/manage/dto/TWarehousingLensDTO.java
New file @@ -0,0 +1,19 @@ package com.jilongda.manage.dto; import com.jilongda.manage.model.TFrameWarehousingDetail; import com.jilongda.manage.model.TLensWarehousingDetail; import com.jilongda.manage.model.TWarehousing; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "镜架出入库DTO") public class TWarehousingLensDTO extends TWarehousing { @ApiModelProperty(value = "镜架出入库明细列表") private List<TLensWarehousingDetail> lensWarehousingDetails; } manage/src/main/java/com/jilongda/manage/mapper/TLensWarehousingDetailMapper.java
@@ -1,7 +1,13 @@ package com.jilongda.manage.mapper; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TLensWarehousingDetail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.jilongda.manage.query.TWarehousingDetailLensQuery; import com.jilongda.manage.vo.TLensWarehousingDetailVO; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +19,5 @@ */ public interface TLensWarehousingDetailMapper extends BaseMapper<TLensWarehousingDetail> { List<TLensWarehousingDetailVO> pageLensList(@Param("query")TWarehousingDetailLensQuery query,@Param("pageInfo") PageInfo<TLensWarehousingDetailVO> pageInfo); } manage/src/main/java/com/jilongda/manage/mapper/TWarehousingMapper.java
@@ -3,7 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TWarehousing; import com.jilongda.manage.query.TWarehousingDetailLensQuery; import com.jilongda.manage.query.TWarehousingDetailQuery; import com.jilongda.manage.vo.TWarehousingLensVO; import com.jilongda.manage.vo.TWarehousingVO; import org.apache.ibatis.annotations.Param; @@ -27,4 +29,6 @@ */ List<TWarehousingVO> inventoryReceiptList(@Param("query") TWarehousingDetailQuery query, @Param("pageInfo")PageInfo<TWarehousingVO> pageInfo); List<TWarehousingLensVO> inventoryReceiptLensList(@Param("query")TWarehousingDetailLensQuery query, @Param("pageInfo")PageInfo<TWarehousingLensVO> pageInfo); } manage/src/main/java/com/jilongda/manage/model/TLensWarehousingDetail.java
@@ -72,6 +72,12 @@ @ApiModelProperty(value = "系列id") @TableField("seriesId") private Integer seriesId; @ApiModelProperty(value = "出入库主表id") @TableField("warehousingId") private Integer warehousingId; @ApiModelProperty(value = "入库编号") @TableField("code") private String code; } manage/src/main/java/com/jilongda/manage/query/TWarehousingDetailLensQuery.java
New file @@ -0,0 +1,27 @@ package com.jilongda.manage.query; import com.jilongda.common.dto.TimeRangePageDTO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "镜片明细记录查询/出入库单Query") public class TWarehousingDetailLensQuery extends TimeRangePageDTO { @ApiModelProperty(value = "品牌") private String brand; @ApiModelProperty(value = "系列") private String series; @ApiModelProperty(value = "球/非 1球 2非球 3双非") private Integer type; @ApiModelProperty(value = "折射率") private String refractiveIndex; @ApiModelProperty(value = "球镜") private String ballMirror; @ApiModelProperty(value = "柱镜") private String columnMirror; @ApiModelProperty(value = "店铺id") private Integer storeId; @ApiModelProperty(value = "类型 1=出库,2=入库,3=作废,4=退货") private Integer status; } manage/src/main/java/com/jilongda/manage/service/TWarehousingService.java
@@ -3,8 +3,11 @@ import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.model.TWarehousing; import com.baomidou.mybatisplus.extension.service.IService; import com.jilongda.manage.query.TWarehousingDetailLensQuery; import com.jilongda.manage.query.TWarehousingDetailQuery; import com.jilongda.manage.vo.TFrameWarehousingDetailVO; import com.jilongda.manage.vo.TLensWarehousingDetailVO; import com.jilongda.manage.vo.TWarehousingLensVO; import com.jilongda.manage.vo.TWarehousingVO; /** @@ -31,4 +34,7 @@ */ PageInfo<TWarehousingVO> inventoryReceiptList(TWarehousingDetailQuery query); PageInfo<TWarehousingLensVO> inventoryReceiptLensList(TWarehousingDetailLensQuery query); PageInfo<TLensWarehousingDetailVO> detailListLens(TWarehousingDetailLensQuery query); } manage/src/main/java/com/jilongda/manage/service/impl/TWarehousingServiceImpl.java
@@ -4,17 +4,19 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.mapper.TFrameWarehousingDetailMapper; import com.jilongda.manage.mapper.TLensWarehousingDetailMapper; import com.jilongda.manage.mapper.TStoreMapper; import com.jilongda.manage.model.TFrameWarehousingDetail; import com.jilongda.manage.model.TLensWarehousingDetail; import com.jilongda.manage.model.TStore; import com.jilongda.manage.model.TWarehousing; import com.jilongda.manage.mapper.TWarehousingMapper; import com.jilongda.manage.query.TWarehousingDetailLensQuery; import com.jilongda.manage.query.TWarehousingDetailQuery; import com.jilongda.manage.service.TLensWarehousingDetailService; import com.jilongda.manage.service.TWarehousingService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jilongda.manage.vo.TBrandVO; import com.jilongda.manage.vo.TFrameWarehousingDetailVO; import com.jilongda.manage.vo.TWarehousingVO; import com.jilongda.manage.vo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -36,6 +38,8 @@ private TStoreMapper storeMapper; @Autowired private TFrameWarehousingDetailMapper frameWarehousingDetailMapper; @Autowired private TLensWarehousingDetailMapper lensWarehousingDetailMapper; @Override public PageInfo<TFrameWarehousingDetailVO> detailList(TWarehousingDetailQuery query) { @@ -50,7 +54,19 @@ pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo<TLensWarehousingDetailVO> detailListLens(TWarehousingDetailLensQuery query) { PageInfo<TLensWarehousingDetailVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TLensWarehousingDetailVO> list = lensWarehousingDetailMapper.pageLensList(query,pageInfo); for (TLensWarehousingDetailVO tFrameWarehousingDetailVO : list) { TStore tStore = storeMapper.selectById(tFrameWarehousingDetailVO.getStoreId()); if(Objects.nonNull(tStore)){ tFrameWarehousingDetailVO.setStoreName(tStore.getName()); } } pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo<TWarehousingVO> inventoryReceiptList(TWarehousingDetailQuery query) { PageInfo<TWarehousingVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); @@ -65,4 +81,21 @@ pageInfo.setRecords(list); return pageInfo; } @Override public PageInfo<TWarehousingLensVO> inventoryReceiptLensList(TWarehousingDetailLensQuery query) { PageInfo<TWarehousingLensVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TWarehousingLensVO> list = this.baseMapper.inventoryReceiptLensList(query,pageInfo); for (TWarehousingLensVO tWarehousingVO : list) { List<TLensWarehousingDetail> lensWarehousingDetails = lensWarehousingDetailMapper.selectList(Wrappers.lambdaQuery(TLensWarehousingDetail.class) .eq(TLensWarehousingDetail::getWarehousingId, tWarehousingVO.getId())); if(CollectionUtils.isNotEmpty(lensWarehousingDetails)){ tWarehousingVO.setTotalNum(lensWarehousingDetails.stream().mapToInt(TLensWarehousingDetail::getTotal).sum()); } } pageInfo.setRecords(list); return pageInfo; } } manage/src/main/java/com/jilongda/manage/vo/TLensWarehousingDetailVO.java
New file @@ -0,0 +1,22 @@ package com.jilongda.manage.vo; import com.jilongda.manage.model.TFrameWarehousingDetail; import com.jilongda.manage.model.TLensWarehousingDetail; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "镜架出库入库明细VO") public class TLensWarehousingDetailVO extends TLensWarehousingDetail { @ApiModelProperty(value = "类型 1=出库,2=入库,3=作废,4=退货") private Integer status; @ApiModelProperty(value = "门店id") private Integer storeId; @ApiModelProperty(value = "门店名称") private String storeName; } manage/src/main/java/com/jilongda/manage/vo/TWarehousingLensVO.java
New file @@ -0,0 +1,22 @@ package com.jilongda.manage.vo; import com.jilongda.manage.model.TFrameWarehousingDetail; import com.jilongda.manage.model.TLensWarehousingDetail; import com.jilongda.manage.model.TWarehousing; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "镜架/镜片出库入库VO") public class TWarehousingLensVO extends TWarehousing { @ApiModelProperty(value = "出库/入库合计数量") private Integer totalNum=0; @ApiModelProperty(value = "出库/入库明细") private List<TLensWarehousingDetail> lensWarehousingDetails; } manage/src/main/resources/mapping/TLensWarehousingDetailMapper.xml
@@ -26,5 +26,42 @@ <sql id="Base_Column_List"> id, brand, supplier, series, refractiveIndex, ballMirror, columnMirror, type, total, createTime, updateTime, createBy, updateBy, isDelete, count, seriesId </sql> <select id="pageLensList" resultType="com.jilongda.manage.vo.TLensWarehousingDetailVO"> select tlwd.id, tlwd.warehousingId, tlwd.brand, tlwd.supplier, tlwd.series, tlwd.total, tlwd.refractiveIndex, tlwd.ballMirror, tlwd.code, tlwd.createTime,tlwd.columnMirror, tlwd.updateTime, tlwd.createBy, tlwd.updateBy, tlwd.isDelete, tlwd.modelId, tlwd.type from t_lens_warehousing_detail tlwd left join t_warehousing tw on tlwd.warehousingId = tw.id <where> <if test="query.brand != null and query.brand != ''"> and tlwd.brand = #{query.brand} </if> <if test="query.series != null and query.series != ''"> and tlwd.series = #{query.series} </if> <if test="query.type != null and query.type != ''"> and tlwd.type = #{query.type} </if> <if test="query.refractiveIndex != null and query.refractiveIndex != ''"> and tlwd.refractiveIndex = #{query.refractiveIndex} </if> <if test="query.ballMirror != null and query.ballMirror != ''"> and tlwd.ballMirror = #{query.ballMirror} </if> <if test="query.columnMirror != null and query.columnMirror != ''"> and tlwd.columnMirror = #{query.columnMirror} </if> <if test="query.storeId != null"> and tw.storeId = #{query.storeId} </if> <if test="query.status != null"> and tw.status = #{query.status} </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> and tlwd.createTime between #{query.startTime} and #{query.endTime} </if> and tlwd.isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY tlwd.createTime DESC </select> </mapper> manage/src/main/resources/mapping/TWarehousingMapper.xml
@@ -34,6 +34,25 @@ and createTime between #{query.startTime} and #{query.endTime} </if> and isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} and `type` = 1 </where> ORDER BY createTime DESC </select> <select id="inventoryReceiptLensList" resultType="com.jilongda.manage.vo.TWarehousingLensVO"> select <include refid="Base_Column_List"></include> from t_warehousing <where> <if test="query.storeId != null"> and storeId = #{query.storeId} </if> <if test="query.status != null"> and status = #{query.status} </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> and createTime between #{query.startTime} and #{query.endTime} </if> and `type` = 2 and isDelete = ${@com.jilongda.common.enums.DisabledEnum@NO.getCode()} </where> ORDER BY createTime DESC </select>