package com.jilongda.manage.controller; import com.jilongda.common.basic.ApiResult; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.dto.FrameInventoryDTO; import com.jilongda.manage.dto.GetCurrentByParam; import com.jilongda.manage.dto.GetCurrentByParamLens; import com.jilongda.manage.dto.LensInventoryDTO; import com.jilongda.manage.model.*; import com.jilongda.manage.query.TFrameGoodsQuery; import com.jilongda.manage.query.TInventoryQuery; import com.jilongda.manage.service.*; import com.jilongda.manage.utils.LoginInfoUtil; import com.jilongda.manage.vo.TFrameGoodsVO; import com.jilongda.manage.vo.TInventoryInfoVO; import com.jilongda.manage.vo.TInventoryVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.models.auth.In; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Bean; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** *

* 盘点表 前端控制器 *

* * @author 无关风月 * @since 2024-12-09 */ @RestController @Api(tags = "盘点管理") @RequestMapping("/t-inventory") public class TInventoryController { @Resource private TInventoryService inventoryService; @Resource private TInventoryFrameDetailService inventoryFrameDetailService; @Resource private TInventoryLensDetailService inventoryLensDetailService; @Resource private LoginInfoUtil loginInfoUtil; @Resource private TFrameGoodsService frameGoodsService; @Resource private TLensGoodsService lensGoodsService; @Resource private TLensSeriesService lensSeriesService; @Resource private TModelService modelService; @Resource private TStoreService storeService; @ApiOperation(value = "盘点分页列表") @PostMapping(value = "/pageList") public ApiResult> pageList(@RequestBody TInventoryQuery query) { if (StringUtils.hasLength(query.getStartTime())){ query.setStartTime(query.getStartTime()+" 00:00:00"); query.setEndTime(query.getEndTime()+" 23:59:59"); } return ApiResult.success(inventoryService.pageList(query)); } @ApiOperation(value = "镜架添加盘点") @PostMapping(value = "/addFrameInventory") public ApiResult addFrameInventory(@RequestBody FrameInventoryDTO query) { TInventory tInventory = new TInventory(); BeanUtils.copyProperties(query, tInventory); inventoryService.save(tInventory); for (TInventoryFrameDetail tInventoryFrameDetail : query.getList()) { tInventoryFrameDetail.setInventoryId(tInventory.getId()); } inventoryFrameDetailService.saveBatch(query.getList()); return ApiResult.success(tInventory.getId()); } @ApiOperation(value = "镜片添加盘点") @PostMapping(value = "/addLensInventory") public ApiResult addLensInventory(@RequestBody LensInventoryDTO query) { TInventory tInventory = new TInventory(); BeanUtils.copyProperties(query, tInventory); inventoryService.save(tInventory); for (TInventoryLensDetail tInventoryFrameDetail : query.getList()) { tInventoryFrameDetail.setInventoryId(tInventory.getId()); } inventoryLensDetailService.saveBatch(query.getList()); return ApiResult.success(tInventory.getId()); } @ApiOperation(value = "镜架-根据品牌id查询对应库存") @PostMapping(value = "/getCountByBrandId") public ApiResult getCountByBrandId(Integer id) { List collect = modelService.lambdaQuery().eq(TModel::getBrandId, id) .list().stream().map(TModel::getId).distinct().collect(Collectors.toList()); if (collect.isEmpty())collect.add(-1); List list = frameGoodsService.lambdaQuery().in(TFrameGoods::getModelId, collect).list(); if (list.isEmpty())return ApiResult.success("0"); int i = 0; for (TFrameGoods tFrameGoods : list) { i+=tFrameGoods.getTotal(); } return ApiResult.success(i); } @ApiOperation(value = "镜架-根据材质id查询对应库存") @PostMapping(value = "/getCountByMaterialId") public ApiResult getCountByMaterialId(Integer id) { List collect = modelService.lambdaQuery().eq(TModel::getMaterialId, id) .list().stream().map(TModel::getId).distinct().collect(Collectors.toList()); if (collect.isEmpty())collect.add(-1); List list = frameGoodsService.lambdaQuery().in(TFrameGoods::getModelId, collect).list(); if (list.isEmpty())return ApiResult.success("0"); int i = 0; for (TFrameGoods tFrameGoods : list) { i+=tFrameGoods.getTotal(); } return ApiResult.success(i); } @ApiOperation(value = "镜架-根据品牌id、型号名称、色号名称、材质id查询当前库存") @PostMapping(value = "/getCurrentByParamFrame") public ApiResult getCurrentByParamFrame(@RequestBody GetCurrentByParam getCurrentByParam) { // 根据型号名称 查询型号列表ids List collect = modelService.lambdaQuery().eq(TModel::getName, getCurrentByParam.getModel()) .eq(TModel::getColor,getCurrentByParam.getColor()) .eq(TModel::getMaterialId,getCurrentByParam.getMaterialId()) .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 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 = "查看详情") @GetMapping(value = "/getDetailById") public ApiResult getDetailById(Integer id) { TInventoryInfoVO tInventoryInfoVO = new TInventoryInfoVO(); TInventory byId = inventoryService.getById(id); BeanUtils.copyProperties(byId, tInventoryInfoVO); switch (byId.getType()){ case 1: List list = inventoryFrameDetailService.lambdaQuery().eq(TInventoryFrameDetail::getInventoryId, id).list(); tInventoryInfoVO.setFrameList(list); break; case 2: List list2 = inventoryLensDetailService.lambdaQuery().eq(TInventoryLensDetail::getInventoryId, id).list(); tInventoryInfoVO.setLensList(list2); break; } TStore byId1 = storeService.getById(byId.getStoreId()); if (byId1!=null)tInventoryInfoVO.setStore(byId1.getName()); return ApiResult.success(tInventoryInfoVO); } }