package com.qianwen.smartman.modules.cps.controller; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import java.lang.invoke.SerializedLambda; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.mp.support.Query; import com.qianwen.core.oss.model.BladeFile; import com.qianwen.core.scanner.modular.annotation.DeleteResource; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.annotation.PutResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.annotation.PreAuth; import com.qianwen.core.tool.api.R; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.convert.WarehouseStationConvert; import com.qianwen.smartman.modules.cps.entity.WarehouseGrid; import com.qianwen.smartman.modules.cps.entity.WarehouseStation; import com.qianwen.smartman.modules.cps.service.IWarehouseGridService; import com.qianwen.smartman.modules.cps.service.IWarehouseStationService; import com.qianwen.smartman.modules.cps.vo.WarehouseExportVO; import com.qianwen.smartman.modules.cps.vo.WarehouseStationVO; import com.qianwen.smartman.modules.resource.enums.TemplateEnum; import com.qianwen.smartman.modules.resource.service.impl.SystemResourceServiceImpl; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @Api(value = "库区库位管理", tags = {"库区库位管理"}) @ApiResource({"blade-cps/warehouse-station"}) @RestController /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/cps/controller/WarehouseStationController.class */ public class WarehouseStationController extends BladeController { private final IWarehouseStationService warehouseStationService; private final SystemResourceServiceImpl systemResourceService; private final IWarehouseGridService warehouseGridService; public WarehouseStationController(final IWarehouseStationService warehouseStationService, final SystemResourceServiceImpl systemResourceService, final IWarehouseGridService warehouseGridService) { this.warehouseStationService = warehouseStationService; this.systemResourceService = systemResourceService; this.warehouseGridService = warehouseGridService; } @ApiOperationSupport(order = 1) @GetResource({"/get/{id}"}) @ApiOperation(value = "库区库位详情", notes = "传入库位") @PreAuth public R detail(@PathVariable String id) { WarehouseStation warehouseStation = (WarehouseStation) this.warehouseStationService.getById(id); return R.data(WarehouseStationConvert.INSTANCE.convert(warehouseStation)); } @ApiOperationSupport(order = 2) @GetResource({"/page"}) @ApiOperation(value = "库区库位分页", notes = "传入map") @PreAuth public R> page(Query query, @RequestParam(value = "keyWord", required = false) String keyWord, @RequestParam("areaId") Long areaId) { IPage pages = this.warehouseStationService.listPage(query, keyWord, areaId); return R.data(WarehouseStationConvert.INSTANCE.convert(pages)); } @ApiOperationSupport(order = 3) @PostResource({"/insert"}) @ApiOperation(value = "库区库位新增", notes = "传入warehouseStationVO") @PreAuth public R insert(@Valid @RequestBody WarehouseStationVO warehouseStationVO) { return R.data(WarehouseStationConvert.INSTANCE.convert(this.warehouseStationService.insert(warehouseStationVO))); } @ApiOperationSupport(order = 4) @PutResource({"/update"}) @ApiOperation(value = "库区库位修改", notes = "传入warehouseStationVO") @PreAuth public R update(@Valid @RequestBody WarehouseStationVO warehouseStationVO) { return R.data(WarehouseStationConvert.INSTANCE.convert(this.warehouseStationService.modifyById(warehouseStationVO))); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @ApiOperation(value = "库区库位批量删除", notes = "传入ids") @PreAuth @DeleteResource({"/remove"}) public R removeByIds(@ApiParam(value = "主键", required = true) @RequestBody List ids) { if (CollectionUtil.isEmpty(ids)) { return R.status(Boolean.FALSE.booleanValue()); } return R.status(this.warehouseStationService.deleteByIds(Func.toLongList(ids)).booleanValue()); } @ApiOperationSupport(order = 7) @PostResource({"import-station"}) @ApiOperation(value = "导入库位", notes = "传入要导入的库位文件") @PreAuth public R importStation(MultipartFile multipartFile) { return R.data(this.warehouseStationService.importStation(multipartFile)); } @ApiOperationSupport(order = 8) @PostResource({"export-station"}) @ApiOperation(value = "导出库位", notes = "库位过滤条件") @PreAuth public R exportStation(@RequestBody WarehouseExportVO warehouseExportVo, HttpServletResponse response) { return R.data(this.warehouseStationService.exportStation(warehouseExportVo, response)); } @ApiOperationSupport(order = 9) @GetResource({"/export-template"}) @ApiOperation("导出模板") @PreAuth public R exportTemplate() { return R.data(this.systemResourceService.getBusinessTemplateInfo(TemplateEnum.WAREHOUSE_STATION)); } @ApiOperationSupport(order = 10) @GetResource({"/grid-count"}) @ApiOperation("获取库位下的货格数量") public R getGridCount(@RequestParam(value = "id", required = true) String id) { return R.data(Long.valueOf(this.warehouseGridService.count(Wrappers.lambdaQuery().eq(WarehouseGrid::getStationId, id)))); /* return R.data(Long.valueOf(this.warehouseGridService.count((Wrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getStationId(); }, id))));*/ } }