From 3d7c57bfc9f91f829509d4cc833bef6ef6313c7f Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 19 十二月 2024 17:53:54 +0800
Subject: [PATCH] 代码

---
 manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java |  146 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 142 insertions(+), 4 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 4047858..0257dd0 100644
--- a/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java
+++ b/manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java
@@ -9,12 +9,14 @@
 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.dto.TWarehousingLensDTO;
+import com.jilongda.manage.model.*;
+import com.jilongda.manage.query.TWarehousingDetailLensQuery;
 import com.jilongda.manage.query.TWarehousingDetailQuery;
-import com.jilongda.manage.service.TFrameWarehousingDetailService;
-import com.jilongda.manage.service.TWarehousingService;
+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 io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -24,6 +26,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -43,6 +46,12 @@
     private TWarehousingService warehousingService;
     @Autowired
     private TFrameWarehousingDetailService frameWarehousingDetailService;
+    @Autowired
+    private TLensWarehousingDetailService lensWarehousingDetailService;
+    @Autowired
+    private TFrameGoodsService frameGoodsService;
+    @Autowired
+    private TLensGoodsService lensGoodsService;
 
     /**
      * 出入库单列表
@@ -52,6 +61,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 +74,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);
     }
 
@@ -83,7 +106,109 @@
             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::getColor, frameWarehousingDetail.getColor()).one();
+                if (one!=null){
+                    // 增加对应库存
+                    one.setTotal(one.getTotal()-frameWarehousingDetail.getTotal());
+                    list1.add(one);
+                }
+            }
+            if (!list1.isEmpty())frameGoodsService.updateBatchById(list1);
+        }
+        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());
+    }
+    /**
+     * 添加镜片出库,入库,作废,退货
+     */
+    @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);
+        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::getBallMirror, frameWarehousingDetail.getBallMirror())
+                        .eq(TLensGoods::getColumnMirror, frameWarehousingDetail.getColumnMirror())
+                        .one();
+                if (one!=null){
+                    // 减少对应库存
+                    one.setTotal(one.getTotal()-frameWarehousingDetail.getTotal());
+                    list1.add(one);
+                }
+            }
+            if (!list1.isEmpty())lensGoodsService.updateBatchById(list1);
+        }
+        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::getColumnMirror, frameWarehousingDetail.getColumnMirror())
+                        .one();
+                if (one!=null){
+                    // 增加对应库存
+                    one.setTotal(one.getTotal()+frameWarehousingDetail.getTotal());
+                    list1.add(one);
+                }else {
+                    // 新增
+                    TLensGoods tFrameGoods = new TLensGoods();
+                    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();
     }
 
     /**
@@ -102,6 +227,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);
+    }
 
 }
 

--
Gitblit v1.7.1