From ff7b9bb5b4db897ac0ea7566540ccaa491325a28 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 13 九月 2025 09:07:32 +0800
Subject: [PATCH] 修改
---
manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java | 190 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 175 insertions(+), 15 deletions(-)
diff --git a/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java b/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java
index 0257dd0..54847fe 100644
--- a/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java
+++ b/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java
@@ -8,26 +8,33 @@
import com.jilongda.common.enums.WarehousingTypeEnum;
import com.jilongda.common.security.JwtTokenUtils;
import com.jilongda.common.utils.CodeGenerateUtils;
+import com.jilongda.common.utils.UUIDUtil;
+import com.jilongda.manage.dto.GetCurrentByParam;
+import com.jilongda.manage.dto.GetCurrentByParamLens;
import com.jilongda.manage.dto.TWarehousingDTO;
import com.jilongda.manage.dto.TWarehousingLensDTO;
import com.jilongda.manage.model.*;
+import com.jilongda.manage.query.TFrameGoodsQuery;
+import com.jilongda.manage.query.TLensGoodsQuery;
import com.jilongda.manage.query.TWarehousingDetailLensQuery;
import com.jilongda.manage.query.TWarehousingDetailQuery;
import com.jilongda.manage.service.*;
-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 com.jilongda.manage.vo.*;
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.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* <p>
@@ -52,7 +59,87 @@
private TFrameGoodsService frameGoodsService;
@Autowired
private TLensGoodsService lensGoodsService;
-
+ @Autowired
+ private TModelService modelService;
+ @Autowired
+ private TLensSeriesService lensSeriesService;
+ @Autowired
+ private TStoreService storeService;
+ @Autowired
+ private TBrandService brandService;
+ /**
+ * 通过型号查询色号列表
+ */
+ @ApiOperation(value = "镜架-根据品牌id、型号名称、色号名称、材质id查询当前库存")
+ @PostMapping(value = "/getCurrentByParamFrame")
+ public ApiResult<Integer> getCurrentByParamFrame(@RequestBody GetCurrentByParam getCurrentByParam) {
+ // 根据型号名称 查询型号列表ids
+ List<Integer> collect = modelService.lambdaQuery().eq(StringUtils.hasLength(getCurrentByParam.getModel()),TModel::getName, getCurrentByParam.getModel())
+// .eq(StringUtils.hasLength(getCurrentByParam.getColor()),TModel::getColor,getCurrentByParam.getColor())
+ .eq(getCurrentByParam.getMaterialId()!=null,TModel::getMaterialId,getCurrentByParam.getMaterialId())
+ .eq(getCurrentByParam.getBrandId()!=null,TModel::getBrandId,getCurrentByParam.getBrandId())
+ .list().stream().map(TModel::getId).collect(Collectors.toList());
+ if (collect.isEmpty())collect.add(-1);
+ List<TFrameGoods> one = frameGoodsService.lambdaQuery()
+ .in(TFrameGoods::getModelId, collect)
+ .eq(TFrameGoods::getStoreId,getCurrentByParam.getStoreId())
+ .eq(TFrameGoods::getColor, getCurrentByParam.getColor()).list();
+ if (one.isEmpty())return ApiResult.success(0);
+ Integer temp = one.stream()
+ .mapToInt(TFrameGoods::getTotal)
+ .sum();
+ return ApiResult.success(temp);
+ }
+ @ApiOperation(value = "镜片-根据系列id、球/非球、品牌id、折射率、ballMirror、columnMirror查询当前库存")
+ @PostMapping(value = "/getCurrentByParamLens")
+ public ApiResult<Integer> getCurrentByParamLens(@RequestBody GetCurrentByParamLens dto) {
+ List<TLensGoods> one = lensGoodsService.lambdaQuery().eq(TLensGoods::getSeriesId, dto.getSeriesId())
+ .eq(dto.getLensType()!=null,TLensGoods::getLensType, dto.getLensType())
+ .eq(StringUtils.hasLength(dto.getRefractiveIndex()),TLensGoods::getRefractiveIndex, dto.getRefractiveIndex())
+ .eq(StringUtils.hasLength(dto.getBallMirror()),TLensGoods::getBallMirror, dto.getBallMirror())
+ .eq(StringUtils.hasLength(dto.getColumnMirror()),TLensGoods::getColumnMirror, dto.getColumnMirror())
+ .eq(dto.getStoreId()!=null,TLensGoods::getStoreId, dto.getStoreId())
+ .list();
+ if (one.isEmpty())return ApiResult.success(0);
+ Integer temp = one.stream()
+ .mapToInt(TLensGoods::getTotal)
+ .sum();
+ return ApiResult.success(temp);
+ }
+ @ApiOperation(value = "镜架库存分页列表")
+ @PostMapping(value = "/frameReceiptList")
+ public ApiResult<PageInfo<TFrameGoodsVO>> frameReceiptList(@RequestBody TFrameGoodsQuery query) {
+ return ApiResult.success(frameGoodsService.lensReceiptList(query));
+ }
+ @ApiOperation(value = "镜片库存分页列表")
+ @PostMapping(value = "/lensReceiptList")
+ public ApiResult<PageInfo<TLensGoodsVO>> lensReceiptList(@RequestBody TLensGoodsQuery query) {
+ return ApiResult.success(lensGoodsService.lensReceiptList(query));
+ }
+ @ApiOperation(value = "镜片库存分页列表-启用禁用")
+ @PostMapping(value = "/updateStateLens")
+ public ApiResult updateStateLens(Integer id) {
+ TLensGoods byId = lensGoodsService.getById(id);
+ if (byId.getStatus()==1){
+ byId.setStatus(2);
+ }else {
+ byId.setStatus(1);
+ }
+ lensGoodsService.updateById(byId);
+ return ApiResult.success();
+ }
+ @ApiOperation(value = "镜架库存分页列表-启用禁用")
+ @PostMapping(value = "/updateStateFrame")
+ public ApiResult updateStateFrame(Integer id) {
+ TFrameGoods byId = frameGoodsService.getById(id);
+ if (byId.getStatus()==1){
+ byId.setStatus(2);
+ }else {
+ byId.setStatus(1);
+ }
+ frameGoodsService.updateById(byId);
+ return ApiResult.success();
+ }
/**
* 出入库单列表
*/
@@ -76,14 +163,58 @@
PageInfo<TFrameWarehousingDetailVO> frameWarehousingDetailVOPageInfo = warehousingService.detailList(query);
return ApiResult.success(frameWarehousingDetailVOPageInfo);
}
+ @ApiOperation(value = "镜片出入库记录列表")
+ @PostMapping(value = "/detailLensList")
+ public ApiResult<PageInfo<TLensWarehousingDetailVO>> detailLensList(@RequestBody TWarehousingDetailLensQuery query) {
+ if (query.getSeriesId()!=null){
+ TLensSeries series = lensSeriesService.getById(query.getSeriesId());
+ if (series!=null){
+ query.setSeries(series.getName());
+ }
+ }
+ if (query.getBrandId()!=null){
+ TBrand brand = brandService.getById(query.getBrandId());
+ if (brand!=null){
+ query.setBrand(brand.getName());
+ }
+ }
+ return ApiResult.success(warehousingService.detailListLens(query));
+ }
/**
* 库存明细记录列表
*/
- @ApiOperation(value = "镜片库存明细记录列表")
- @PostMapping(value = "/detailLensList")
- public ApiResult<PageInfo<TLensWarehousingDetailVO>> detailLensList(@RequestBody TWarehousingDetailLensQuery query) {
- PageInfo<TLensWarehousingDetailVO> frameWarehousingDetailVOPageInfo = warehousingService.detailListLens(query);
- return ApiResult.success(frameWarehousingDetailVOPageInfo);
+ @ApiOperation(value = "镜片库存明细记录列表--库存详情")
+ @PostMapping(value = "/detailLensListDetail")
+ public ApiResult<TLensGoodsDetailVO> detailLensListDetail(Integer id) {
+ TLensGoodsDetailVO tLensGoodsDetailVO = new TLensGoodsDetailVO();
+ TLensGoods byId = lensGoodsService.getById(id);
+ TStore byId1 = storeService.getById(byId.getStoreId());
+ if (byId1!=null){
+ tLensGoodsDetailVO.setStoreName(byId1.getName());
+ }
+ TLensSeries byId2 = lensSeriesService.getById(byId.getSeriesId());
+ if (byId2!=null){
+ Integer brandId = byId2.getBrandId();
+ TBrand byId3 = brandService.getById(brandId);
+ String t1 = "";
+ switch (byId.getLensType()){
+ case 1:
+ t1="球面";
+ break;
+ case 2:
+ t1="非球面";
+ break;
+ case 3:
+ t1="双非";
+ break;
+ }
+ tLensGoodsDetailVO.setTitle(byId3.getName()+byId2.getName()+t1+" "+byId.getRefractiveIndex());
+ }
+ // 查询这个商品的库存明细
+ List<TLensGoods> list = lensGoodsService.lambdaQuery().eq(TLensGoods::getSeriesId, byId.getSeriesId())
+ .eq(TLensGoods::getRefractiveIndex, byId.getRefractiveIndex()).list();
+ tLensGoodsDetailVO.setList(list);
+ return ApiResult.success(tLensGoodsDetailVO);
}
/**
@@ -91,7 +222,7 @@
*/
@ApiOperation(value = "添加镜架出库,入库,作废,退货")
@PostMapping(value = "/outBound")
- public ApiResult<Integer> outBound(@Validated @RequestBody TWarehousingDTO dto) {
+ public ApiResult outBound(@Validated @RequestBody TWarehousingDTO dto) {
// 获取当前用户
String username = JwtTokenUtils.getUsername();
dto.setCreateBy(username);
@@ -105,25 +236,34 @@
detail.setWarehousingId(dto.getId());
detail.setCode(WarehousingConstant.OUT_BOUND+CodeGenerateUtils.generateVolumeSn());
});
- frameWarehousingDetailService.saveBatch(frameWarehousingDetails);
if (dto.getStatus()==1||dto.getStatus()==3){
List<TFrameGoods> list1 = new ArrayList<>();
for (TFrameWarehousingDetail frameWarehousingDetail : frameWarehousingDetails) {
TFrameGoods one = frameGoodsService.lambdaQuery().eq(TFrameGoods::getModelId, frameWarehousingDetail.getModelId())
+ .eq(TFrameGoods::getStoreId, dto.getStoreId())
.eq(TFrameGoods::getColor, frameWarehousingDetail.getColor()).one();
if (one!=null){
+ if (one.getTotal()-frameWarehousingDetail.getTotal()<0){
+ return ApiResult.failed("库存不足");
+ }
// 增加对应库存
one.setTotal(one.getTotal()-frameWarehousingDetail.getTotal());
list1.add(one);
+ }else {
+ return ApiResult.failed("库存不足");
+
}
}
if (!list1.isEmpty())frameGoodsService.updateBatchById(list1);
}
+ frameWarehousingDetailService.saveBatch(frameWarehousingDetails);
+
if (dto.getStatus()==2 || dto.getStatus()==4){
List<TFrameGoods> list1 = new ArrayList<>();
List<TFrameGoods> list2 = new ArrayList<>();
for (TFrameWarehousingDetail frameWarehousingDetail : frameWarehousingDetails) {
TFrameGoods one = frameGoodsService.lambdaQuery().eq(TFrameGoods::getModelId, frameWarehousingDetail.getModelId())
+ .eq(TFrameGoods::getStoreId, dto.getStoreId())
.eq(TFrameGoods::getColor, frameWarehousingDetail.getColor()).one();
if (one!=null){
// 增加对应库存
@@ -150,7 +290,7 @@
*/
@ApiOperation(value = "添加镜片出库,入库,作废,退货")
@PostMapping(value = "/outBoundLens")
- public ApiResult<String> outBoundLens(@Validated @RequestBody TWarehousingLensDTO dto) {
+ public ApiResult outBoundLens(@Validated @RequestBody TWarehousingLensDTO dto) {
// 获取当前用户
String username = JwtTokenUtils.getUsername();
dto.setCreateBy(username);
@@ -163,23 +303,32 @@
detail.setWarehousingId(dto.getId());
detail.setCode(WarehousingConstant.OUT_BOUND+CodeGenerateUtils.generateVolumeSn());
});
- lensWarehousingDetailService.saveBatch(frameWarehousingDetails);
if (dto.getStatus()==1||dto.getStatus()==3){
List<TLensGoods> list1 = new ArrayList<>();
for (TLensWarehousingDetail frameWarehousingDetail : frameWarehousingDetails) {
TLensGoods one = lensGoodsService.lambdaQuery().eq(TLensGoods::getSeriesId, frameWarehousingDetail.getSeriesId())
.eq(TLensGoods::getRefractiveIndex, frameWarehousingDetail.getRefractiveIndex())
+ .eq(TLensGoods::getLensType, frameWarehousingDetail.getType())
.eq(TLensGoods::getBallMirror, frameWarehousingDetail.getBallMirror())
.eq(TLensGoods::getColumnMirror, frameWarehousingDetail.getColumnMirror())
+ .eq(TLensGoods::getStoreId, dto.getStoreId())
.one();
if (one!=null){
+ if (one.getTotal()-frameWarehousingDetail.getTotal()<0){
+ return ApiResult.failed("库存不足");
+ }
// 减少对应库存
one.setTotal(one.getTotal()-frameWarehousingDetail.getTotal());
list1.add(one);
+ }else {
+ return ApiResult.failed("库存不足");
+
}
}
if (!list1.isEmpty())lensGoodsService.updateBatchById(list1);
}
+ lensWarehousingDetailService.saveBatch(frameWarehousingDetails);
+
if (dto.getStatus()==2 || dto.getStatus()==4){
List<TLensGoods> list1 = new ArrayList<>();
List<TLensGoods> list2 = new ArrayList<>();
@@ -187,6 +336,8 @@
TLensGoods one = lensGoodsService.lambdaQuery().eq(TLensGoods::getSeriesId, frameWarehousingDetail.getSeriesId())
.eq(TLensGoods::getRefractiveIndex, frameWarehousingDetail.getRefractiveIndex())
.eq(TLensGoods::getBallMirror, frameWarehousingDetail.getBallMirror())
+ .eq(TLensGoods::getLensType, frameWarehousingDetail.getType())
+ .eq(TLensGoods::getStoreId, dto.getStoreId())
.eq(TLensGoods::getColumnMirror, frameWarehousingDetail.getColumnMirror())
.one();
if (one!=null){
@@ -196,6 +347,7 @@
}else {
// 新增
TLensGoods tFrameGoods = new TLensGoods();
+ tFrameGoods.setLensType(frameWarehousingDetail.getType());
tFrameGoods.setSeriesId(frameWarehousingDetail.getSeriesId());
tFrameGoods.setBallMirror(frameWarehousingDetail.getBallMirror());
tFrameGoods.setColumnMirror(frameWarehousingDetail.getColumnMirror());
@@ -208,7 +360,7 @@
if (!list1.isEmpty())lensGoodsService.updateBatchById(list1);
if (!list2.isEmpty())lensGoodsService.saveBatch(list2);
}
- return ApiResult.success();
+ return ApiResult.success(dto.getId());
}
/**
@@ -223,6 +375,10 @@
List<TFrameWarehousingDetail> list = frameWarehousingDetailService.list(Wrappers.lambdaQuery(TFrameWarehousingDetail.class)
.eq(TFrameWarehousingDetail::getWarehousingId, id));
vo.setFrameWarehousingDetails(list);
+ TStore store = storeService.getById(warehousing.getStoreId());
+ if (store!=null){
+ vo.setStoreName(store.getName());
+ }
// 统计数量
vo.setTotalNum(list.stream().mapToInt(TFrameWarehousingDetail::getTotal).sum());
return ApiResult.success(vo);
@@ -235,6 +391,10 @@
BeanUtils.copyProperties(warehousing, vo);
List<TLensWarehousingDetail> list = lensWarehousingDetailService.list(Wrappers.lambdaQuery(TLensWarehousingDetail.class)
.eq(TLensWarehousingDetail::getWarehousingId, id));
+ TStore store = storeService.getById(warehousing.getStoreId());
+ if (store!=null){
+ vo.setStoreName(store.getName());
+ }
vo.setLensWarehousingDetails(list);
// 统计数量
vo.setTotalNum(list.stream().mapToInt(TLensWarehousingDetail::getTotal).sum());
--
Gitblit v1.7.1