From 66449e204698bcffd9319eb3f5eaed0dd44ec75f Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期三, 25 十二月 2024 17:18:00 +0800 Subject: [PATCH] 短信 --- manage/src/main/java/com/jilongda/manage/controller/TWarehousingController.java | 244 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 225 insertions(+), 19 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 25b91ae..6cf722f 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,18 @@ 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.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; @@ -29,8 +27,12 @@ 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.stream.Collectors; /** * <p> @@ -51,7 +53,86 @@ 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、型号名称、色号名称、材质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、折射率、ballMirror、columnMirror查询当前库存") + @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)); + } + @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(); + } /** * 出入库单列表 */ @@ -75,14 +156,46 @@ PageInfo<TFrameWarehousingDetailVO> frameWarehousingDetailVOPageInfo = warehousingService.detailList(query); return ApiResult.success(frameWarehousingDetailVOPageInfo); } + @ApiOperation(value = "镜片出入库记录列表") + @PostMapping(value = "/detailLensList") + public ApiResult<PageInfo<TLensWarehousingDetailVO>> detailLensList(@RequestBody TWarehousingDetailLensQuery query) { + 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<TLensWarehousingDetail> list = lensWarehousingDetailService.lambdaQuery().eq(TLensWarehousingDetail::getSeriesId, byId.getSeriesId()) + .eq(TLensWarehousingDetail::getRefractiveIndex, byId.getRefractiveIndex()).list(); + tLensGoodsDetailVO.setList(list); + return ApiResult.success(tLensGoodsDetailVO); } /** @@ -90,7 +203,7 @@ */ @ApiOperation(value = "添加镜架出库,入库,作废,退货") @PostMapping(value = "/outBound") - public ApiResult<String> outBound(@Validated @RequestBody TWarehousingDTO dto) { + public ApiResult outBound(@Validated @RequestBody TWarehousingDTO dto) { // 获取当前用户 String username = JwtTokenUtils.getUsername(); dto.setCreateBy(username); @@ -104,15 +217,56 @@ 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); - return ApiResult.success(); + + 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) { + public ApiResult outBoundLens(@Validated @RequestBody TWarehousingLensDTO dto) { // 获取当前用户 String username = JwtTokenUtils.getUsername(); dto.setCreateBy(username); @@ -125,8 +279,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