| | |
| | | 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; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | private TWarehousingService warehousingService; |
| | | @Autowired |
| | | private TFrameWarehousingDetailService frameWarehousingDetailService; |
| | | @Autowired |
| | | private TLensWarehousingDetailService lensWarehousingDetailService; |
| | | @Autowired |
| | | private TFrameGoodsService frameGoodsService; |
| | | @Autowired |
| | | private TLensGoodsService lensGoodsService; |
| | | |
| | | /** |
| | | * 出入库单列表 |
| | |
| | | @PostMapping(value = "/inventoryReceiptList") |
| | | 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)); |
| | | } |
| | | |
| | | /** |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | | * 添加镜架出库,入库,作废,退货 |
| | | */ |
| | | @ApiOperation(value = "添加镜架出库,入库,作废,退货") |
| | | @PostMapping(value = "/outBound") |
| | | public ApiResult<String> outBound(@Validated @RequestBody TWarehousingDTO dto) { |
| | | public ApiResult<Integer> outBound(@Validated @RequestBody TWarehousingDTO dto) { |
| | | // 获取当前用户 |
| | | String username = JwtTokenUtils.getUsername(); |
| | | dto.setCreateBy(username); |
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | |