package com.jilongda.manage.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.gson.JsonArray; import com.jilongda.common.basic.ApiResult; import com.jilongda.common.basic.PageInfo; import com.jilongda.manage.dto.TAddWarehousingLensDTO; import com.jilongda.manage.dto.TLensWarehousingDetailDTO; import com.jilongda.manage.dto.TWarehousingLensDTO; import com.jilongda.manage.model.*; import com.jilongda.manage.query.TLensSeriesQuery; import com.jilongda.manage.query.TOptometristQuery; import com.jilongda.manage.service.TLensGoodsService; import com.jilongda.manage.service.TLensSeriesService; import com.jilongda.manage.service.TLensWarehousingDetailService; import com.jilongda.manage.service.TWarehousingService; import com.jilongda.manage.vo.TLensSeriesVO; import com.jilongda.manage.vo.TOptometristVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** *

* 镜片系列表 前端控制器 *

* * @author 无关风月 * @since 2024-12-09 */ @Api(tags = "镜片系列管理") @RestController @RequestMapping("/t-lens-series") public class TLensSeriesController { @Autowired private TLensSeriesService lensSeriesService; @Autowired private TWarehousingService warehousingService; @Autowired private TLensWarehousingDetailService lensWarehousingDetailService; @ApiOperation(value = "镜片系列列表") @PostMapping(value = "/pageList") public ApiResult> pageList(@RequestBody TLensSeriesQuery query) { PageInfo optometristVOPageInfo = lensSeriesService.pageList(query); return ApiResult.success(optometristVOPageInfo); } @ApiOperation(value = "镜片系列添加") @PostMapping(value = "/add") public ApiResult add(@RequestBody TLensSeries dto) { lensSeriesService.save(dto); return ApiResult.success(); } @Autowired private TLensGoodsService lensGoodsService; @ApiOperation(value = "镜片系列生成库存") @PostMapping(value = "/addGoods") public ApiResult addGoods(@RequestBody TAddWarehousingLensDTO dto) { List list = lensGoodsService.lambdaQuery().list(); List tLensWarehousingDetail = dto.getLensWarehousingDetails(); List lensSeries = lensSeriesService.list(); List tLensGoods = new ArrayList<>(); for (TLensWarehousingDetailDTO frameWarehousingDetail : tLensWarehousingDetail) { TLensSeries series = lensSeries.stream().filter(e -> e.getId().equals(frameWarehousingDetail.getSeriesId())).findFirst().orElse(null); if (series!=null){ double endBallCondition =0.00; double endColumnCondition =0.00; TLensGoods tLensGoods1 = list.stream().filter(e -> e.getSeriesId().equals(frameWarehousingDetail.getSeriesId()) && e.getRefractiveIndex().equals(frameWarehousingDetail.getRefractiveIndex()) && e.getLensType().equals(frameWarehousingDetail.getType()) && e.getBallMirror().equals(endBallCondition+"") && e.getColumnMirror().equals(endColumnCondition+"")).findFirst().orElse(null); if (tLensGoods1==null){ // 新增 TLensGoods tFrameGoods = new TLensGoods(); tFrameGoods.setStatus(1); tFrameGoods.setLensType(frameWarehousingDetail.getType()); tFrameGoods.setSeriesId(frameWarehousingDetail.getSeriesId()); tFrameGoods.setBallMirror(String.format("%.2f",endBallCondition)); tFrameGoods.setColumnMirror(String.format("%.2f",endColumnCondition)); tFrameGoods.setRefractiveIndex(frameWarehousingDetail.getRefractiveIndex()); tFrameGoods.setTotal(0); tFrameGoods.setStoreId(dto.getStoreId()); tLensGoods.add(tFrameGoods); } } } lensGoodsService.saveBatch(tLensGoods); return ApiResult.success(); } public static void main(String[] args) { double temp = -0.25; System.err.println(temp-0.25); System.err.println(String.format("%.2f",temp-0.25)); } @ApiOperation(value = "镜片系列编辑") @PostMapping(value = "/update") public ApiResult update(@RequestBody TLensSeries dto) { if (!StringUtils.hasLength(dto.getSphere())){ dto.setSphere(""); } if (!StringUtils.hasLength(dto.getAsphericSurface())){ dto.setAsphericSurface(""); } if (!StringUtils.hasLength(dto.getDoubleNon())){ dto.setDoubleNon(""); } lensSeriesService.updateById(dto); return ApiResult.success(); } @ApiOperation(value = "镜片系列启用/禁用") @GetMapping(value = "/updateState") public ApiResult update(Integer id) { TLensSeries byId = lensSeriesService.getById(id); if (byId.getStatus()==1){ byId.setStatus(2); }else{ byId.setStatus(1); } lensSeriesService.updateById(byId); return ApiResult.success(); } @ApiOperation(value = "通过品牌id查询镜片系列列表") @GetMapping(value = "/seriesList") public ApiResult> seriesList(Integer brandId) { return ApiResult.success(lensSeriesService.lambdaQuery().eq(TLensSeries::getBrandId,brandId).list()); } @ApiOperation(value = "通过品牌id查询镜片系列列表-添加销售订单用 过滤没有生成库存的系列") @GetMapping(value = "/seriesListOrder") public ApiResult> seriesListOrder(Integer brandId) { List list = lensGoodsService.lambdaQuery().list(); List collect = list.stream().map(TLensGoods::getSeriesId).distinct().collect(Collectors.toList()); if (list.isEmpty()){ return ApiResult.success(new ArrayList()); } List lensSeries = lensSeriesService.lambdaQuery().eq(TLensSeries::getBrandId, brandId) .in(TLensSeries::getId,collect).list(); return ApiResult.success(lensSeries); } @ApiOperation(value = "通过系列id查询球/非球 返回参数1为球 2非球 3双飞") @GetMapping(value = "/lensTypeList") public ApiResult> lensTypeList(Integer id) { TLensSeries byId = lensSeriesService.getById(id); List integers = new ArrayList<>(); if (StringUtils.hasLength(byId.getSphere())){ integers.add(1); } if (StringUtils.hasLength(byId.getAsphericSurface())){ integers.add(2); } if (StringUtils.hasLength(byId.getDoubleNon())){ integers.add(3); } return ApiResult.success(integers); } @ApiOperation(value = "根据系列id + 球/非球查询折射率列表 球/非球入参数1为球 2非球 3双飞") @GetMapping(value = "/refractiveIndexList") public ApiResult refractiveIndexList(Integer id, Integer lensType) { TLensSeries byId = lensSeriesService.getById(id); JSONArray jsonArray = null; if (lensType==1){ String sphere = byId.getSphere(); // 将字符串化为jsonArray if (StringUtils.hasLength(sphere)) { jsonArray = JSONObject.parseArray(sphere); } else { return ApiResult.success(new JSONArray()); } } if (lensType==2){ String asphericSurface = byId.getAsphericSurface(); if (StringUtils.hasLength(asphericSurface)) { jsonArray = JSONObject.parseArray(asphericSurface); } else { return ApiResult.success(new JSONArray()); } } if (lensType==3){ String doubleNon = byId.getDoubleNon(); if (StringUtils.hasLength(doubleNon)) { jsonArray = JSONObject.parseArray(doubleNon); } else { return ApiResult.success(new JSONArray()); } } return ApiResult.success(jsonArray); } }