From 65948198a6dc5e808440ac6874db6df8aab6d9ab Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 23 十二月 2024 09:15:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java |  208 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 191 insertions(+), 17 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 bba637a..0945238 100644
--- a/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java
+++ b/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java
@@ -8,20 +8,17 @@
 import com.jilongda.common.enums.WarehousingTypeEnum;
 import com.jilongda.common.security.JwtTokenUtils;
 import com.jilongda.common.utils.CodeGenerateUtils;
+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.TFrameWarehousingDetail;
-import com.jilongda.manage.model.TLensWarehousingDetail;
-import com.jilongda.manage.model.TWarehousing;
+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.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 com.jilongda.manage.service.*;
+import com.jilongda.manage.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
@@ -30,7 +27,9 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -51,7 +50,62 @@
     private TFrameWarehousingDetailService frameWarehousingDetailService;
     @Autowired
     private TLensWarehousingDetailService lensWarehousingDetailService;
+    @Autowired
+    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、型号名称、色号名称查询当前库存")
+    @PostMapping(value = "/getCurrentByParamFrame")
+    public ApiResult<Integer> getCurrentByParamFrame(@RequestBody GetCurrentByParam getCurrentByParam) {
+        // 根据型号名称 查询型号列表ids
+        List<Integer> collect = modelService.lambdaQuery().eq(TModel::getName, getCurrentByParam.getModel())
+                .eq(TModel::getMaterialId,getCurrentByParam.getMaterialId())
+                .eq(TModel::getColor,getCurrentByParam.getColor())
+                .eq(TModel::getBrandId,getCurrentByParam.getBrandId())
+                .list().stream().map(TModel::getId).collect(Collectors.toList());
+        TFrameGoods one = frameGoodsService.lambdaQuery().in(TFrameGoods::getModelId, collect)
+                .eq(TFrameGoods::getColor, getCurrentByParam.getColor()).one();
+        if (one!=null){
+            return ApiResult.success(one.getTotal());
 
+        }
+        return ApiResult.success(0);
+    }
+    @ApiOperation(value = "镜片-根据品牌id、型号名称、色号名称、材质id查询当前库存")
+    @PostMapping(value = "/getCurrentByParamLens")
+    public ApiResult<Integer> getCurrentByParamLens(@RequestBody GetCurrentByParamLens dto) {
+        TLensGoods one = lensGoodsService.lambdaQuery().in(TLensGoods::getSeriesId, dto.getSeriesId())
+                .eq(dto.getLensType()!=null,TLensGoods::getLensType, dto.getLensType())
+                .eq(dto.getRefractiveIndex()!=null,TLensGoods::getRefractiveIndex, dto.getRefractiveIndex())
+                .eq(dto.getBallMirror()!=null,TLensGoods::getBallMirror, dto.getBallMirror())
+                .eq(dto.getColumnMirror()!=null,TLensGoods::getColumnMirror, dto.getColumnMirror())
+                .one();
+        if (one!=null){
+            return ApiResult.success(one.getTotal());
+        }
+        return ApiResult.success(0);
+    }
+    @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));
+    }
     /**
      * 出入库单列表
      */
@@ -78,11 +132,38 @@
     /**
      * 库存明细记录列表
      */
-    @ApiOperation(value = "镜片库存明细记录列表")
+    @ApiOperation(value = "镜片库存明细记录列表--库存详情")
     @PostMapping(value = "/detailLensList")
-    public ApiResult<PageInfo<TLensWarehousingDetailVO>> detailLensList(@RequestBody TWarehousingDetailLensQuery query) {
-        PageInfo<TLensWarehousingDetailVO> frameWarehousingDetailVOPageInfo = warehousingService.detailListLens(query);
-        return ApiResult.success(frameWarehousingDetailVOPageInfo);
+    public ApiResult<TLensGoodsDetailVO> detailLensList(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<TLensWarehousingDetail> list = lensWarehousingDetailService.lambdaQuery().eq(TLensWarehousingDetail::getSeriesId, byId.getSeriesId())
+                .eq(TLensWarehousingDetail::getRefractiveIndex, byId.getRefractiveIndex()).list();
+        tLensGoodsDetailVO.setList(list);
+        return ApiResult.success(tLensGoodsDetailVO);
     }
 
     /**
@@ -90,7 +171,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);
@@ -104,7 +185,48 @@
             detail.setWarehousingId(dto.getId());
             detail.setCode(WarehousingConstant.OUT_BOUND+CodeGenerateUtils.generateVolumeSn());
         });
+        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::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);
+                }
+            }
+            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::getColor, frameWarehousingDetail.getColor()).one();
+                if (one!=null){
+                    // 增加对应库存
+                    one.setTotal(one.getTotal()+frameWarehousingDetail.getTotal());
+                    list1.add(one);
+                }else {
+                    // 新增
+                    TFrameGoods tFrameGoods = new TFrameGoods();
+                    tFrameGoods.setColor(frameWarehousingDetail.getColor());
+                    tFrameGoods.setTotal(frameWarehousingDetail.getTotal());
+                    tFrameGoods.setModelId(frameWarehousingDetail.getModelId());
+                    tFrameGoods.setStoreId(dto.getStoreId());
+                    list2.add(tFrameGoods);
+                }
+            }
+            if (!list1.isEmpty())frameGoodsService.updateBatchById(list1);
+            if (!list2.isEmpty())frameGoodsService.saveBatch(list2);
+        }
+
         return ApiResult.success(dto.getId());
     }
     /**
@@ -112,7 +234,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);
@@ -125,8 +247,60 @@
             detail.setWarehousingId(dto.getId());
             detail.setCode(WarehousingConstant.OUT_BOUND+CodeGenerateUtils.generateVolumeSn());
         });
+        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())
+                        .one();
+                if (one!=null){
+                    if (one.getTotal()-frameWarehousingDetail.getTotal()<0){
+                        return ApiResult.failed("库存不足");
+                    }
+                    // 减少对应库存
+                    one.setTotal(one.getTotal()-frameWarehousingDetail.getTotal());
+                    list1.add(one);
+                }
+            }
+            if (!list1.isEmpty())lensGoodsService.updateBatchById(list1);
+        }
         lensWarehousingDetailService.saveBatch(frameWarehousingDetails);
-        return ApiResult.success();
+
+        if (dto.getStatus()==2 || dto.getStatus()==4){
+            List<TLensGoods> list1 = new ArrayList<>();
+            List<TLensGoods> list2 = new ArrayList<>();
+            for (TLensWarehousingDetail frameWarehousingDetail : frameWarehousingDetails) {
+                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::getColumnMirror, frameWarehousingDetail.getColumnMirror())
+                        .one();
+                if (one!=null){
+                    // 增加对应库存
+                    one.setTotal(one.getTotal()+frameWarehousingDetail.getTotal());
+                    list1.add(one);
+                }else {
+                    // 新增
+                    TLensGoods tFrameGoods = new TLensGoods();
+                    tFrameGoods.setLensType(frameWarehousingDetail.getType());
+                    tFrameGoods.setSeriesId(frameWarehousingDetail.getSeriesId());
+                    tFrameGoods.setBallMirror(frameWarehousingDetail.getBallMirror());
+                    tFrameGoods.setColumnMirror(frameWarehousingDetail.getColumnMirror());
+                    tFrameGoods.setRefractiveIndex(frameWarehousingDetail.getRefractiveIndex());
+                    tFrameGoods.setTotal(frameWarehousingDetail.getTotal());
+                    tFrameGoods.setStoreId(dto.getStoreId());
+                    list2.add(tFrameGoods);
+                }
+            }
+            if (!list1.isEmpty())lensGoodsService.updateBatchById(list1);
+            if (!list2.isEmpty())lensGoodsService.saveBatch(list2);
+        }
+        return ApiResult.success(dto.getId());
     }
 
     /**

--
Gitblit v1.7.1