futian.liu
2023-12-21 87685a055c5c6d61018a3415c0be5db764659047
consum-base/src/main/java/com/consum/base/controller/BaseWarehouseController.java
@@ -1,7 +1,9 @@
package com.consum.base.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -11,6 +13,7 @@
import org.springframework.web.bind.annotation.RestController;
import com.consum.base.BaseController;
import com.consum.base.core.type.StatesType;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.BaseWarehouseParam;
import com.consum.base.pojo.query.WarehouseQry;
@@ -18,10 +21,13 @@
import com.consum.base.service.LWhGoodsService;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhGoods;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -31,6 +37,7 @@
 * @Author 卢庆阳
 * @Date 2023/10/26
 */
@Api(value = "仓库管理", tags = "仓库管理")
@RestController
@RequestMapping("/pc/base/warehouse")
public class BaseWarehouseController extends BaseController {
@@ -55,9 +62,15 @@
        if (StringUtils.isEmpty(param.getWarehouseName())) {
            return ResponseValue.error("仓库名称为空");
        }
        // TODO 加权限 省级管理员录入所有仓库信息
        Long agencyId = param.getAgencyId();
        BaseWarehouse baseWarehouse = new BaseWarehouse();
        baseWarehouse.setAgencyId(agencyId);
        List<BaseWarehouse> select = baseWarehouseService.select(baseWarehouse);
        if (!CollectionUtils.isEmpty(select)) {
            return ResponseValue.error("该机构已有仓库不能继续新增!");
        }
        int result = this.baseWarehouseService.add(param);
        int result = baseWarehouseService.add(param);
        if (result > 0) {
            return ResponseValue.success(1);
        }
@@ -81,7 +94,7 @@
            return ResponseValue.error("登录用户信息不存在");
        }
        param.setAgencyId(Long.valueOf(currentUser.getTenantId()));
        GenericPager<BaseWarehouse> pager = this.baseWarehouseService.queryList(param, currentUser);
        GenericPager<BaseWarehouse> pager = baseWarehouseService.queryList(param, currentUser);
        return ResponseValue.success(pager);
    }
@@ -105,7 +118,7 @@
            return ResponseValue.error("仓库名称为空");
        }
        int num = this.baseWarehouseService.updateBaseWarehouse(baseWarehouse);
        int num = baseWarehouseService.updateBaseWarehouse(baseWarehouse);
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("编辑失败!");
    }
@@ -120,7 +133,7 @@
        if (id == null) {
            return ResponseValue.error("仓库id为空");
        }
        BaseWarehouse baseWarehouse = this.baseWarehouseService.getById(id);
        BaseWarehouse baseWarehouse = baseWarehouseService.getById(id);
        if (baseWarehouse == null) {
            return ResponseValue.error("查询失败!");
        }
@@ -142,23 +155,16 @@
        if (baseWarehouse.getId() == null) {
            return ResponseValue.error("仓库id为空");
        }
        int num = this.baseWarehouseService.updateById(baseWarehouse);
        Long id = baseWarehouse.getId();
        LWhGoods lWhGoods = new LWhGoods();
        lWhGoods.setWarehouseId(id);
        List<LWhGoods> select = lWhGoodsService.select(lWhGoods);
        if (!CollectionUtils.isEmpty(select)) {
            return ResponseValue.error("该仓库正在使用,不能删除");
        }
        int num = baseWarehouseService.updateById(baseWarehouse);
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("删除失败!");
    }
    /**
     * @Description 根据仓库id获取机构用户信息
     * @Author 卢庆阳
     * @Date 2023/10/26
     */
    @GetMapping("/select/userList")
    public ResponseValue queryList(Long baseWarehouseId) {
        if (baseWarehouseId == null) {
            return ResponseValue.error("仓库id为空");
        }
        this.baseWarehouseService.queryUserList(baseWarehouseId);
        return ResponseValue.success();
    }
    /**
@@ -171,7 +177,7 @@
        if (agencyId == null) {
            return ResponseValue.success(new ArrayList<>());
        }
        List<BaseWarehouse> list = this.baseWarehouseService.getByAgencyId(agencyId, null, null);
        List<BaseWarehouse> list = baseWarehouseService.getBaseWareHouseList(agencyId, StatesType.NORMAL.getValue());
        if (list == null) {
            return ResponseValue.error("查询失败!");
        }
@@ -191,16 +197,43 @@
        Long warehouseId = warehouseQry.getWarehouseId();
        if (warehouseId == null) {
            Long agencyId = warehouseQry.getAgencyId();
            BaseWarehouse defaultWarehouseByAgencyId =
                this.baseWarehouseService.getDefaultWarehouseByAgencyId(agencyId);
            warehouseId = defaultWarehouseByAgencyId.getId();
            BaseWarehouse baseWarehouse = baseWarehouseService.getWarehouseByAgencyId(agencyId, null);
            warehouseId = baseWarehouse.getId();
        }
        Long baseGoodsModelsId = warehouseQry.getBaseGoodsModelsId();
        Integer warehouseType = warehouseQry.getWarehouseType();
        Integer buyType = warehouseQry.getBuyType();
        // 其他类型的库存查询是否也要查部门类型的库存
        List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId));
        int num = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseIds, baseGoodsModelsId, 1, buyType);
        return ResponseValue.success(num);
    }
    @ApiOperation(value = "根据仓库id和型号id 查询库存", notes = "根据仓库id和型号id 查询库存")
    @ApiImplicitParams({@ApiImplicitParam(name = "warehouseQry", value = "仓库id和型号id", required = true,
        dataType = "WarehouseQry", paramType = "query")})
    @GetMapping("/select/in/warehouse/num")
    public ResponseValue selectAllNumber() {
        WarehouseQry warehouseQry = CommonUtil.getObjFromReq(WarehouseQry.class);
        WarehouseQry param2 = new WarehouseQry();
        CommonUtil.copyProperties(warehouseQry, param2);
        warehouseQry = param2;
        Long agencyId = warehouseQry.getAgencyId();
        List<BaseWarehouse> baseWarehouseList =
            baseWarehouseService.getBaseWareHouseList(agencyId, StatesType.NORMAL.getValue());
        List<Long> warehouseIdList = baseWarehouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toList());
        Long baseGoodsModelsId = warehouseQry.getBaseGoodsModelsId();
        Integer warehouseType = warehouseQry.getWarehouseType();
        Integer states = warehouseQry.getStates();
        Integer buyType = warehouseQry.getBuyType();
        int num = this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, 1, buyType);
        // 调拨时只查机构类型的集采仓库库存
        // 部门分发时不分机构和部门,因为调拨进来的物品也算在库存里只是类型为部门,同样检视所有仓库该型号的数量
        int num = lWhGoodsService.queryGoodsModelInWareHouseNum(warehouseType, warehouseIdList, baseGoodsModelsId,
            states, buyType);
        return ResponseValue.success(num);
    }