package com.consum.base.controller;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
import com.consum.base.service.FinSysTenantService;
|
import com.consum.model.po.FinSysTenant;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
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;
|
import com.consum.base.service.BaseWarehouseService;
|
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;
|
|
/**
|
* @Description 仓库管理
|
* @Author 卢庆阳
|
* @Date 2023/10/26
|
*/
|
@Api(value = "仓库管理", tags = "仓库管理")
|
@RestController
|
@RequestMapping("/pc/base/warehouse")
|
@Slf4j
|
public class BaseWarehouseController extends BaseController {
|
|
@Autowired
|
private BaseWarehouseService baseWarehouseService;
|
|
@Autowired
|
private LWhGoodsService lWhGoodsService;
|
|
@Autowired
|
private FinSysTenantService finSysTenantService;
|
|
/**
|
* @Description 新增
|
* @Author 卢庆阳
|
* @Date 2023/10/26
|
*/
|
@PostMapping("/add")
|
public ResponseValue add() {
|
BaseWarehouseParam param = CommonUtil.getObjFromReqBody(BaseWarehouseParam.class);
|
BaseWarehouseParam param2 = new BaseWarehouseParam();
|
CommonUtil.copyProperties(param, param2);
|
param = param2;
|
|
if (StringUtils.isEmpty(param.getWarehouseName())) {
|
return ResponseValue.error("仓库名称为空");
|
}
|
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 = baseWarehouseService.add(param);
|
if (result > 0) {
|
return ResponseValue.success(1);
|
}
|
return ResponseValue.error("新增失败!");
|
}
|
|
// 供产品导数据临时用(可删)
|
public String add1(BaseWarehouseParam param) {
|
BaseWarehouseParam param2 = new BaseWarehouseParam();
|
CommonUtil.copyProperties(param, param2);
|
param = param2;
|
|
if (StringUtils.isEmpty(param.getWarehouseName())) {
|
return "仓库名称为空";
|
}
|
Long agencyId = param.getAgencyId();
|
BaseWarehouse baseWarehouse = new BaseWarehouse();
|
baseWarehouse.setAgencyId(agencyId);
|
List<BaseWarehouse> select = baseWarehouseService.select(baseWarehouse);
|
if (!CollectionUtils.isEmpty(select)) {
|
return "该机构已有仓库不能继续新增!";
|
}
|
int result = baseWarehouseService.add(param);
|
if (result > 0) {
|
return "1";
|
}
|
return "新增失败!";
|
}
|
|
//供产品导数据临时用(可删)
|
//@PostMapping("/addCk")
|
public String addCk() {
|
int ok = 0;
|
int isNull = 0;
|
int bnxz = 0;
|
int err = 0;
|
// 查询所有的机构
|
FinSysTenant finSysTenant = new FinSysTenant();
|
List<FinSysTenant> finSysTenants = finSysTenantService.selectAll(finSysTenant);
|
for (FinSysTenant fst : finSysTenants) {
|
// 组装仓库数据
|
BaseWarehouseParam baseWarehouseParam = new BaseWarehouseParam();
|
baseWarehouseParam.setWarehouseName(fst.getName() + "仓库");
|
baseWarehouseParam.setAdress("");
|
baseWarehouseParam.setAgencyId(fst.getId());
|
baseWarehouseParam.setClassificationCode("29");
|
baseWarehouseParam.setStates(1);
|
// 调用原本的新增接口新增仓库
|
String resSta = add1(baseWarehouseParam);
|
if("1".equals(resSta)){
|
ok++;
|
}else if("仓库名称为空".equals(resSta)){
|
isNull++;
|
}else if("该机构已有仓库不能继续新增!".equals(resSta)){
|
bnxz++;
|
}else if("新增失败!".equals(resSta)){
|
err++;
|
}
|
}
|
log.info("ok:"+ok);
|
log.info("isNull:"+isNull);
|
log.info("bnxz:"+bnxz);
|
log.info("err:"+err);
|
return "新增仓库..."+"##ok:"+ok+"##isNull:"+isNull+"##bnxz:"+bnxz+"##err:"+err;
|
}
|
|
|
/**
|
* @Description 仓库列表查询
|
* @Author 卢庆阳
|
* @Date 2023/10/26
|
*/
|
@GetMapping("/list")
|
public ResponseValue queryList() {
|
BaseWarehouseParam param = CommonUtil.getObjFromReq(BaseWarehouseParam.class);
|
BaseWarehouseParam param2 = new BaseWarehouseParam();
|
CommonUtil.copyProperties(param, param2);
|
param = param2;
|
|
FinSysTenantUser currentUser = this.getSysInfo();
|
if (currentUser == null) {
|
return ResponseValue.error("登录用户信息不存在");
|
}
|
param.setAgencyId(Long.valueOf(currentUser.getTenantId()));
|
GenericPager<BaseWarehouse> pager = baseWarehouseService.queryList(param, currentUser);
|
return ResponseValue.success(pager);
|
}
|
|
/**
|
* @Description 编辑(修改状态)
|
* @Author 卢庆阳
|
* @Date 2023/10/26
|
*/
|
@PostMapping("/edit")
|
public ResponseValue edit() {
|
BaseWarehouse baseWarehouse = CommonUtil.getObjFromReqBody(BaseWarehouse.class);
|
BaseWarehouse param2 = new BaseWarehouse();
|
CommonUtil.copyProperties(baseWarehouse, param2);
|
baseWarehouse = param2;
|
|
Long id = baseWarehouse.getId();
|
if (id == null || id <= 0) {
|
return ResponseValue.error("编辑的仓库不存在");
|
}
|
if (StringUtils.isEmpty(baseWarehouse.getWarehouseName())) {
|
return ResponseValue.error("仓库名称为空");
|
}
|
|
int num = baseWarehouseService.updateBaseWarehouse(baseWarehouse);
|
return num > 0 ? ResponseValue.success(1) : ResponseValue.error("编辑失败!");
|
}
|
|
/**
|
* 根据仓库id查询仓库详情
|
*
|
* @author 卢庆阳
|
* @Date 2023/10/26
|
*/
|
@GetMapping("/detail")
|
public ResponseValue getById(Long id) {
|
if (id == null) {
|
return ResponseValue.error("仓库id为空");
|
}
|
BaseWarehouse baseWarehouse = baseWarehouseService.getById(id);
|
if (baseWarehouse == null) {
|
return ResponseValue.error("查询失败!");
|
}
|
return ResponseValue.success("查询成功!", baseWarehouse);
|
}
|
|
/**
|
* @Description 根据id删除仓库
|
* @Author 卢庆阳
|
* @Date 2023/10/26
|
*/
|
@DeleteMapping("/del")
|
public ResponseValue updateById() {
|
BaseWarehouse baseWarehouse = CommonUtil.getObjFromReqBody(BaseWarehouse.class);
|
BaseWarehouse param2 = new BaseWarehouse();
|
CommonUtil.copyProperties(baseWarehouse, param2);
|
baseWarehouse = param2;
|
|
if (baseWarehouse.getId() == null) {
|
return ResponseValue.error("仓库id为空");
|
}
|
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/27
|
*/
|
@GetMapping("/select/tenant_warehouse")
|
public ResponseValue getByAgencyId(Long agencyId) {
|
if (agencyId == null) {
|
return ResponseValue.success(new ArrayList<>());
|
}
|
List<BaseWarehouse> list = baseWarehouseService.getBaseWareHouseList(agencyId, StatesType.NORMAL.getValue());
|
if (list == null) {
|
return ResponseValue.error("查询失败!");
|
}
|
return ResponseValue.success("查询成功!", list);
|
}
|
|
@ApiOperation(value = "根据仓库id和型号id 查询库存", notes = "根据仓库id和型号id 查询库存")
|
@ApiImplicitParams({@ApiImplicitParam(name = "warehouseQry", value = "仓库id和型号id", required = true,
|
dataType = "WarehouseQry", paramType = "query")})
|
@GetMapping("/select/number")
|
public ResponseValue selectNumber() {
|
WarehouseQry warehouseQry = CommonUtil.getObjFromReq(WarehouseQry.class);
|
WarehouseQry param2 = new WarehouseQry();
|
CommonUtil.copyProperties(warehouseQry, param2);
|
warehouseQry = param2;
|
|
Long warehouseId = warehouseQry.getWarehouseId();
|
if (warehouseId == null) {
|
Long agencyId = warehouseQry.getAgencyId();
|
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 = lWhGoodsService.queryGoodsModelInWareHouseNum(warehouseType, warehouseIdList, baseGoodsModelsId,
|
states, buyType);
|
return ResponseValue.success(num);
|
}
|
|
}
|