|
|
@@ -17,14 +17,15 @@ import com.zd.airbottle.service.DbUsageRecordService;
|
|
|
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.redis.RedisService;
|
|
|
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.BaseConstants;
|
|
|
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;
|
|
|
@@ -33,6 +34,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -60,6 +62,9 @@ public class DbStockController extends AbstractController {
|
|
|
@Autowired
|
|
|
private TokenService tokenService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private static RedisService redisService;
|
|
|
+
|
|
|
/**
|
|
|
* 库存入库
|
|
|
*
|
|
|
@@ -96,6 +101,8 @@ public class DbStockController extends AbstractController {
|
|
|
dbInOutRecord.setType(1);
|
|
|
dbInOutRecordService.save(dbInOutRecord);
|
|
|
dbBeaconService.update(new LambdaUpdateWrapper<DbBeacon>().eq(DbBeacon::getBeaconTag, dbInOutRecord.getBeaconTag()).set(DbBeacon::getState, Boolean.TRUE).set(DbBeacon::getBindingTime, LocalDateTime.now()));
|
|
|
+ //todo 重新加载入库的信标到redis chai
|
|
|
+ new Thread(()->loadBeaconDate(dbStock)).start();
|
|
|
return ResultData.success("操作成功");
|
|
|
}
|
|
|
return ResultData.fail("操作失败");
|
|
|
@@ -119,6 +126,8 @@ public class DbStockController extends AbstractController {
|
|
|
dbInOutRecord.setType(2);
|
|
|
dbInOutRecordService.save(dbInOutRecord);
|
|
|
dbBeaconService.update(new LambdaUpdateWrapper<DbBeacon>().eq(DbBeacon::getBeaconTag, dbInOutRecord.getBeaconTag()).set(DbBeacon::getState, 0));
|
|
|
+ //todo 重新加载入库的信标到redis chai
|
|
|
+ new Thread(()->remBeaconDate(stock)).start();
|
|
|
return ResultData.success("出库成功");
|
|
|
}
|
|
|
return ResultData.fail("出库失败");
|
|
|
@@ -143,6 +152,9 @@ public class DbStockController extends AbstractController {
|
|
|
return ResultData.success("信标标签已存在!");
|
|
|
}
|
|
|
if (dbStockService.update(new LambdaUpdateWrapper<DbStock>().eq(DbStock::getId, dbStockBo.getId()).set(DbStock::getBeaconTag, dbStockBo.getBeaconTag()))) {
|
|
|
+ //todo 重新加载入库的信标到redis chai
|
|
|
+ DbStock dbStock = dbStockService.getById(dbStockBo.getId());
|
|
|
+ new Thread(()->loadBeaconDate(dbStock)).start();
|
|
|
return ResultData.success("操作成功");
|
|
|
}
|
|
|
return ResultData.fail("操作失败");
|
|
|
@@ -254,6 +266,40 @@ public class DbStockController extends AbstractController {
|
|
|
return ResultData.success(list);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 每次入库,修改,需要重新加载对应的实验室信标列表和对应的信标
|
|
|
+ *
|
|
|
+ * @param dbStock
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void loadBeaconDate(DbStock dbStock){
|
|
|
+ //查询库存信标列表,存入redis
|
|
|
+ LambdaQueryWrapper<DbStock> queryWrapper = new LambdaQueryWrapper();
|
|
|
+ queryWrapper.eq(DbStock::getSubjectId, dbStock.getSubjectId());
|
|
|
+ List<DbStock> list = dbStockService.list(queryWrapper);
|
|
|
+ redisService.setCacheObject(BaseConstants.BEACON_MATE_INFO+"~"+ dbStock.getSubjectId(),list, 7L, TimeUnit.DAYS);
|
|
|
+ //将提交的库存数据,存入redis
|
|
|
+ redisService.setCacheObject(BaseConstants.BEACON_MATE_DET+"~"+ dbStock.getBeaconTag()+"~"+dbStock.getSubjectId()+"~"+dbStock.getGasName(),dbStock.getBeaconTag(), 120L, TimeUnit.SECONDS);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 每次出库需要重新加载对应的实验室信标列表和移除对应信标
|
|
|
+ *
|
|
|
+ * @param dbStock
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public void remBeaconDate(DbStock dbStock){
|
|
|
+ //查询库存信标列表,存入redis
|
|
|
+ LambdaQueryWrapper<DbStock> queryWrapper = new LambdaQueryWrapper();
|
|
|
+ queryWrapper.eq(DbStock::getSubjectId, dbStock.getSubjectId());
|
|
|
+ List<DbStock> list = dbStockService.list(queryWrapper);
|
|
|
+ redisService.setCacheObject(BaseConstants.BEACON_MATE_INFO+"~"+ dbStock.getSubjectId(),list, 7L, TimeUnit.DAYS);
|
|
|
+ //将信标从redis中移除
|
|
|
+ redisService.deleteObject(BaseConstants.BEACON_MATE_DET+"~"+ dbStock.getBeaconTag()+"~"+dbStock.getSubjectId()+"~"+dbStock.getGasName());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/***
|
|
|
*
|
|
|
* @param
|