package com.jilongda.manage.controller;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.jilongda.common.basic.ApiResult;
|
import com.jilongda.common.basic.PageInfo;
|
import com.jilongda.common.constants.WarehousingConstant;
|
import com.jilongda.common.enums.WarehousingTypeEnum;
|
import com.jilongda.common.security.JwtTokenUtils;
|
import com.jilongda.common.utils.CodeGenerateUtils;
|
import com.jilongda.manage.dto.TWarehousingDTO;
|
import com.jilongda.manage.model.TFrameWarehousingDetail;
|
import com.jilongda.manage.model.TWarehousing;
|
import com.jilongda.manage.query.TWarehousingDetailQuery;
|
import com.jilongda.manage.service.TFrameWarehousingDetailService;
|
import com.jilongda.manage.service.TWarehousingService;
|
import com.jilongda.manage.vo.TFrameWarehousingDetailVO;
|
import com.jilongda.manage.vo.TWarehousingVO;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 镜架/镜片出库入库表 前端控制器
|
* </p>
|
*
|
* @author 无关风月
|
* @since 2024-12-09
|
*/
|
@Api(tags = "镜架/镜片出库入库")
|
@RestController
|
@RequestMapping("/t-warehousing")
|
public class TWarehousingController {
|
|
@Autowired
|
private TWarehousingService warehousingService;
|
@Autowired
|
private TFrameWarehousingDetailService frameWarehousingDetailService;
|
|
/**
|
* 出入库单列表
|
*/
|
@ApiOperation(value = "镜架出入库单列表")
|
@PostMapping(value = "/inventoryReceiptList")
|
public ApiResult<PageInfo<TWarehousingVO>> inventoryReceiptList(@RequestBody TWarehousingDetailQuery query) {
|
return ApiResult.success(warehousingService.inventoryReceiptList(query));
|
}
|
|
/**
|
* 库存明细记录列表
|
*/
|
@ApiOperation(value = "镜架库存明细记录列表")
|
@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 = "/outBound")
|
public ApiResult<String> outBound(@Validated @RequestBody TWarehousingDTO dto) {
|
// 获取当前用户
|
String username = JwtTokenUtils.getUsername();
|
dto.setCreateBy(username);
|
dto.setCreateTime(LocalDateTime.now());
|
dto.setType(WarehousingTypeEnum.FRAME.getCode());
|
warehousingService.save(dto);
|
|
// 添加明细
|
List<TFrameWarehousingDetail> frameWarehousingDetails = dto.getFrameWarehousingDetails();
|
frameWarehousingDetails.forEach(detail -> {
|
detail.setWarehousingId(dto.getId());
|
detail.setCode(WarehousingConstant.OUT_BOUND+CodeGenerateUtils.generateVolumeSn());
|
});
|
frameWarehousingDetailService.saveBatch(frameWarehousingDetails);
|
return ApiResult.success();
|
}
|
|
/**
|
* 查询详情
|
*/
|
@ApiOperation(value = "镜架查询详情")
|
@GetMapping(value = "/getDetailById")
|
public ApiResult<TWarehousingVO> getDetailById(@RequestParam Integer id) {
|
TWarehousing warehousing = warehousingService.getById(id);
|
TWarehousingVO vo = new TWarehousingVO();
|
BeanUtils.copyProperties(warehousing, vo);
|
List<TFrameWarehousingDetail> list = frameWarehousingDetailService.list(Wrappers.lambdaQuery(TFrameWarehousingDetail.class)
|
.eq(TFrameWarehousingDetail::getWarehousingId, id));
|
vo.setFrameWarehousingDetails(list);
|
// 统计数量
|
vo.setTotalNum(list.stream().mapToInt(TFrameWarehousingDetail::getTotal).sum());
|
return ApiResult.success(vo);
|
}
|
|
}
|