| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- package com.zd.airbottle.controller;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.zd.airbottle.domain.DbBeacon;
- import com.zd.airbottle.domain.DbInOutRecord;
- import com.zd.airbottle.domain.DbStock;
- import com.zd.airbottle.domain.bo.DbStockBo;
- import com.zd.airbottle.domain.bo.DbStockParam;
- import com.zd.airbottle.service.DbBeaconService;
- import com.zd.airbottle.service.DbInOutRecordService;
- import com.zd.airbottle.service.DbStockService;
- import com.zd.airbottle.utils.PageUtil;
- import com.zd.common.core.annotation.Log;
- import com.zd.common.core.log.BusinessType;
- import com.zd.common.core.security.TokenService;
- import com.zd.common.core.utils.StringUtils;
- import com.zd.common.core.web.controller.AbstractController;
- import com.zd.laboratory.api.dto.CheckSubjectDto;
- import com.zd.laboratory.api.feign.RemoteLaboratoryService;
- import com.zd.model.constant.HttpStatus;
- import com.zd.model.domain.ResultData;
- import com.zd.model.entity.SysUser;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.util.List;
- import java.util.Objects;
- /**
- * @Description 东北大学库存
- * @Author hzw
- * @Date 2023/10/16 17:50
- * @Version 2.0
- */
- @Api(tags = "东北大学库存")
- @RestController
- @RequestMapping("/stock")
- public class DbStockController extends AbstractController {
- @Autowired
- private DbStockService dbStockService;
- @Autowired
- private DbBeaconService dbBeaconService;
- @Autowired
- private DbInOutRecordService dbInOutRecordService;
- @Autowired
- private RemoteLaboratoryService remoteLaboratoryService;
- @Autowired
- private TokenService tokenService;
- /**
- * 库存入库
- *
- * @param dbStockBo
- * @return
- */
- @ApiOperation(value = "库存入库", notes = "参数说明:gasName 气体名称,level 级别,size 规格,bottleCode 气瓶编号 ")
- @PostMapping(value = "/enter")
- public ResultData in(@RequestBody DbStockBo dbStockBo) {
- //参数检查
- paramCheck.notNull(dbStockBo).strNotEmpty(dbStockBo.getGasName()).notNull(dbStockBo.getBeaconTag()).notNull(dbStockBo.getSubjectId());
- //验证信标
- long count1 = dbStockService.count(new LambdaQueryWrapper<DbStock>().eq(DbStock::getBeaconTag, dbStockBo.getBeaconTag()));
- if (count1 > 0) {
- return ResultData.success("当前信标已绑定!");
- }
- //查询实验室所在学院
- ResultData<List<CheckSubjectDto>> resultData = remoteLaboratoryService.findSubjectInfoList(String.valueOf(dbStockBo.getSubjectId()));
- if (resultData != null && HttpStatus.SUCCESS == resultData.getCode()) {
- List<CheckSubjectDto> data = resultData.getData();
- dbStockBo.setCollegeId(data.get(0).getDeptId());
- dbStockBo.setCollegeName(data.get(0).getCollegeName());
- }
- DbStock dbStock = new DbStock();
- BeanUtils.copyProperties(dbStockBo, dbStock);
- SysUser sysUser = tokenService.getLoginUser().getSysUser();
- dbStock.setCreateBy(sysUser.getUserId());
- dbStock.setCreateName(sysUser.getUserName());
- tokenService.getLoginUser().getSysUser().getPhonenumber();
- // dbStock.setph(get());
- if (dbStockService.save(dbStock)) {
- DbInOutRecord dbInOutRecord = new DbInOutRecord();
- BeanUtils.copyProperties(dbStockBo, dbInOutRecord);
- dbInOutRecord.setType(1);
- dbInOutRecordService.save(dbInOutRecord);
- dbBeaconService.update(new LambdaUpdateWrapper<DbBeacon>().eq(DbBeacon::getBeaconTag, dbInOutRecord.getBeaconTag()).set(DbBeacon::getState, 1));
- return ResultData.success("操作成功");
- }
- return ResultData.fail("操作失败");
- }
- /**
- * 库存出库
- *
- * @param dbStockBo
- * @return
- */
- @ApiOperation(value = "库存出库", notes = "参数说明:gasName 气体名称,level 级别,size 规格,bottleCode 气瓶编号 ")
- @PostMapping(value = "/out")
- public ResultData out(@RequestBody DbStockBo dbStockBo) {
- //参数检查
- paramCheck.notNull(dbStockBo).notNull(dbStockBo.getId());
- DbStock stock = dbStockService.getById(dbStockBo.getId());
- if (dbStockService.removeById(stock.getId())) {
- DbInOutRecord dbInOutRecord = new DbInOutRecord();
- BeanUtils.copyProperties(stock, dbInOutRecord);
- dbInOutRecord.setType(2);
- dbInOutRecordService.save(dbInOutRecord);
- dbBeaconService.update(new LambdaUpdateWrapper<DbBeacon>().eq(DbBeacon::getBeaconTag, dbInOutRecord.getBeaconTag()).set(DbBeacon::getState, 0));
- return ResultData.success("出库成功");
- }
- return ResultData.fail("出库失败");
- }
- /**
- * 更新库存信息
- *
- * @Param [dbStockBo]
- * @Return com.zd.model.domain.ResultData
- **/
- @ApiOperation(value = "更新库存信息", notes = "参数说明:id 必填 ")
- @Log(title = "更新库存信息", businessType = BusinessType.UPDATE)
- @PostMapping(value = "/update")
- public ResultData update(@RequestBody DbStockBo dbStockBo) {
- //参数检查
- paramCheck.notNull(dbStockBo).notNull(dbStockBo.getId()).notNull(dbStockBo.getBeaconTag());
- long count = dbStockService.count(new LambdaQueryWrapper<DbStock>().ne(DbStock::getBeaconTag, dbStockBo.getBeaconTag()).eq(DbStock::getBeaconTag, dbStockBo.getBeaconTag()));
- if (count > 0) {
- return ResultData.success("信标标签已存在!");
- }
- if (dbStockService.update(new LambdaUpdateWrapper<DbStock>().eq(DbStock::getId, dbStockBo.getId()).set(DbStock::getBeaconTag, dbStockBo.getBeaconTag()))) {
- return ResultData.success("操作成功");
- }
- return ResultData.fail("操作失败");
- }
- /**
- * 通过ID获取库存详情
- *
- * @param id
- * @return
- */
- @ApiOperation(value = "通过ID获取库存详情", notes = "参数说明:库存id 必填")
- @GetMapping(value = "/findById")
- public ResultData find(@RequestParam("id") Long id) {
- paramCheck.notNull(id);
- DbStock dbStock = dbStockService.getById(id);
- return ResultData.success(dbStock);
- }
- /**
- * 获取库存list
- *
- * @param dbStockParam
- * @return
- */
- @ApiOperation(value = "获取库存list", notes = "参数说明:searchValue 关键字")
- @PostMapping(value = "/list")
- public ResultData list(@RequestBody DbStockParam dbStockParam) {
- //查询条件
- LambdaQueryWrapper<DbStock> queryWrapper = new LambdaQueryWrapper<>();
- //气瓶编号 气瓶名称 实验室名称
- if (StringUtils.isNotBlank(dbStockParam.getSearchValue())) {
- queryWrapper.like(DbStock::getGasName, dbStockParam.getSearchValue()).or().like(DbStock::getSubjectName, dbStockParam.getSearchValue());
- }
- if (Objects.nonNull(dbStockParam.getCollegeId())) {
- queryWrapper.eq(DbStock::getCollegeId, dbStockParam.getCollegeId());
- }
- if (Objects.nonNull(dbStockParam.getStartTime()) && Objects.nonNull(dbStockParam.getEndTime())) {
- queryWrapper.between(DbStock::getValidPeriod, dbStockParam.getStartTime(), dbStockParam.getEndTime());
- }
- //倒叙
- queryWrapper.orderByDesc(DbStock::getId);
- IPage<DbStock> result = dbStockService.page(PageUtil.getQuery(dbStockParam.getPageNum(), dbStockParam.getPageSize()), queryWrapper);
- return ResultData.success(result);
- }
- /**
- * 通过信标查询库信息
- *
- * @param BeaconTag
- * @return
- */
- @ApiOperation(value = "通过信标查询库信息", notes = "参数说明:subId 必填")
- @GetMapping(value = "/findByBeaconTag")
- public ResultData findByBancon(@RequestParam("BeaconTag") String BeaconTag) {
- paramCheck.strNotEmpty(BeaconTag);
- LambdaQueryWrapper<DbStock> queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(DbStock::getBeaconTag, BeaconTag);
- DbStock dbStock = dbStockService.getOne(queryWrapper);
- return ResultData.success(dbStock);
- }
- /**
- * 通过subId查询库存列表
- *
- * @param subId
- * @return
- */
- @ApiOperation(value = "通过subId查询库存列表", notes = "参数说明:subId 必填")
- @GetMapping(value = "/findBySubId")
- public ResultData findBySubId(@RequestParam("subId") Long subId) {
- paramCheck.notNull(subId);
- LambdaQueryWrapper<DbStock> queryWrapper = new LambdaQueryWrapper();
- queryWrapper.eq(DbStock::getSubjectId, subId);
- List<DbStock> list = dbStockService.list(queryWrapper);
- return ResultData.success(list);
- }
- }
|